欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法

文檔序號:7695577閱讀:147來源:國知局
專利名稱:一種支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及一種通過查找應用網(wǎng)關(guān)注冊表的方式支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法。
因特網(wǎng)地址分配組織規(guī)定以下的三類網(wǎng)絡地址保留用做私有地址10.0.0.0-10.255.255.255172.16.0.0 -172.31.255.255192.168.0.0 -192.168.255.255如

圖1所示,內(nèi)部網(wǎng)絡就是使用了一個上述的“私有地址”的內(nèi)部局域網(wǎng)。通過地址轉(zhuǎn)換技術(shù),可以使這個內(nèi)部局域網(wǎng)的所有主機(或者部分主機)都可以訪問Internet。
地址轉(zhuǎn)換有一對一和PAT(port address tranlation)兩種方式。一對一方式的地址轉(zhuǎn)換,只對報文中的IP地址信息進行轉(zhuǎn)換,在這種方式下,每一個內(nèi)部主機要占用地址池中的一個IP地址,當?shù)刂烦貎?nèi)的地址被用盡時,就不能允許其它主機訪問Internet。因此,NAT方式只允許若干個主機同時訪問Internet,可以同時訪問Internet的主機數(shù)目受合法地址的多少的局限。
PAT方式的地址轉(zhuǎn)換使用了TCP/UDP的端口信息,用“地址+端口”來區(qū)分內(nèi)部局域網(wǎng)的主機對外發(fā)起的不同連接,即要轉(zhuǎn)換數(shù)據(jù)包中的源地址也要轉(zhuǎn)換端口信息,因此內(nèi)部局域網(wǎng)的許多主機可以共享一個IP地址訪問Internet,這樣能允許更多的內(nèi)部主機同時訪問Internet。在實際使用的過程中,PAT方式是最主要的地址轉(zhuǎn)換方式。
地址轉(zhuǎn)換改變了IP數(shù)據(jù)包頭的IP地址信息,可以隱藏內(nèi)部局域網(wǎng)的真實IP地址,因此具有一定的安全保護作用,但由此會導致許多對地址轉(zhuǎn)換敏感的應用協(xié)議無法正常工作。
所謂對NAT敏感的協(xié)議是指該協(xié)議的某些報文的有效載荷中攜帶地址信息,需要NAT進行特殊處理,除了改變1P包頭的地址信息以外還需要改變數(shù)據(jù)報文載荷中的地址信息。如果不按照地址轉(zhuǎn)換規(guī)則對這些IP地址和端口號進行轉(zhuǎn)換處理,將會嚴重影響后繼的協(xié)議交互的一類協(xié)議。一個非常典型的應用就是FTP協(xié)議,下面以FTP為例說明。
在FTP中包含兩種連接控制連接(會話)、數(shù)據(jù)連接(傳輸)。其中控制連接是用大家都熟悉的21端口的TCP連接。數(shù)據(jù)連接是由客戶端通過控制連接“通知”服務器它已經(jīng)初始化好的地址和端口,然后FTP服務器通過20端口(默認情況)將數(shù)據(jù)傳送到客戶端。當客戶端通知服務器的時候,會用到“PORT命令”,其中在這次TCP連接的數(shù)據(jù)中是這樣的“PORT 10,110,1,2,13,23\D\A”(表示端口=13<<8+23,地址=10.110.1.2,其中地址就是內(nèi)部網(wǎng)絡中客戶端的IP地址),于是服務器就可以知道客戶端的數(shù)據(jù)連接的地址和端口了。很明顯,在地址轉(zhuǎn)換的過程中,對于PORT命令,我們除了改變IP地址以及端口信息,同時必須改變相應TCP中的數(shù)據(jù),這樣才可以保證使FTP服務器端可以把數(shù)據(jù)發(fā)送到正確的客戶端。
隨著Internet的發(fā)展,地址轉(zhuǎn)換需要支持的應用協(xié)議越來越多,必須對其進行針對每一個對NAT敏感的協(xié)議進行特殊處理,也就是需要實現(xiàn)這些協(xié)議的地址轉(zhuǎn)換應用級網(wǎng)關(guān)。隨著應用的增加,要求地址轉(zhuǎn)換能夠便捷地支持新的應用網(wǎng)關(guān),在流程上具有良好的可擴充性。

