專利名稱:一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),特別涉及到網(wǎng)絡(luò)地址轉(zhuǎn)換的實(shí)現(xiàn)。
背景技術(shù):
隨著寬帶技術(shù)的成熟,家庭網(wǎng)絡(luò)化將成為了整個(gè)社會(huì)信息化的一個(gè)重要部分,為了適應(yīng)這種持續(xù)激增的寬帶業(yè)務(wù)需求,提出了“數(shù)字家庭”這一新的概念?!皵?shù)字家庭”類(lèi)的業(yè)務(wù)可以分為四種類(lèi)型1、家庭娛樂(lè)和通信類(lèi)通過(guò)機(jī)頂盒提供數(shù)字電視、視音頻點(diǎn)播、時(shí)移電視、網(wǎng)絡(luò)游戲,視頻電話,以及遠(yuǎn)程教育等業(yè)務(wù);2、家庭安全類(lèi)為家庭提供監(jiān)控和告警,例如,闖入警報(bào)、戶外警報(bào)、煙霧/溢水監(jiān)測(cè)和告警等;3、家庭自動(dòng)控制類(lèi)利用網(wǎng)絡(luò)進(jìn)行家電控制,照明控制,門(mén)窗控制等;4、家庭醫(yī)療保健類(lèi)作為一個(gè)遠(yuǎn)期方案,家庭醫(yī)療業(yè)務(wù)能夠?qū)彝コ蓡T進(jìn)行遠(yuǎn)程日常健康檢查,心電圖/血壓/血糖/體重/肺量測(cè)量、實(shí)施藥療計(jì)劃、視頻會(huì)診等。
“數(shù)字家庭”在實(shí)現(xiàn)時(shí)的一個(gè)技術(shù)障礙是現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)不能很好的支持?jǐn)?shù)字化網(wǎng)絡(luò)向家庭內(nèi)部設(shè)備的滲透,其中IP地址的緊缺就是其中所遇到的一個(gè)重要問(wèn)題?,F(xiàn)在普遍使用的IPv4是于20世紀(jì)70年代末期設(shè)計(jì)的IP協(xié)議,IPv4的IP地址只有32位,隨著全球計(jì)算機(jī)用戶的增加,以及早期IP地址的分類(lèi)及分配方法的不足,IP地址的緊缺現(xiàn)象十分嚴(yán)重。雖然新提出的IPv6將IP地址從32位擴(kuò)展為128位,可以從根本上解決IP地址緊缺的問(wèn)題,但對(duì)已經(jīng)成熟運(yùn)行的現(xiàn)有網(wǎng)絡(luò)體系結(jié)構(gòu)(包括網(wǎng)絡(luò)硬件設(shè)備和運(yùn)行的網(wǎng)絡(luò)協(xié)議軟件等)影響較大,很難在短期內(nèi)取代IPv4。
解決IP地址短缺的一種方法是采用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)技術(shù),只要在專用網(wǎng)和因特網(wǎng)連接的路由設(shè)備上運(yùn)行一個(gè)NAT程序,就能以很小的代價(jià)解決IPv4地址緊缺的問(wèn)題。在“數(shù)字家庭”中也可以用網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)解決IP地址的短缺,使得現(xiàn)在成熟的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的價(jià)值鏈得到延伸,且不改變現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò)的體系結(jié)構(gòu)。
在數(shù)字家庭中,實(shí)現(xiàn)網(wǎng)絡(luò)地址轉(zhuǎn)換的相應(yīng)NAT程序安裝在家庭網(wǎng)關(guān)上。家庭網(wǎng)關(guān)是連接公網(wǎng)和家庭私網(wǎng)的喉舌,它既負(fù)責(zé)家庭私網(wǎng)內(nèi)部對(duì)公網(wǎng)的訪問(wèn)和交互,又負(fù)責(zé)用戶從公網(wǎng)上對(duì)于家庭網(wǎng)絡(luò)的訪問(wèn)和控制,另外還需要負(fù)責(zé)家庭私網(wǎng)內(nèi)部設(shè)備的互聯(lián),互控等操作。一個(gè)具備實(shí)用價(jià)值的家庭網(wǎng)關(guān)應(yīng)當(dāng)具備寬帶接入、業(yè)務(wù)識(shí)別、控制信息轉(zhuǎn)發(fā)等功能。
現(xiàn)有NAT技術(shù)為了適應(yīng)廣泛的適用性,必須對(duì)硬件層的差異進(jìn)行很好的屏蔽,這就意味著要增加上層軟件的復(fù)雜性。然而,對(duì)于數(shù)字家庭中的家庭網(wǎng)關(guān)來(lái)說(shuō),由于應(yīng)用環(huán)境比較固定,也比較單一,所以并不需要具備很強(qiáng)的靈活性,而是需要實(shí)現(xiàn)簡(jiǎn)單和較高效率。因此,為家庭網(wǎng)關(guān)提供一種簡(jiǎn)單、高效的網(wǎng)絡(luò)地址轉(zhuǎn)換方法對(duì)數(shù)字家庭的實(shí)現(xiàn)具有重大的意義。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有的路由設(shè)備的上層軟件過(guò)于復(fù)雜,網(wǎng)絡(luò)地址轉(zhuǎn)換效率較低的缺陷,從而提供一種簡(jiǎn)單、高效的網(wǎng)絡(luò)地址轉(zhuǎn)換方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,在網(wǎng)絡(luò)地址轉(zhuǎn)換時(shí)采用處理控制塊,所述處理控制塊包括6個(gè)子塊,分別為路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址、內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)、私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址、用于組織數(shù)據(jù)結(jié)構(gòu)的信息、全局唯一的端口號(hào)以及超時(shí)信息;所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法用于實(shí)現(xiàn)私網(wǎng)IP地址到公網(wǎng)IP地址的轉(zhuǎn)換,具體包含以下步驟步驟11)、路由設(shè)備的內(nèi)部網(wǎng)絡(luò)接口接收私網(wǎng)發(fā)來(lái)的數(shù)據(jù)幀;步驟12)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟13)、根據(jù)數(shù)據(jù)幀的目的IP地址,判斷數(shù)據(jù)幀是否發(fā)往外部的公網(wǎng),若發(fā)往外部的公網(wǎng),則執(zhí)行下一步,否則,執(zhí)行步驟18);步驟14)、將數(shù)據(jù)幀的源地址與路由設(shè)備中所保存的關(guān)于處理控制塊的表進(jìn)行比較,若源地址與某一處理控制塊所記錄的內(nèi)部終端設(shè)備的IP地址相同,則本次數(shù)據(jù)轉(zhuǎn)發(fā)已建立過(guò)連接,執(zhí)行步驟16),否則執(zhí)行下一步;
步驟15)、在路由設(shè)備所保存的關(guān)于處理控制塊的表中建立新的處理控制塊;步驟16)、將數(shù)據(jù)幀中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改為全局唯一的端口號(hào),將數(shù)據(jù)幀的源IP地址修改為路由設(shè)備的外部網(wǎng)絡(luò)接口的IP地址,同時(shí)修改校驗(yàn)和;步驟17)、調(diào)用外部網(wǎng)絡(luò)接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程發(fā)送數(shù)據(jù)幀;步驟18)、結(jié)束本次發(fā)送操作。
本發(fā)明還提供了一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,在網(wǎng)絡(luò)地址轉(zhuǎn)換時(shí)采用處理控制塊,所述處理控制塊包括6個(gè)子塊,分別為路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址、內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)、私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址、用于組織數(shù)據(jù)結(jié)構(gòu)的信息、全局唯一的端口號(hào)以及超時(shí)信息;所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法用于實(shí)現(xiàn)公網(wǎng)IP地址到私網(wǎng)IP地址的轉(zhuǎn)換,具體包含以下步驟步驟21)、路由設(shè)備的外部網(wǎng)絡(luò)接口接收外部網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)幀;步驟22)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟23)、根據(jù)數(shù)據(jù)幀中的目的端口號(hào),判斷該數(shù)據(jù)幀是否發(fā)往私網(wǎng),若目的端口號(hào)與保存在路由設(shè)備中的處理控制塊中的全局唯一端口號(hào)相同,則該數(shù)據(jù)幀發(fā)往私網(wǎng),執(zhí)行下一步;否則執(zhí)行步驟27);步驟24)、根據(jù)查找到的與目的端口號(hào)相同的全局唯一端口號(hào),找到該全局唯一端口號(hào)所在處理控制塊;步驟25)、利用步驟24)中所查找到的處理控制塊中的內(nèi)部終端設(shè)備的IP地址修改數(shù)據(jù)幀中的目的IP地址,利用處理控制塊中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改數(shù)據(jù)幀中的目的端口號(hào),同時(shí)還更改數(shù)據(jù)幀中的校驗(yàn)和;步驟26)、利用步驟24)中所查找到的處理控制塊中內(nèi)部網(wǎng)絡(luò)接口的IP地址,調(diào)用該接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程轉(zhuǎn)發(fā)該數(shù)據(jù)幀;步驟27)、結(jié)束操作。
上述技術(shù)方案中,所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法實(shí)現(xiàn)公網(wǎng)IP地址到私網(wǎng)IP地址的轉(zhuǎn)換前,對(duì)所述處理控制塊作配置操作,為所述處理控制塊的6個(gè)子塊添加相應(yīng)的信息。
本發(fā)明又提供了一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,在網(wǎng)絡(luò)地址轉(zhuǎn)換時(shí)采用處理控制塊,所述處理控制塊包括6個(gè)子塊,分別為路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址、內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)、私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址、用于組織數(shù)據(jù)結(jié)構(gòu)的信息、全局唯一的端口號(hào)以及超時(shí)信息;所述網(wǎng)絡(luò)地址轉(zhuǎn)換方法包括私網(wǎng)IP地址轉(zhuǎn)換到公網(wǎng)IP地址,以及公網(wǎng)IP地址轉(zhuǎn)換到私網(wǎng)IP地址;其中,所述的私網(wǎng)IP地址轉(zhuǎn)換到公網(wǎng)IP地址具體包括以下步驟步驟11)、路由設(shè)備的內(nèi)部網(wǎng)絡(luò)接口接收私網(wǎng)發(fā)來(lái)的數(shù)據(jù)幀;步驟12)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟13)、根據(jù)數(shù)據(jù)幀的目的IP地址,判斷數(shù)據(jù)幀是否發(fā)往外部的公網(wǎng),若發(fā)往外部的公網(wǎng),則執(zhí)行下一步,否則,執(zhí)行步驟18);步驟14)、將數(shù)據(jù)幀的源地址與路由設(shè)備中所保存的關(guān)于處理控制塊的表進(jìn)行比較,若源地址與某一處理控制塊所記錄的內(nèi)部終端設(shè)備的IP地址相同,則本次數(shù)據(jù)轉(zhuǎn)發(fā)已建立過(guò)連接,執(zhí)行步驟16),否則執(zhí)行下一步;步驟15)、在路由設(shè)備所保存的關(guān)于處理控制塊的表中建立新的處理控制塊;步驟16)、將數(shù)據(jù)幀中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改為全局唯一的端口號(hào),將數(shù)據(jù)幀的源IP地址修改為路由設(shè)備的外部網(wǎng)絡(luò)接口的IP地址,同時(shí)修改校驗(yàn)和;步驟17)、調(diào)用外部網(wǎng)絡(luò)接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程發(fā)送數(shù)據(jù)幀;步驟18)、結(jié)束本次發(fā)送操作;其中,所述的公網(wǎng)IP地址轉(zhuǎn)換到私網(wǎng)IP地址具體包含以下步驟步驟21)、路由設(shè)備的外部網(wǎng)絡(luò)接口接收外部網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)幀;步驟22)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟23)、根據(jù)數(shù)據(jù)幀中的目的端口號(hào),判斷該數(shù)據(jù)幀是否發(fā)往私網(wǎng),若目的端口號(hào)與保存在路由設(shè)備中的處理控制塊中的全局唯一端口號(hào)相同,則該數(shù)據(jù)幀發(fā)往私網(wǎng),執(zhí)行下一步;否則執(zhí)行步驟27);步驟24)、根據(jù)查找到的與目的端口號(hào)相同的全局唯一端口號(hào),找到該全局唯一端口號(hào)所在處理控制塊;步驟25)、利用步驟24)中所查找到的處理控制塊中的內(nèi)部終端設(shè)備的IP地址修改數(shù)據(jù)幀中的目的IP地址,利用處理控制塊中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改數(shù)據(jù)幀中的目的端口號(hào),同時(shí)還更改數(shù)據(jù)幀中的校驗(yàn)和;
步驟26)、利用步驟24)中所查找到的處理控制塊中內(nèi)部網(wǎng)絡(luò)接口的IP地址,調(diào)用該接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程轉(zhuǎn)發(fā)該數(shù)據(jù)幀;步驟27)、結(jié)束操作。
上述技術(shù)方案中,在所述的步驟15)中,在建立新的處理控制塊時(shí),將發(fā)送數(shù)據(jù)幀的內(nèi)部終端的IP地址作為所述的私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址;將與發(fā)送數(shù)據(jù)幀的內(nèi)部終端相連的內(nèi)部網(wǎng)絡(luò)接口的IP地址作為所述的路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址;將與發(fā)送數(shù)據(jù)幀的內(nèi)部終端相連的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)作為所述的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào);分配一個(gè)只屬于所述發(fā)送數(shù)據(jù)幀的內(nèi)部終端的端口號(hào)作為所述的全局唯一的端口號(hào)。
上述技術(shù)方案中,在所述的步驟17)中,在發(fā)送數(shù)據(jù)幀時(shí),在數(shù)據(jù)鏈路層上實(shí)現(xiàn)數(shù)據(jù)幀的轉(zhuǎn)發(fā)。
本發(fā)明的優(yōu)點(diǎn)在于1、本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法針對(duì)家庭網(wǎng)關(guān)的特定應(yīng)用,原理簡(jiǎn)單,地址轉(zhuǎn)換效率高。
2、本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法在鏈路層做數(shù)據(jù)轉(zhuǎn)發(fā)操作,簡(jiǎn)化了IP層代碼的實(shí)現(xiàn)復(fù)雜度,并提高了數(shù)據(jù)的轉(zhuǎn)發(fā)效率。
圖1為本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法中的處理控制塊的數(shù)據(jù)結(jié)構(gòu)圖;圖2為本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法中數(shù)據(jù)流在網(wǎng)絡(luò)協(xié)議中所處的位置;圖3為本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法中私網(wǎng)IP地址轉(zhuǎn)換到公網(wǎng)IP地址的流程圖;圖4為本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法中公網(wǎng)IP地址轉(zhuǎn)換到私網(wǎng)IP地址的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
實(shí)施例1以一個(gè)家庭局域網(wǎng)為例,對(duì)本發(fā)明的方法進(jìn)行說(shuō)明。在一個(gè)家庭局域網(wǎng)中,多臺(tái)帶有網(wǎng)絡(luò)接口的家用電器與一個(gè)家庭網(wǎng)關(guān)的內(nèi)部網(wǎng)絡(luò)接口相連,連接在該家庭網(wǎng)關(guān)上的所有家用電器形成家庭局域網(wǎng)。在家庭網(wǎng)關(guān)上還有一個(gè)外部網(wǎng)絡(luò)接口,家庭網(wǎng)關(guān)通過(guò)該外部網(wǎng)絡(luò)接口連接到互聯(lián)網(wǎng)上,從而實(shí)現(xiàn)家庭局域網(wǎng)與互聯(lián)網(wǎng)間的連接。假設(shè)在本實(shí)施例中的家庭局域網(wǎng)中,家用電器包括一個(gè)空調(diào)、一臺(tái)洗衣機(jī)、一臺(tái)家用電腦。這些電器都和家庭網(wǎng)關(guān)上的內(nèi)部網(wǎng)絡(luò)接口連接。
家庭局域網(wǎng)中的家用電器要與互聯(lián)網(wǎng)中的某臺(tái)外部主機(jī)進(jìn)行交互需要實(shí)現(xiàn)網(wǎng)絡(luò)地址的轉(zhuǎn)換。本發(fā)明構(gòu)造了一種新的數(shù)據(jù)結(jié)構(gòu)“處理控制塊”(Processing ControlBlock,以下可簡(jiǎn)稱PCB)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)地址的轉(zhuǎn)換。如圖1所示,處理控制塊可以分成六個(gè)子塊,其中,①表示路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址;②表示內(nèi)部網(wǎng)絡(luò)接口的端口號(hào);③表示內(nèi)部網(wǎng)絡(luò)中與①所表示的內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址;④表示用于組織數(shù)據(jù)結(jié)構(gòu)的信息,該項(xiàng)用于將記錄項(xiàng)連接成一個(gè)鏈表,以便管理;⑤表示全局唯一的端口號(hào),家庭局域網(wǎng)中的不同電器有不同的端口號(hào)⑤,對(duì)同一個(gè)電器在不同時(shí)間有同樣的端口號(hào)⑤;⑥表示超時(shí)信息,用于將長(zhǎng)時(shí)間沒(méi)有用到的某個(gè)PCB數(shù)據(jù)結(jié)構(gòu)刪除,以便動(dòng)態(tài)維護(hù)整個(gè)地址轉(zhuǎn)換所需的信息。
下面假設(shè)家庭局域網(wǎng)中的一臺(tái)電腦與外部一臺(tái)主機(jī)進(jìn)行交互,對(duì)本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法作進(jìn)一步的說(shuō)明。家庭局域網(wǎng)中的電腦與外部主機(jī)交互可以分成兩大部分,即內(nèi)部網(wǎng)絡(luò)發(fā)出對(duì)外部網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求,外部網(wǎng)絡(luò)回應(yīng)內(nèi)部網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求,下面分別進(jìn)行說(shuō)明一、內(nèi)部網(wǎng)絡(luò)提出對(duì)外部網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求,如圖3所示,包含以下步驟。
步驟11、家庭網(wǎng)關(guān)的內(nèi)部網(wǎng)絡(luò)接口接收內(nèi)部網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)幀;步驟12、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟13、解析數(shù)據(jù)幀的結(jié)構(gòu),根據(jù)IP地址所距數(shù)據(jù)幀開(kāi)始位置的偏移量取出目的IP地址,判斷該幀數(shù)據(jù)是不是發(fā)往外部網(wǎng)絡(luò);如果目的IP地址是本內(nèi)部網(wǎng)絡(luò)的某臺(tái)終端的IP,則數(shù)據(jù)幀不是發(fā)往外部網(wǎng)絡(luò)的,轉(zhuǎn)步驟18;否則認(rèn)為是發(fā)往外部網(wǎng)絡(luò),執(zhí)行下一步;例如,當(dāng)家庭網(wǎng)關(guān)接收到家庭局域網(wǎng)中的電腦所發(fā)送來(lái)的數(shù)據(jù)幀以后,判斷數(shù)據(jù)幀中的目的IP地址,若該目的IP地址是家庭局域網(wǎng)中的洗衣機(jī)的IP地址或標(biāo)識(shí),就把該數(shù)據(jù)幀發(fā)送到洗衣機(jī)上,否則通過(guò)家庭網(wǎng)關(guān)將該數(shù)據(jù)幀發(fā)送到互聯(lián)網(wǎng)上。
步驟14、將數(shù)據(jù)幀的源地址與PCB表項(xiàng)的③域作比較,查找PCB表,看是否有符合的PCB表項(xiàng)可用,即檢查本次數(shù)據(jù)轉(zhuǎn)發(fā)是否已經(jīng)建立過(guò)連接,如果有匹配的表項(xiàng)可用,則執(zhí)行步驟16,否則執(zhí)行下一步;步驟15、建立新的PCB表項(xiàng),然后執(zhí)行下一步;例如,假設(shè)家庭局域網(wǎng)中的電腦的網(wǎng)絡(luò)標(biāo)識(shí)為private_ip,該電腦與家庭網(wǎng)關(guān)相連接的內(nèi)部網(wǎng)絡(luò)接口的網(wǎng)絡(luò)標(biāo)識(shí)為local_ip,該家庭網(wǎng)關(guān)與local_ip,該家庭網(wǎng)關(guān)與互聯(lián)網(wǎng)相連的外部網(wǎng)絡(luò)接口的IP地址為external_ip,該IP地址是一個(gè)合法的IP地址。當(dāng)電腦通過(guò)local_ip將數(shù)據(jù)發(fā)送給家庭網(wǎng)關(guān)時(shí)分配了一個(gè)端口號(hào),記為local_port。假設(shè)家庭網(wǎng)關(guān)的全局唯一端口號(hào)為Ass_port,設(shè)定超時(shí)時(shí)間tmr(在這里超時(shí)機(jī)制的運(yùn)用與網(wǎng)絡(luò)地址轉(zhuǎn)換的機(jī)制沒(méi)有關(guān)系,為了突出重點(diǎn)和簡(jiǎn)單起見(jiàn),下面將不予考慮),最后給組織數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)項(xiàng)賦一個(gè)有效的指針next,用于將有效的PCB數(shù)據(jù)結(jié)構(gòu)組織成一個(gè)鏈表。家庭局域網(wǎng)中的電腦第一次向外發(fā)送數(shù)據(jù)時(shí),所建立的PCB數(shù)據(jù)表如表1所示
表1建立PCB數(shù)據(jù)表以后,根據(jù)數(shù)據(jù)表中的相關(guān)內(nèi)容,修改數(shù)據(jù)幀。例如,當(dāng)家庭局域網(wǎng)中的電腦要將數(shù)據(jù)發(fā)送到互聯(lián)網(wǎng)上時(shí),將數(shù)據(jù)幀中的源IP修改為external_ip;將Local_port修改為ass_port,并修改校驗(yàn)和。
步驟16、將數(shù)據(jù)幀的源IP地址段改為外部網(wǎng)絡(luò)接口的IP地址,將原端口號(hào)改為全局唯一端口號(hào)⑤,步驟17、調(diào)用外部網(wǎng)絡(luò)接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程發(fā)送數(shù)據(jù)幀;在轉(zhuǎn)發(fā)數(shù)據(jù)幀時(shí),如圖2所示,數(shù)據(jù)幀在數(shù)據(jù)鏈路層上實(shí)現(xiàn)轉(zhuǎn)發(fā)。數(shù)據(jù)之所以在鏈路層轉(zhuǎn)發(fā),是因?yàn)楸景l(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換的實(shí)現(xiàn)是嵌入在網(wǎng)絡(luò)接口的硬件驅(qū)動(dòng)程序里的,可以看成是硬件驅(qū)動(dòng)的一部分,而不是通過(guò)硬件驅(qū)動(dòng)的接口調(diào)用驅(qū)動(dòng)層提供的服務(wù),這也就意味著不需要修改IP層,提高了數(shù)據(jù)轉(zhuǎn)發(fā)的效率。
步驟18、結(jié)束本次發(fā)送操作。
二、外部網(wǎng)絡(luò)回應(yīng)內(nèi)部網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求,如圖4所示,包含以下步驟。
步驟21、家庭網(wǎng)關(guān)的外部網(wǎng)絡(luò)接口接收外部網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)幀;步驟22、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟23、解析數(shù)據(jù)幀的結(jié)構(gòu),根據(jù)目的端口號(hào)所處位置距數(shù)據(jù)幀開(kāi)始位置的偏移量取出目的端口號(hào),根據(jù)目的端口號(hào)判斷該幀數(shù)據(jù)是不是發(fā)往該內(nèi)部網(wǎng)絡(luò)的;用目的端口號(hào)與PCB表中的表項(xiàng)中的⑤逐個(gè)匹配,如果不存在匹配的PCB表項(xiàng),則數(shù)據(jù)幀不是發(fā)往內(nèi)部網(wǎng)絡(luò),執(zhí)行步驟27;否則是發(fā)往該內(nèi)部網(wǎng)絡(luò),執(zhí)行下一步;步驟24、根據(jù)查找到的與目的端口號(hào)相同的全局唯一端口號(hào),找到該全局唯一端口號(hào)所在PCB;步驟25、根據(jù)PCB表項(xiàng)中的③域更改數(shù)據(jù)幀中的目的IP地址,利用②域更改數(shù)據(jù)幀中的目的端口號(hào),并修改相應(yīng)的校驗(yàn)位;例如,當(dāng)互聯(lián)網(wǎng)中的終端向家庭局域網(wǎng)中的電腦發(fā)送數(shù)據(jù)幀時(shí),該數(shù)據(jù)幀中的目的端口號(hào)應(yīng)為ass_port,通過(guò)對(duì)PCB表的查找,家庭網(wǎng)關(guān)可知該數(shù)據(jù)幀是發(fā)送到它所連接的家庭局域網(wǎng)中的,根據(jù)PCB表項(xiàng)中所填寫(xiě)的內(nèi)容,將數(shù)據(jù)幀中的目的地址由external_ip修改為private_ip,將數(shù)據(jù)幀中的目的端口號(hào)由ass_port修改為local_port。
步驟26、根據(jù)匹配PCB表項(xiàng)的①找出相應(yīng)的內(nèi)部網(wǎng)絡(luò)接口,調(diào)用該接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程轉(zhuǎn)發(fā)該數(shù)據(jù)幀;由于在PCB表項(xiàng)中,與電腦相連的內(nèi)部網(wǎng)絡(luò)接口的網(wǎng)絡(luò)標(biāo)識(shí)為local_ip,調(diào)用其驅(qū)動(dòng)程序?qū)?shù)據(jù)幀發(fā)送到電腦上。
步驟27、結(jié)束操作。
實(shí)施例2在一些私網(wǎng)中,某些內(nèi)部終端不會(huì)主動(dòng)提出訪問(wèn)網(wǎng)絡(luò)的請(qǐng)求,例如在“數(shù)字家庭”一臺(tái)具有聯(lián)網(wǎng)功能的空調(diào)并不能訪問(wèn)公網(wǎng)中的終端。但用戶需要對(duì)其進(jìn)行遠(yuǎn)程控制,因此需要對(duì)其進(jìn)行配置操作。
在具體實(shí)現(xiàn)時(shí),就是為私網(wǎng)中的內(nèi)部終端分配一些保留的全局唯一的端口號(hào)。例如將65000~65530范圍的端口號(hào)作為保留端口號(hào),分配給空調(diào)等“被動(dòng)式”的設(shè)備使用,由用戶通過(guò)計(jì)算機(jī)對(duì)家庭網(wǎng)關(guān)進(jìn)行配置,具體配置內(nèi)容就是為類(lèi)似的“被動(dòng)式”設(shè)備建立PCB數(shù)據(jù)結(jié)構(gòu)。例如,某個(gè)空調(diào)的終端IP地址為IP_aircondition;連接到家庭網(wǎng)關(guān)的內(nèi)部網(wǎng)絡(luò)接口的地址為IP_local_air;為其分配的全局唯一的端口號(hào)為65001;由于這種被動(dòng)設(shè)備不會(huì)同時(shí)出現(xiàn)多個(gè)會(huì)話(session),所以內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)的端口號(hào)理論上可以不用,但為了保持一致性,也為了計(jì)算校驗(yàn)和方便,可以將其設(shè)為與全局唯一端口號(hào)相同即65001;并且超時(shí)計(jì)時(shí)器tmr可設(shè)為無(wú)窮大,即此項(xiàng)PCB數(shù)據(jù)結(jié)構(gòu)不會(huì)由于時(shí)間過(guò)久沒(méi)有使用而失效。則建立的PCB數(shù)據(jù)結(jié)構(gòu)如表2所示
表2建立上述處理控制塊后,數(shù)據(jù)轉(zhuǎn)發(fā)的操作流程與實(shí)施例1中所描述的正常的處理流程相同。在本實(shí)施例中不再作進(jìn)一步的說(shuō)明。
上述的實(shí)施例1和實(shí)施例2以家庭局域網(wǎng)為例,對(duì)本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法進(jìn)行說(shuō)明,但本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)明白,在其他涉及公網(wǎng)IP地址與私網(wǎng)IP地址轉(zhuǎn)換的應(yīng)用場(chǎng)景中,本發(fā)明的網(wǎng)絡(luò)地址轉(zhuǎn)換方法同樣適用。
權(quán)利要求
1.一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,在網(wǎng)絡(luò)地址轉(zhuǎn)換時(shí)采用處理控制塊,其特征在于,所述處理控制塊包括6個(gè)子塊,分別為路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址、內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)、私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址、用于組織數(shù)據(jù)結(jié)構(gòu)的信息、全局唯一的端口號(hào)以及超時(shí)信息;所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法用于實(shí)現(xiàn)私網(wǎng)IP地址到公網(wǎng)IP地址的轉(zhuǎn)換,具體包含以下步驟步驟11)、路由設(shè)備的內(nèi)部網(wǎng)絡(luò)接口接收私網(wǎng)發(fā)來(lái)的數(shù)據(jù)幀;步驟12)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟13)、根據(jù)數(shù)據(jù)幀的目的IP地址,判斷數(shù)據(jù)幀是否發(fā)往外部的公網(wǎng),若發(fā)往外部的公網(wǎng),則執(zhí)行下一步,否則,執(zhí)行步驟18);步驟14)、將數(shù)據(jù)幀的源地址與路由設(shè)備中所保存的關(guān)于處理控制塊的表進(jìn)行比較,若源地址與某一處理控制塊所記錄的內(nèi)部終端設(shè)備的IP地址相同,則本次數(shù)據(jù)轉(zhuǎn)發(fā)已建立過(guò)連接,執(zhí)行步驟16),否則執(zhí)行下一步;步驟15)、在路由設(shè)備所保存的關(guān)于處理控制塊的表中建立新的處理控制塊;步驟16)、將數(shù)據(jù)幀中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改為全局唯一的端口號(hào),將數(shù)據(jù)幀的源IP地址修改為路由設(shè)備的外部網(wǎng)絡(luò)接口的IP地址,同時(shí)修改校驗(yàn)和;步驟17)、調(diào)用外部網(wǎng)絡(luò)接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程發(fā)送數(shù)據(jù)幀;步驟18)、結(jié)束本次發(fā)送操作。
2.一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,在網(wǎng)絡(luò)地址轉(zhuǎn)換時(shí)采用處理控制塊,其特征在于,所述處理控制塊包括6個(gè)子塊,分別為路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址、內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)、私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址、用于組織數(shù)據(jù)結(jié)構(gòu)的信息、全局唯一的端口號(hào)以及超時(shí)信息;所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法用于實(shí)現(xiàn)公網(wǎng)IP地址到私網(wǎng)IP地址的轉(zhuǎn)換,具體包含以下步驟步驟21)、路由設(shè)備的外部網(wǎng)絡(luò)接口接收外部網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)幀;步驟22)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟23)、根據(jù)數(shù)據(jù)幀中的目的端口號(hào),判斷該數(shù)據(jù)幀是否發(fā)往私網(wǎng),若目的端口號(hào)與保存在路由設(shè)備中的處理控制塊中的全局唯一端口號(hào)相同,則該數(shù)據(jù)幀發(fā)往私網(wǎng),執(zhí)行下一步;否則執(zhí)行步驟27);步驟24)、根據(jù)查找到的與目的端口號(hào)相同的全局唯一端口號(hào),找到該全局唯一端口號(hào)所在處理控制塊;步驟25)、利用步驟24)中所查找到的處理控制塊中的內(nèi)部終端設(shè)備的IP地址修改數(shù)據(jù)幀中的目的IP地址,利用處理控制塊中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改數(shù)據(jù)幀中的目的端口號(hào),同時(shí)還更改數(shù)據(jù)幀中的校驗(yàn)和;步驟26)、利用步驟24)中所查找到的處理控制塊中內(nèi)部網(wǎng)絡(luò)接口的IP地址,調(diào)用該接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程轉(zhuǎn)發(fā)該數(shù)據(jù)幀;步驟27)、結(jié)束操作。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法,其特征在于,所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法實(shí)現(xiàn)公網(wǎng)IP地址到私網(wǎng)IP地址的轉(zhuǎn)換前,對(duì)所述處理控制塊作配置操作,為所述處理控制塊的6個(gè)子塊添加相應(yīng)的信息。
4.一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,其特征在于,在網(wǎng)絡(luò)地址轉(zhuǎn)換時(shí)采用處理控制塊,所述處理控制塊包括6個(gè)子塊,分別為路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址、內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)、私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址、用于組織數(shù)據(jù)結(jié)構(gòu)的信息、全局唯一的端口號(hào)以及超時(shí)信息;所述網(wǎng)絡(luò)地址轉(zhuǎn)換方法包括私網(wǎng)IP地址轉(zhuǎn)換到公網(wǎng)IP地址,以及公網(wǎng)IP地址轉(zhuǎn)換到私網(wǎng)IP地址;其中,所述的私網(wǎng)IP地址轉(zhuǎn)換到公網(wǎng)IP地址具體包括以下步驟步驟11)、路由設(shè)備的內(nèi)部網(wǎng)絡(luò)接口接收私網(wǎng)發(fā)來(lái)的數(shù)據(jù)幀;步驟12)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟13)、根據(jù)數(shù)據(jù)幀的目的IP地址,判斷數(shù)據(jù)幀是否發(fā)往外部的公網(wǎng),若發(fā)往外部的公網(wǎng),則執(zhí)行下一步,否則,執(zhí)行步驟18);步驟14)、將數(shù)據(jù)幀的源地址與路由設(shè)備中所保存的關(guān)于處理控制塊的表進(jìn)行比較,若源地址與某一處理控制塊所記錄的內(nèi)部終端設(shè)備的IP地址相同,則本次數(shù)據(jù)轉(zhuǎn)發(fā)已建立過(guò)連接,執(zhí)行步驟16),否則執(zhí)行下一步;步驟15)、在路由設(shè)備所保存的關(guān)于處理控制塊的表中建立新的處理控制塊;步驟16)、將數(shù)據(jù)幀中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改為全局唯一的端口號(hào),將數(shù)據(jù)幀的源IP地址修改為路由設(shè)備的外部網(wǎng)絡(luò)接口的IP地址,同時(shí)修改校驗(yàn)和;步驟17)、調(diào)用外部網(wǎng)絡(luò)接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程發(fā)送數(shù)據(jù)幀;步驟18)、結(jié)束本次發(fā)送操作;其中,所述的公網(wǎng)IP地址轉(zhuǎn)換到私網(wǎng)IP地址具體包含以下步驟步驟21)、路由設(shè)備的外部網(wǎng)絡(luò)接口接收外部網(wǎng)絡(luò)發(fā)來(lái)的數(shù)據(jù)幀;步驟22)、判斷數(shù)據(jù)幀接收是否正確,若正確,執(zhí)行下一步,否則刪除所接收到的數(shù)據(jù)幀;步驟23)、根據(jù)數(shù)據(jù)幀中的目的端口號(hào),判斷該數(shù)據(jù)幀是否發(fā)往私網(wǎng),若目的端口號(hào)與保存在路由設(shè)備中的處理控制塊中的全局唯一端口號(hào)相同,則該數(shù)據(jù)幀發(fā)往私網(wǎng),執(zhí)行下一步;否則執(zhí)行步驟27);步驟24)、根據(jù)查找到的與目的端口號(hào)相同的全局唯一端口號(hào),找到該全局唯一端口號(hào)所在處理控制塊;步驟25)、利用步驟24)中所查找到的處理控制塊中的內(nèi)部終端設(shè)備的IP地址修改數(shù)據(jù)幀中的目的IP地址,利用處理控制塊中的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)修改數(shù)據(jù)幀中的目的端口號(hào),同時(shí)還更改數(shù)據(jù)幀中的校驗(yàn)和;步驟26)、利用步驟24)中所查找到的處理控制塊中內(nèi)部網(wǎng)絡(luò)接口的IP地址,調(diào)用該接口的驅(qū)動(dòng)程序的發(fā)送處理進(jìn)程轉(zhuǎn)發(fā)該數(shù)據(jù)幀;步驟27)、結(jié)束操作。
5.根據(jù)權(quán)利要求1或4所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法,其特征在于,在所述的步驟15)中,在建立新的處理控制塊時(shí),將發(fā)送數(shù)據(jù)幀的內(nèi)部終端的IP地址作為所述的私網(wǎng)中與內(nèi)部網(wǎng)絡(luò)接口相連的內(nèi)部終端設(shè)備的IP地址;將與發(fā)送數(shù)據(jù)幀的內(nèi)部終端相連的內(nèi)部網(wǎng)絡(luò)接口的IP地址作為所述的路由設(shè)備上某個(gè)內(nèi)部網(wǎng)絡(luò)接口的IP地址;將與發(fā)送數(shù)據(jù)幀的內(nèi)部終端相連的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào)作為所述的內(nèi)部網(wǎng)絡(luò)接口的端口號(hào);分配一個(gè)只屬于所述發(fā)送數(shù)據(jù)幀的內(nèi)部終端的端口號(hào)作為所述的全局唯一的端口號(hào)。
6.根據(jù)權(quán)利要求1或4所述的網(wǎng)絡(luò)地址轉(zhuǎn)換方法,其特征在于,在所述的步驟17)中,在發(fā)送數(shù)據(jù)幀時(shí),在數(shù)據(jù)鏈路層上實(shí)現(xiàn)數(shù)據(jù)幀的轉(zhuǎn)發(fā)。
全文摘要
本發(fā)明公開(kāi)了一種網(wǎng)絡(luò)地址轉(zhuǎn)換方法,實(shí)現(xiàn)公網(wǎng)與私網(wǎng)間網(wǎng)絡(luò)地址的轉(zhuǎn)換,在網(wǎng)絡(luò)地址轉(zhuǎn)換時(shí)采用了處理控制塊,網(wǎng)絡(luò)地址轉(zhuǎn)換方法包括私網(wǎng)IP地址轉(zhuǎn)換到公網(wǎng)IP地址,以及公網(wǎng)IP地址轉(zhuǎn)換到私網(wǎng)IP地址;私網(wǎng)IP地址轉(zhuǎn)換到公網(wǎng)IP地址時(shí),在家庭網(wǎng)關(guān)中建立處理控制塊,并修改所發(fā)送數(shù)據(jù)幀的端口號(hào)和源IP地址后,將數(shù)據(jù)幀發(fā)送到公網(wǎng);公網(wǎng)IP地址轉(zhuǎn)換到私網(wǎng)IP地址時(shí),為所接收到的數(shù)據(jù)幀在家庭網(wǎng)關(guān)中查找對(duì)應(yīng)的處理控制塊,根據(jù)處理控制塊中的信息修改數(shù)據(jù)幀的目的IP地址和目的端口號(hào)。
文檔編號(hào)H04L12/66GK1996945SQ200610144248
公開(kāi)日2007年7月11日 申請(qǐng)日期2006年11月30日 優(yōu)先權(quán)日2006年11月30日
發(fā)明者鄢貴海, 付斌章, 韓銀和, 張飛飛, 劉彤, 雷韶華, 李曉維 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所