發(fā)明內(nèi)容
本發(fā)明就是針對現(xiàn)有技術(shù)的缺點,提出一種通過注冊方式支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,以解決地址轉(zhuǎn)換后對協(xié)議的支持。
一種支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于在路由器上創(chuàng)建地址轉(zhuǎn)換應用網(wǎng)關(guān)注冊表,每個注冊表項標識一種的應用協(xié)議;在網(wǎng)絡地址轉(zhuǎn)換模塊中(NAT)定義一個處理回調(diào)函數(shù)的接口,如果NAT需要支持一種新的應用協(xié)議,按照上述特殊處理回調(diào)函數(shù)接口,針對這種協(xié)議的報文載荷中需要處理的地址信息建立相應的應用協(xié)議處理函數(shù),并注冊到應用網(wǎng)關(guān)注冊表;在通信過程中,當有新的協(xié)議出現(xiàn)時,通過查找應用網(wǎng)關(guān)注冊表識別該應用協(xié)議,通過注冊的應用協(xié)議回調(diào)函數(shù)來實現(xiàn)應用網(wǎng)關(guān)的地址轉(zhuǎn)換。
所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,還包括將該應用協(xié)議對應的IP協(xié)議號、知名端口號和應用協(xié)議的處理回調(diào)函數(shù)指針作為注冊參數(shù)。
所述的應用協(xié)議處理函數(shù),只對該協(xié)議報文載荷中的私有地址轉(zhuǎn)換為合法的公有地址。
所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,還包括一個設置訪問控制列表步驟,該列表是依據(jù)IP數(shù)據(jù)包報頭以及其所承載的上層協(xié)議數(shù)據(jù)包頭的格式定義的規(guī)則,由該規(guī)則判斷是否對數(shù)據(jù)報文進行地址轉(zhuǎn)換。
所述的應用協(xié)議報文向位于公網(wǎng)上的服務器轉(zhuǎn)發(fā),與向私網(wǎng)內(nèi)的服務器轉(zhuǎn)發(fā)時需要進行不同的特殊處理,應用網(wǎng)關(guān)需要為不同位置的服務器分別提供特殊處理的應用協(xié)議處理函數(shù),這些處理函數(shù)均被注冊到應用網(wǎng)關(guān)注冊表項內(nèi),地址轉(zhuǎn)換流程根據(jù)報文的轉(zhuǎn)發(fā)目的服務器所在位置決定調(diào)用哪一個回調(diào)函數(shù)。
所述的應用協(xié)議報文由私網(wǎng)向公網(wǎng)轉(zhuǎn)發(fā),與從公網(wǎng)向私網(wǎng)轉(zhuǎn)發(fā)時需要進行不同的特殊處理,應用網(wǎng)關(guān)需要為轉(zhuǎn)換方向和還原方向分別提供特殊處理的應用協(xié)議處理函數(shù),這些處理函數(shù)均被注冊到應用網(wǎng)關(guān)注冊表項內(nèi),地址轉(zhuǎn)換流程根據(jù)報文的轉(zhuǎn)發(fā)方向決定調(diào)用哪一個回調(diào)函數(shù)。
所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,數(shù)據(jù)報文由私網(wǎng)向公網(wǎng)轉(zhuǎn)發(fā)的流程為a、地址轉(zhuǎn)換模塊收到IP層轉(zhuǎn)來的報文后,根據(jù)訪問控制列表判斷是否要對該報文進行地址轉(zhuǎn)換,如果不需要轉(zhuǎn)換就直接轉(zhuǎn)發(fā),如果需要轉(zhuǎn)換則進入步驟b;b、取報文的源地址信息查找地址轉(zhuǎn)換散列表,如果未找到,就根據(jù)配置的地址轉(zhuǎn)換創(chuàng)建一個新的地址轉(zhuǎn)換散列表,該地址轉(zhuǎn)換散列表內(nèi)記錄了私有的地址和合法的Internet地址信息;c、根據(jù)地址轉(zhuǎn)換散列表記錄的信息,將報文的源地址轉(zhuǎn)換為合法的Internet地址;d、查找應用網(wǎng)關(guān)注冊表,根據(jù)查找結(jié)果確定對該報文是否需要應用網(wǎng)關(guān)的特殊處理,如果不需要,即只需要轉(zhuǎn)換報文頭內(nèi)的地址信息,地址轉(zhuǎn)換結(jié)束,否則進入步驟e;e、通過調(diào)用此協(xié)議特殊處理的應用協(xié)議處理函數(shù),轉(zhuǎn)換報文載荷內(nèi)的地址信息。
所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,步驟d中,對于內(nèi)部主機訪問Internet服務器,只需要根據(jù)IP協(xié)議號和目的端口查找應用網(wǎng)關(guān)注冊表項。
所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,步驟c中的轉(zhuǎn)換過程由NAT完成,只轉(zhuǎn)換了報文頭內(nèi)的IP地址。
所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,當數(shù)據(jù)報文由公網(wǎng)向私網(wǎng)轉(zhuǎn)發(fā)的流程為a、地址轉(zhuǎn)換模塊收到IP層轉(zhuǎn)來的報文后,根據(jù)報文的目的地址、目的端口到地址轉(zhuǎn)換散列表里面查找地址轉(zhuǎn)換記錄,如果沒有相應的地址轉(zhuǎn)換散列表,則不進行NAT轉(zhuǎn)換,將報文直接轉(zhuǎn)發(fā),如果查找到了相應的地址轉(zhuǎn)換散列表,則進入步驟b;b、根據(jù)散列表內(nèi)記錄的地址轉(zhuǎn)換信息,地址轉(zhuǎn)換模塊將報文頭內(nèi)的目的地址信息轉(zhuǎn)換成私網(wǎng)用戶的地址;c、查找應用網(wǎng)關(guān)注冊表,根據(jù)查找結(jié)果確定對該報文是否需要應用網(wǎng)關(guān)的特殊處理,如果不需要,地址還原流程已結(jié)束,如果需要,進入步驟d;d、調(diào)用還原方向的應用協(xié)議處理函數(shù),轉(zhuǎn)換報文載荷內(nèi)的地址信息。所述的步驟b中,只轉(zhuǎn)換了報文頭內(nèi)的IP地址。
本發(fā)明在實現(xiàn)一般的地址轉(zhuǎn)換功能的基礎上,通過特殊協(xié)議注冊的方式提供了完善的地址轉(zhuǎn)換應用網(wǎng)關(guān)擴充機制。如果要地址轉(zhuǎn)換支持一種新的應用協(xié)議,只需開發(fā)該協(xié)議的地址轉(zhuǎn)換應用級網(wǎng)關(guān),借助本方法的應用網(wǎng)關(guān)注冊手段將其注冊,就可以使得NAT技術(shù)支持該協(xié)議,而不需要改變NAT流程及其它已經(jīng)支持的協(xié)議。本發(fā)明在流程上便于支持新的應用協(xié)議,很好地解決了地址轉(zhuǎn)換需要不斷支持新的應用協(xié)議的問題。
本發(fā)明的核心思想,是通過注冊的方式擴充NAT支持新的應用網(wǎng)關(guān),通過查找應用網(wǎng)關(guān)注冊表項識別應用協(xié)議,再通過注冊的回調(diào)函數(shù)來實現(xiàn)應用網(wǎng)關(guān)的地址轉(zhuǎn)換流程。
本發(fā)明要先在路由器上創(chuàng)建一個地址轉(zhuǎn)換應用網(wǎng)關(guān)注冊表,該表中包括應用網(wǎng)關(guān)的特殊處理回調(diào)函數(shù)指針,還包括該協(xié)議對應的IP協(xié)議號、知名端口號,這樣,每個注冊表項就標識了一種特殊的應用協(xié)議;在NAT定義一個特殊處理回調(diào)函數(shù)接口,該接口的定義方式可能根據(jù)不同的開發(fā)者有不同的定義,但主要功能都是一個函數(shù)指針的作用。當NAT需要支持一種新的應用協(xié)議時,由開發(fā)人員按照上述的特殊處理回調(diào)函數(shù)接口,針對這種協(xié)議的報文載荷中需要處理的地址信息開發(fā)相應的應用協(xié)議處理函數(shù),并將該函數(shù)作為注冊參數(shù)注冊到應用網(wǎng)關(guān)注冊表中。該應用協(xié)議處理函數(shù)只需將該協(xié)議報文載荷中的私有地址轉(zhuǎn)換為合法的公有地址,而不必對報文頭內(nèi)的地址信息進行處理。
由于應用協(xié)議報文從私網(wǎng)向公網(wǎng)轉(zhuǎn)發(fā)與從公網(wǎng)向私網(wǎng)轉(zhuǎn)發(fā),有可能需要不同的處理方式,所以開發(fā)的應用協(xié)議處理函數(shù)可能相同,也可能不相同,因此可以開發(fā)不同的應用協(xié)議處理函數(shù),分為轉(zhuǎn)換方向和還原方向的應用協(xié)議處理函數(shù),這要根據(jù)實際情況來確定。
同樣,由于應用協(xié)議報文向位于公網(wǎng)上的服務器轉(zhuǎn)發(fā),與向私網(wǎng)內(nèi)的服務器轉(zhuǎn)發(fā)時需要進行不同的特殊處理,應用網(wǎng)關(guān)需要為不同位置的服務器分別提供特殊處理的應用協(xié)議處理函數(shù),這些處理函數(shù)均被注冊到應用網(wǎng)關(guān)注冊表項內(nèi),地址轉(zhuǎn)換流程根據(jù)報文的轉(zhuǎn)發(fā)目的服務器所在位置決定調(diào)用哪一個回調(diào)函數(shù)。
最后,將該應用協(xié)議對應的IP協(xié)議號、知名端口號、應用協(xié)議的處理回調(diào)函數(shù)指針作為注冊參數(shù),創(chuàng)建新的應用網(wǎng)關(guān)注冊表項,將該表項添加到前面形成的應用網(wǎng)關(guān)注冊表中。實現(xiàn)新的應用網(wǎng)關(guān),借助了NAT基本功能模塊的注冊手段,而不需要對NAT基本功能模塊及其它應用網(wǎng)關(guān)進行任何修改。
當有新的協(xié)議出現(xiàn),通過查找上面形成的應用網(wǎng)關(guān)注冊表識別該應用協(xié)議,通過注冊的應用協(xié)議處理函數(shù)來實現(xiàn)應用網(wǎng)關(guān)的地址轉(zhuǎn)換。
在使用時,可以設置訪問控制列表,該列表實際上是一個判斷規(guī)則,是依據(jù)IP數(shù)據(jù)包報頭以及它承載的上層協(xié)議數(shù)據(jù)包頭的格式定義了規(guī)則,可以表示允許或者是禁止具有某些特征(包頭數(shù)據(jù)可以描述的)的數(shù)據(jù)包,由該規(guī)則判斷是否對往來的數(shù)據(jù)報文進行地址轉(zhuǎn)換。如果需要進行地址轉(zhuǎn)換,則通過查找應用網(wǎng)關(guān)注冊表識別該應用協(xié)議,通過注冊的應用協(xié)議處理函數(shù)來實現(xiàn)應用網(wǎng)關(guān)的地址轉(zhuǎn)換。
如圖2所示,是在本發(fā)明中,一個數(shù)據(jù)報文由私網(wǎng)向公網(wǎng)轉(zhuǎn)發(fā)的流程,具體包括如下步驟a、地址轉(zhuǎn)換模塊收到IP層轉(zhuǎn)來的報文后,根據(jù)定義的訪問控制列表判斷是否要對該報文進行地址轉(zhuǎn)換,如果不需要轉(zhuǎn)換就直接轉(zhuǎn)發(fā);如果需要轉(zhuǎn)換,繼續(xù)步驟b;b、取報文的源地址(端口)信息查找地址轉(zhuǎn)換散列表,如果未找到,就根據(jù)配置的地址轉(zhuǎn)換創(chuàng)建一個新的散列表,該散列表內(nèi)記錄了私有的地址(端口)和合法的Internet地址(端口)信息,散列表內(nèi)記錄了每一個NAT轉(zhuǎn)換的源地址、源端口、協(xié)議、時間、轉(zhuǎn)換后的地址和端口等信息,各個開發(fā)者實現(xiàn)的方式可能會因為算法不同而有所不同;c、根據(jù)地址轉(zhuǎn)換散列表記錄的信息,將報文的源地址轉(zhuǎn)換為合法的Internet地址;上述轉(zhuǎn)換過程由NAT基本功能完成,實際上只轉(zhuǎn)換了報文頭內(nèi)的IP地址(端口),所有需要地址轉(zhuǎn)換的報文都需要經(jīng)過以上轉(zhuǎn)換過程,而不管該報文是否屬于特殊的應用協(xié)議,以上的步驟實際上是現(xiàn)有的NAT地址轉(zhuǎn)換一致。
d、通過地址轉(zhuǎn)換流程查找應用網(wǎng)關(guān)注冊表對于內(nèi)部主機訪問Internet服務器的應用,因為該目的端口為知名端口,只需要根據(jù)IP協(xié)議號和目的端口查找應用網(wǎng)關(guān)注冊表項;地址轉(zhuǎn)換流程根據(jù)查找結(jié)果確定對該報文是否需要應用網(wǎng)關(guān)的特殊處理,如果不需要,即只需要轉(zhuǎn)換報文頭內(nèi)的地址(端口)信息,地址轉(zhuǎn)換已結(jié)束;如果需要對報文進行特殊處理,則進入步驟e;e、地址轉(zhuǎn)換流程通過特殊處理回調(diào)函數(shù)指針直接調(diào)用此協(xié)議的應用協(xié)議處理函數(shù),轉(zhuǎn)換報文載荷內(nèi)的地址信息。由于在應用網(wǎng)關(guān)注冊表項內(nèi)已經(jīng)事先注冊了該特殊處理回調(diào)函數(shù)的指針,因此地址轉(zhuǎn)換流程可以通過函數(shù)指針直接調(diào)用此回調(diào)函數(shù),轉(zhuǎn)換報文載荷內(nèi)的地址信息。
經(jīng)過步驟d、e后,已經(jīng)將報文載荷內(nèi)的私有地址轉(zhuǎn)換成為合法的Internet地址,使應用協(xié)議的后續(xù)交互過程能夠正常完成。
如圖3所示,是本發(fā)明IP報文由Internet發(fā)往的內(nèi)部私網(wǎng)地址轉(zhuǎn)換流程圖,從圖中可以看到,報文由Internet發(fā)往內(nèi)部私網(wǎng),地址轉(zhuǎn)換還原的流程與此相似,不同的是,地址還原過程只查找已經(jīng)存在的散列表,將報文的目的地址信息轉(zhuǎn)換為內(nèi)部私網(wǎng)的地址信息,過程如下a、地址轉(zhuǎn)換模塊收到IP層轉(zhuǎn)來的報文后,根據(jù)報文的目的地址、目的端口到地址轉(zhuǎn)換散列表里面查找地址轉(zhuǎn)換記錄,如果沒有相應的地址轉(zhuǎn)換散列表,則不進行NAT轉(zhuǎn)換,將報文直接轉(zhuǎn)發(fā),如果查找到了相應的地址轉(zhuǎn)換散列表,則進入步驟b;b、根據(jù)散列表內(nèi)記錄的地址轉(zhuǎn)換信息,地址轉(zhuǎn)換模塊將報文頭內(nèi)的目的地址(端口)信息轉(zhuǎn)換成私網(wǎng)用戶的地址;上述轉(zhuǎn)換過程也是由NAT基本功能完成,實際上只轉(zhuǎn)換了報文頭內(nèi)的IP地址。
c、地址還原流程查找應用網(wǎng)關(guān)注冊表,根據(jù)查找結(jié)果確定對該報文是否需要應用網(wǎng)關(guān)的特殊處理,如果不需要,地址還原流程已結(jié)束,如果需要,進入步驟d;d、地址還原流程調(diào)用還原方向的應用協(xié)議處理函數(shù),轉(zhuǎn)換報文載荷內(nèi)的地址信息。
本發(fā)明在實現(xiàn)一般的地址轉(zhuǎn)換功能的基礎上,通過特殊協(xié)議注冊的方式提供了完善的地址轉(zhuǎn)換應用網(wǎng)關(guān)擴充機制。如果要地址轉(zhuǎn)換支持一種新的應用協(xié)議,只需開發(fā)該協(xié)議的地址轉(zhuǎn)換應用級網(wǎng)關(guān),借助本方法的應用網(wǎng)關(guān)注冊手段將其注冊,就可以使得NAT技術(shù)支持該協(xié)議,而不需要改變NAT流程及其它已經(jīng)支持的協(xié)議。本發(fā)明在流程上便于支持新的應用協(xié)議,很好地解決了地址轉(zhuǎn)換需要不斷支持新的應用協(xié)議的問題。
我們以前面所述的FTP協(xié)議為例來說明。
要使NAT能夠支持FTP協(xié)議,允許內(nèi)部私網(wǎng)的用戶訪問Internet上的FTP站點,必須確定要對FTP哪些報文進行特殊轉(zhuǎn)換,需要進行什么樣的處理。當私網(wǎng)的用戶GET文件或執(zhí)行LIST命令時,會在FTP控制報文內(nèi)發(fā)送命令“PORT 10,110,1,2,13,23\D\A”(表示端口=13<<8+23,地址=10.110.1.2),其中的地址是用戶的私網(wǎng)IP地址,Internet上的FTP服務器會向PORT命令指定的端口發(fā)送數(shù)據(jù)連接。顯然,如果不對PORT命令進行特殊處理,建立數(shù)據(jù)連接會失敗,必須將PORT命令攜帶的私有地址轉(zhuǎn)換為合法的Internet地址,并根據(jù)數(shù)據(jù)連接使用的地址和端口創(chuàng)建一個地址轉(zhuǎn)換散列表,以允許FTP服務器能主動向私網(wǎng)用戶的主機發(fā)起數(shù)據(jù)連接。
開發(fā)人員按照NAT定義的特殊處理回調(diào)函數(shù)接口開發(fā)相應的FTP協(xié)議處理函數(shù)。該處理函數(shù)負責把FTP PORT命令攜帶的私有地址轉(zhuǎn)換成合法的Internet地址,并根據(jù)PORT命令指定的端口和地址創(chuàng)建一個地址轉(zhuǎn)換散列表,這樣才能允許FTP服務器主動向私網(wǎng)用戶主機發(fā)起FTP數(shù)據(jù)連接。該處理函數(shù)只需處理FTP控制報文載荷的內(nèi)容,而不必轉(zhuǎn)換報文IP頭內(nèi)的地址和TCP頭內(nèi)的端口號,IP頭內(nèi)的地址和TCP頭內(nèi)的端口號由NAT基本功能模塊負責轉(zhuǎn)換為公有地址。
最后,將FTP PORT命令的處理函數(shù)注冊到應用網(wǎng)關(guān)注冊表中。FTP的控制連接使用知名的TCP 21端口,只需要將TCP協(xié)議、知名端口21、FTP PORT命令處理函數(shù)作為注冊參數(shù)創(chuàng)建一個應用網(wǎng)關(guān)注冊表項,在路由器啟動時,調(diào)用相應的注冊函數(shù)添加到應用網(wǎng)關(guān)注冊表中。這樣便能使NAT能支持FTP協(xié)議了。
NAT轉(zhuǎn)換FTP PORT報文的詳細過程前面已經(jīng)敘述過,在此不再描述。
以上舉例可以看出,要支持新的應用網(wǎng)關(guān)借助了NAT基本功能模塊的注冊手段,只需要開發(fā)對應的應用協(xié)議特殊處理函數(shù)并進行注冊,而不需要對NAT基本功能模塊及其它應用網(wǎng)關(guān)進行任何修改。
從上面的實施例不難看出,本發(fā)明實現(xiàn)簡單,不需增添新的硬件設備,而且對已有的智能網(wǎng)系統(tǒng)沒有任何限制,但卻能大大方便用戶。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應該以權(quán)利要求書的保護范圍為準。
權(quán)利要求
1.一種支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于在路由器上創(chuàng)建地址轉(zhuǎn)換應用網(wǎng)關(guān)注冊表,每個注冊表項標識一種應用協(xié)議;在網(wǎng)絡地址轉(zhuǎn)換模塊中(NAT)定義一個處理回調(diào)函數(shù)的接口,如果NAT需要支持一種新的應用協(xié)議,按照上述特殊處理回調(diào)函數(shù)接口,針對這種協(xié)議的報文載荷中需要處理的地址信息建立相應的應用協(xié)議處理函數(shù),并注冊到應用網(wǎng)關(guān)注冊表;在通信過程中,當有新的協(xié)議出現(xiàn)時,通過查找應用網(wǎng)關(guān)注冊表識別該應用協(xié)議,通過注冊的應用協(xié)議回調(diào)函數(shù)來實現(xiàn)應用網(wǎng)關(guān)的地址轉(zhuǎn)換。
2.如權(quán)利要求1所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于還包括將該應用協(xié)議對應的IP協(xié)議號、知名端口號和應用協(xié)議的處理回調(diào)函數(shù)指針作為注冊參數(shù)。
3.如權(quán)利要求2所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于所述的應用協(xié)議處理函數(shù),只對該協(xié)議報文載荷中的私有地址轉(zhuǎn)換為合法的公有地址。
4.如權(quán)利要求3所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于還包括一個設置訪問控制列表步驟,該列表是依據(jù)IP數(shù)據(jù)包報頭以及其所承載的上層協(xié)議數(shù)據(jù)包頭的格式定義的規(guī)則,由該規(guī)則判斷是否對數(shù)據(jù)報文進行地址轉(zhuǎn)換。
5.如權(quán)利要求4所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于所述的應用協(xié)議報文向位于公網(wǎng)上的服務器轉(zhuǎn)發(fā),與向私網(wǎng)內(nèi)的服務器轉(zhuǎn)發(fā)時需要進行不同的特殊處理,應用網(wǎng)關(guān)需要為不同位置的服務器分別提供特殊處理的應用協(xié)議處理函數(shù),這些處理函數(shù)均被注冊到應用網(wǎng)關(guān)注冊表項內(nèi),地址轉(zhuǎn)換流程根據(jù)報文的轉(zhuǎn)發(fā)目的服務器所在位置決定調(diào)用哪一個回調(diào)函數(shù)。
6.如權(quán)利要求5所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于所述的應用協(xié)議報文由私網(wǎng)向公網(wǎng)轉(zhuǎn)發(fā),與從公網(wǎng)向私網(wǎng)轉(zhuǎn)發(fā)時需要進行不同的特殊處理,應用網(wǎng)關(guān)需要為轉(zhuǎn)換方向和還原方向分別提供特殊處理的應用協(xié)議處理函數(shù),這些處理函數(shù)均被注冊到應用網(wǎng)關(guān)注冊表項內(nèi),地址轉(zhuǎn)換流程根據(jù)報文的轉(zhuǎn)發(fā)方向決定調(diào)用哪一個回調(diào)函數(shù)。
7.如權(quán)利要求6所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于數(shù)據(jù)報文由私網(wǎng)向公網(wǎng)轉(zhuǎn)發(fā)的流程為a、地址轉(zhuǎn)換模塊收到IP層轉(zhuǎn)來的報文后,根據(jù)訪問控制列表判斷是否要對該報文進行地址轉(zhuǎn)換,如果不需要轉(zhuǎn)換就直接轉(zhuǎn)發(fā),如果需要轉(zhuǎn)換則進入步驟b;b、取報文的源地址信息查找地址轉(zhuǎn)換散列表,如果未找到,就根據(jù)配置的地址轉(zhuǎn)換創(chuàng)建一個新的地址轉(zhuǎn)換散列表,該地址轉(zhuǎn)換散列表內(nèi)記錄了私有的地址和合法的Internet地址信息;c、根據(jù)地址轉(zhuǎn)換散列表記錄的信息,將報文的源地址轉(zhuǎn)換為合法的Internet地址;d、查找應用網(wǎng)關(guān)注冊表,根據(jù)查找結(jié)果確定對該報文是否需要應用網(wǎng)關(guān)的特殊處理,如果不需要,即只需要轉(zhuǎn)換報文頭內(nèi)的地址信息,地址轉(zhuǎn)換結(jié)束,否則進入步驟e;e、通過調(diào)用此協(xié)議特殊處理的應用協(xié)議處理函數(shù),轉(zhuǎn)換報文載荷內(nèi)的地址信息。
8.如權(quán)利要求7所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于步驟d中,對于內(nèi)部主機訪問Internet服務器,只需要根據(jù)IP協(xié)議號和目的端口查找應用網(wǎng)關(guān)注冊表項。
9.如權(quán)利要求7所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于步驟c中的轉(zhuǎn)換過程由NAT完成,只轉(zhuǎn)換了報文頭內(nèi)的IP地址。
10.如權(quán)利要求6所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于當數(shù)據(jù)報文由公網(wǎng)向私網(wǎng)轉(zhuǎn)發(fā)的流程為a、地址轉(zhuǎn)換模塊收到IP層轉(zhuǎn)來的報文后,根據(jù)報文的目的地址、目的端口到地址轉(zhuǎn)換散列表里面查找地址轉(zhuǎn)換記錄,如果沒有相應的地址轉(zhuǎn)換散列表,則不進行NAT轉(zhuǎn)換,將報文直接轉(zhuǎn)發(fā),如果查找到了相應的地址轉(zhuǎn)換散列表,則進入步驟b;b、根據(jù)散列表內(nèi)記錄的地址轉(zhuǎn)換信息,地址轉(zhuǎn)換模塊將報文頭內(nèi)的目的地址信息轉(zhuǎn)換成私網(wǎng)用戶的地址;c、查找應用網(wǎng)關(guān)注冊表,根據(jù)查找結(jié)果確定對該報文是否需要應用網(wǎng)關(guān)的特殊處理,如果不需要,地址還原流程已結(jié)束,如果需要,進入步驟d;d、調(diào)用還原方向的應用協(xié)議處理函數(shù),轉(zhuǎn)換報文載荷內(nèi)的地址信息。
11.如權(quán)利要求10所述的支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法,其特征在于所述的步驟b中,只轉(zhuǎn)換了報文頭內(nèi)的IP地址。
全文摘要
本發(fā)明涉及一種支持地址轉(zhuǎn)換應用網(wǎng)關(guān)的方法。包括在路由器上創(chuàng)建地址轉(zhuǎn)換應用網(wǎng)關(guān)注冊表,每個注冊表項標識一種的應用協(xié)議;在網(wǎng)絡地址轉(zhuǎn)換模塊中(NAT)定義一個處理回調(diào)函數(shù)的接口,如果NAT需要支持一種新的應用協(xié)議,按照上述特殊處理回調(diào)函數(shù)接口,針對這種協(xié)議的報文載荷中需要處理的地址信息建立相應的應用協(xié)議處理函數(shù),并注冊到應用網(wǎng)關(guān)注冊表;在通信過程中,當有新的協(xié)議出現(xiàn)時,通過查找應用網(wǎng)關(guān)注冊表識別該應用協(xié)議,通過注冊的應用協(xié)議回調(diào)函數(shù)來實現(xiàn)應用網(wǎng)關(guān)的地址轉(zhuǎn)換。本發(fā)明很好地解決了地址轉(zhuǎn)換需要不斷支持新的應用協(xié)議的問題。
文檔編號H04L12/66GK1476208SQ02125708
公開日2004年2月18日 申請日期2002年8月13日 優(yōu)先權(quán)日2002年8月13日
發(fā)明者李健, 李 健 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
锡林郭勒盟| 武义县| 灌云县| 和平区| 栾城县| 阿拉尔市| 开阳县| 四会市| 西昌市| 新和县| 方正县| 闽清县| 珲春市| 鸡西市| 湘潭市| 宁乡县| 庆安县| 高州市| 韶关市| 定结县| 凤冈县| 财经| 军事| 容城县| 九龙坡区| 澳门| 汽车| 商水县| 昭苏县| 丁青县| 普安县| 长垣县| 团风县| 廉江市| 石渠县| 上栗县| 江都市| 大方县| 南涧| 金平| 阜宁县|