亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種Symmetric NAT穿透的新方法

        2017-03-01 04:26:12馮金哲殷海兵
        關(guān)鍵詞:端口號(hào)數(shù)據(jù)包端口

        馮金哲 殷海兵

        (中國(guó)計(jì)量學(xué)院信息工程學(xué)院 浙江 杭州 310018)

        一種Symmetric NAT穿透的新方法

        馮金哲 殷海兵

        (中國(guó)計(jì)量學(xué)院信息工程學(xué)院 浙江 杭州 310018)

        NAT(Network Address Translator)不僅解決了IP地址短缺的問(wèn)題,而且也使內(nèi)網(wǎng)主機(jī)避免了來(lái)自網(wǎng)絡(luò)外部的攻擊。但對(duì)于P2P應(yīng)用來(lái)說(shuō),需要建立端到端的連接,所以說(shuō)如何穿透NAT成為了P2P技術(shù)中的一個(gè)關(guān)鍵。通過(guò)對(duì)當(dāng)前NAT穿透技術(shù)的研究,發(fā)現(xiàn)依靠TURN(Traversal Using Relay NAT)來(lái)實(shí)現(xiàn)對(duì)Symmetric NAT穿透往往存在服務(wù)器負(fù)擔(dān)重、延時(shí)、丟包的問(wèn)題,于是給出一種基于端口預(yù)測(cè)的NAT穿透新方法。該方法避免了依靠TURN來(lái)實(shí)現(xiàn)對(duì)Symmetric NAT穿透所帶來(lái)的難題,大大滿足了對(duì)網(wǎng)絡(luò)安全要求高而使用對(duì)稱(chēng)型NAT企業(yè)的需求。

        Symmetric NAT TURN P2P NAT穿透

        0 引 言

        網(wǎng)絡(luò)地址轉(zhuǎn)換[1]NAT是一個(gè)非常有名的工具,能夠使IP地址在網(wǎng)絡(luò)上重用。NAT可以將內(nèi)網(wǎng)私有地址和端口號(hào)轉(zhuǎn)換成公網(wǎng)地址和端口號(hào),進(jìn)而建立一個(gè)會(huì)話實(shí)現(xiàn)與公網(wǎng)主機(jī)進(jìn)行通信。但是NAT只允許單方面發(fā)起連接,即內(nèi)網(wǎng)可以作為客戶端訪問(wèn)外網(wǎng),而不能作為服務(wù)器提供服務(wù)。很明顯,這與P2P的資源共享的思想所不容[2]。于是解決NAT穿透問(wèn)題將是實(shí)現(xiàn)P2P對(duì)等服務(wù)的前提。

        目前,存在多種NAT穿透的方法。一種常用的穿透方法STUN(Simple Traversal of UDP over NAT)[3]是NAT的UDP簡(jiǎn)單穿透,基于C/S架構(gòu),但不能實(shí)現(xiàn)Symmetric NAT的穿透;而對(duì)于Symmetric NAT穿越一般采取TURN中繼方式。雖然中繼服務(wù)器能夠?qū)崿F(xiàn)對(duì)Symmetric NAT的穿透,但同時(shí)也容易導(dǎo)致TURN服務(wù)器負(fù)擔(dān)過(guò)重,引起延時(shí)、丟包現(xiàn)象的發(fā)生。

        本文采取的NAT穿透新方法,能夠成功實(shí)現(xiàn)對(duì)Symmetric NAT的穿透。對(duì)稱(chēng)型NAT被廣泛應(yīng)用于對(duì)安全性要求較高的交流通信中,但目前依靠中繼轉(zhuǎn)發(fā)的方案存在一定的缺陷。本文采取基于端口預(yù)測(cè)方法實(shí)現(xiàn)對(duì)Symmetric NAT的穿透,克服了依靠中繼服務(wù)器穿越的缺陷,特別適合對(duì)網(wǎng)絡(luò)安全要求高而使用對(duì)稱(chēng)型NAT的企業(yè)公司。

        1 NAT分類(lèi)

        STUN標(biāo)準(zhǔn)中,根據(jù)NAT對(duì)IP地址和端口的映射方式[4],如圖1所示,把NAT分為四類(lèi):完全錐型NAT(Full Cone NAT)、限制錐型NAT(Restricted Cone NAT)、端口限制錐型NAT(Port Restricted Cone NAT)和對(duì)稱(chēng)型NAT(Symmetric NAT)。

        圖1 NAT地址映射關(guān)系

        (1) 完全錐型NAT:特點(diǎn)是內(nèi)部主機(jī)P訪問(wèn)外網(wǎng)主機(jī)時(shí),NAT給其分配一個(gè)端口號(hào),外網(wǎng)的任何主機(jī)都可以憑借這一端口號(hào)給內(nèi)網(wǎng)主機(jī)發(fā)送UDP數(shù)據(jù)包。映射關(guān)系為P:p→A:b,任何外部主機(jī)都可以通過(guò)(A:b)發(fā)送數(shù)據(jù)到上(P:p)。

        (2) 限制錐型NAT:特點(diǎn)是當(dāng)內(nèi)部主機(jī)P訪問(wèn)外網(wǎng)主機(jī)X時(shí),NAT給其分配一個(gè)端口,主機(jī)X可以用任何端口與P通信,但外網(wǎng)主機(jī)不能與P通信。映射關(guān)系為P:p→A:b→X,只有來(lái)自X的數(shù)據(jù)包才能通過(guò)(A:b)發(fā)送到上(P:p)。

        (3) 端口限制錐型NAT:特點(diǎn)是當(dāng)內(nèi)部主機(jī)P訪問(wèn)外網(wǎng)主機(jī)X時(shí),NAT給其分配一個(gè)端口,主機(jī)X只能用本端口與P通信,X用其他端口或其他主機(jī)不能與P通信。映射關(guān)系為P:p→A:b→X:x,只有來(lái)自X:x的數(shù)據(jù)才能通過(guò)(A:b)發(fā)送到(P:p)上。

        (4) 對(duì)稱(chēng)型NAT:特點(diǎn)是只有同一內(nèi)部主機(jī)地址(P:p),并且發(fā)送到同一地址(X:x)的請(qǐng)求消息,NAT才會(huì)映射為相同的外部地址(A:b),返回的數(shù)據(jù)也只接受該內(nèi)部主機(jī)X:x這一目的地址。映射關(guān)系為P:p→A:b→X:x;當(dāng)訪問(wèn)(Y:y)時(shí),映射則變?yōu)镻:p→B:c→Y:y。

        2 NAT穿透方案

        NAT穿透一般分為兩種情況:(1) 終端A與B通信,A位于NAT后面,而B(niǎo)位于公網(wǎng)上。這種情況兩者通信比較簡(jiǎn)單,只要讓位于NAT后面的A終端先建立聯(lián)系,NAT就不起作用了,A可以從服務(wù)器上取得B的地址,主動(dòng)發(fā)起連接,B回應(yīng)的數(shù)據(jù)包就可以容易地穿透NAT。(2) 如果A與B均位于NAT之后,這時(shí)候A與B的通信是否成功就與兩個(gè)NAT的類(lèi)型有關(guān)了。主要的實(shí)現(xiàn)方法是終端A與B先通過(guò)與服務(wù)器的聯(lián)系,獲得各自在NAT外部的地址,即IP地址和端口號(hào);然后A與B再分別向?qū)Ψ降耐獠康刂钒l(fā)送數(shù)據(jù)邀請(qǐng)包,獲取自己與對(duì)方通信的外部地址,這就是所謂的“打洞”[5-7]。打洞完成后,雙方就可以建立聯(lián)系進(jìn)行端到端的通信了。但是,當(dāng)一方NAT的類(lèi)型為對(duì)稱(chēng)型,而另一個(gè)是端口限制型NAT或?qū)ΨQ(chēng)型NAT時(shí),將無(wú)法獲取外部地址,進(jìn)而邀請(qǐng)包也無(wú)法成功到達(dá),也就無(wú)法穿透NAT實(shí)現(xiàn)兩者的通信。

        2.1 STUN 方法

        STUN是一種Client/Server的協(xié)議,也是一種Request/Response的協(xié)議。STUN穿透NAT實(shí)現(xiàn)A與B的通信方法,如圖2所示。

        圖2 STUN穿透NAT

        (1) 客戶端A與服務(wù)器建立聯(lián)系,NAT A為其分配端口11000,服務(wù)器得到A的地址100.10.10.10:11000。

        (2) 客戶端B也與服務(wù)器建立聯(lián)系,NAT B為其分配端口22000,服務(wù)器得到B的地址200.20.20.20:22000。這時(shí)A如果直接向B發(fā)送數(shù)據(jù)包會(huì)被NAT B丟棄,所以通過(guò)在NAT B上打一個(gè)方向?yàn)锳的洞,那么A就可以向B發(fā)送數(shù)據(jù)了。

        (3)服務(wù)器發(fā)起打洞的指令,客戶端B向A的地址100.10.10.10:11000發(fā)送一個(gè)UDP的數(shù)據(jù)包,這個(gè)數(shù)據(jù)包被NAT A丟棄,但在NAT B上建立起了映射記錄,這樣NAT B就不會(huì)再丟棄來(lái)自A的數(shù)據(jù)報(bào)文了。

        (4) 服務(wù)器通知客戶端A可以通信了,A向客戶端B發(fā)送UDP數(shù)據(jù)包,NAT B 允許數(shù)據(jù)包通過(guò),于是A與B就實(shí)現(xiàn)端到端的通信了。

        2.2 TURN 方法

        STUN的局限性在于不支持對(duì)稱(chēng)型NAT穿透,而一些在安全性要求較高的企業(yè)網(wǎng)絡(luò)中,配置的NAT多是對(duì)稱(chēng)型NAT。所以STUN的擴(kuò)展TURN[8]就出現(xiàn)了,TURN解決NAT的問(wèn)題與STUN相似,只不過(guò)STUN穿透方法得到的地址是出口NAT上的外部地址,而TURN方法得到的地址為T(mén)URN服務(wù)器上的公網(wǎng)地址。但負(fù)載比較大時(shí),利用TURN方式會(huì)引起服務(wù)器負(fù)擔(dān)過(guò)重,出現(xiàn)丟包和延時(shí)的現(xiàn)象。

        2.3 NAT穿透新方法

        針對(duì)STUN存在不能實(shí)現(xiàn)對(duì)Symmetric NAT穿透的局限性,以及TURN方式存在數(shù)據(jù)包延遲和丟包的缺陷。本文給出了一個(gè)新的方法,此方法成功實(shí)現(xiàn)了對(duì)Symmetric NAT的穿透。此方法的實(shí)現(xiàn)思路如圖3所示。具體分為三個(gè)階段。

        圖3 NAT穿透新方法

        2.3.1 第一階段

        終端A訪問(wèn)服務(wù)器C和D確定NAT類(lèi)型。

        (1) 終端A首先和服務(wù)器C建立聯(lián)系,服務(wù)器C分析NAT A映射的端口號(hào)。

        (2) 服務(wù)器C向終端A傳遞(1)得到的端口號(hào)。

        (3) 緊接著,終端A向服務(wù)器D發(fā)送一個(gè)數(shù)據(jù)包。這個(gè)數(shù)據(jù)包中包含了(1)中分析得到的端口號(hào)信息。同樣的方式,服務(wù)器D也分析了NAT A映射的端口號(hào)并記錄下來(lái)。服務(wù)器D根據(jù)比較這兩個(gè)端口號(hào)的異同,可得出NAT A的類(lèi)型。若兩個(gè)端口相同,則NAT A屬于錐型NAT;否則,屬于對(duì)稱(chēng)型NAT。

        2.3.2 第二階段

        這個(gè)階段里,終端B采用第一階段一樣的方式,分別訪問(wèn)服務(wù)器C和D。

        (1) 終端B首先訪問(wèn)服務(wù)器C,然后,服務(wù)器C分析得到NAT B的映射端口號(hào)。

        (2) 服務(wù)器C把(1)中得到的端口號(hào)回應(yīng)給終端B。

        (3) 終端B向服務(wù)器D發(fā)送數(shù)據(jù)包。數(shù)據(jù)包中包含了(1)中分析得到的端口號(hào)信息。服務(wù)器D同樣分析了NAT B映射的端口號(hào)并記錄下來(lái)。服務(wù)器D根據(jù)比較兩個(gè)端口的異同,得出NAT B的類(lèi)型,若兩個(gè)端口一致,則NAT B屬于錐型NAT;否則為對(duì)稱(chēng)型NAT。

        2.3.3 第三階段

        這一階段里,對(duì)端口進(jìn)行預(yù)測(cè)。假設(shè)在第一、二階段檢測(cè)得到的NAT A和NAT B都屬于對(duì)稱(chēng)型。很顯然,通過(guò)對(duì)兩次端口的觀察,可以確定端口號(hào)有三種變化趨勢(shì):遞增、遞減或隨機(jī)分配。同時(shí),也可以對(duì)NAT如何分配端口號(hào)有了一個(gè)很準(zhǔn)確的預(yù)測(cè)范圍。對(duì)于端口號(hào)變化呈遞增或遞減的情況,對(duì)很多NAT而言,一般差值在1或者2[9]。而對(duì)于端口隨機(jī)分配的情況,總的端口數(shù)為N=65 535-1024,根據(jù)統(tǒng)計(jì)學(xué)的推算,當(dāng)隨機(jī)猜測(cè)439次,就會(huì)保證至少有一次預(yù)測(cè)成功率達(dá)95%[10]。如果嘗試猜測(cè)的次數(shù)足夠多,可以說(shuō),基本能成功實(shí)現(xiàn)終端A與B的連接。具體實(shí)現(xiàn)如下:

        (1) 根據(jù)第一、二階段分析得到的信息,也即NAT A與服務(wù)器C與D的交流信息,可以預(yù)測(cè)一個(gè)合適的打洞端口。服務(wù)器D把包含預(yù)測(cè)端口號(hào)信息發(fā)送給終端B。

        (2) 根據(jù)(1)中的信息,終端B嘗試發(fā)送數(shù)據(jù)包。對(duì)于這樣的數(shù)據(jù)包肯定會(huì)被NAT A丟棄,但NAT B卻記錄了此次連接的信息。

        (3) 基于第一、二階段的兩類(lèi)信息,也即NAT B與服務(wù)器C與D的交流信息,也可以預(yù)測(cè)一個(gè)合適的打洞端口。服務(wù)器D同樣也會(huì)發(fā)送包含預(yù)測(cè)端口號(hào)信息到終端A。

        (4) 根據(jù)(3)中包含的信息,終端A向終端B發(fā)送數(shù)據(jù)包。由于第(2)步中終端B嘗試連接過(guò)終端A,所以這些數(shù)據(jù)包會(huì)被NAT B識(shí)別并允許通過(guò)。從而終端A與B之間便建立起了連接。

        3 實(shí)驗(yàn)驗(yàn)證

        考慮到實(shí)際測(cè)試環(huán)境很復(fù)雜,這里分別在兩臺(tái)電腦上利用Linux虛擬機(jī)來(lái)搭建NAT測(cè)試環(huán)境。網(wǎng)絡(luò)測(cè)試環(huán)境的設(shè)計(jì)如圖4所示,采用C編程,選擇用Linux下的libnet庫(kù)開(kāi)發(fā)終端程序,進(jìn)行數(shù)據(jù)包的發(fā)送;服務(wù)器端利用libpcap庫(kù)實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲與過(guò)濾,同時(shí)監(jiān)聽(tīng)兩終端的連接。

        首先,進(jìn)行端口的預(yù)測(cè)驗(yàn)證。終端A先與服務(wù)器C建立連接,再用同一端口向另一服務(wù)器D發(fā)起一次連接,終端A基于第一次連接進(jìn)行的端口預(yù)測(cè)與第二次連接實(shí)際的映射作比較,如果匹配,則端口預(yù)測(cè)驗(yàn)證成功。端口預(yù)測(cè)成功后,終端A就發(fā)送數(shù)據(jù)包,同時(shí)在終端B檢測(cè)數(shù)據(jù)包的接收情況。實(shí)驗(yàn)結(jié)果證明了終端A與B成功實(shí)現(xiàn)了文本傳輸。

        圖4 實(shí)驗(yàn)測(cè)試網(wǎng)絡(luò)結(jié)構(gòu)

        4 結(jié) 語(yǔ)

        本文采用的基于端口預(yù)測(cè)穿透技術(shù)成功地實(shí)現(xiàn)了對(duì)Symmetric NAT的穿透,解決了目前利用中間服務(wù)器轉(zhuǎn)發(fā)實(shí)現(xiàn)穿透Symmetric NAT所帶來(lái)的難題。雖然,目前大部分企業(yè)用戶一般選擇錐型NAT設(shè)備,但對(duì)于對(duì)安全性要求較高的企業(yè)用戶,對(duì)稱(chēng)型NAT設(shè)備的使用是不可避免的。通過(guò)本文介紹的方法可以實(shí)現(xiàn)對(duì)Symmetric NAT的成功穿越,所以,此方法具有很高應(yīng)用與推廣的價(jià)值。

        [1] 林海斌.基于STUNT協(xié)議的TCP NAT穿越設(shè)計(jì)與實(shí)現(xiàn)[D].華南理工大學(xué),2010.

        [2] 曹申會(huì).NAT穿越技術(shù)研究與實(shí)現(xiàn)[D].南京郵電大學(xué),2013.

        [3] Rosenberg J, Weinberger J, Huitema C,et al.STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)[S].RFC 3489.March 2003.

        [4] 謝統(tǒng)義,黃保華.對(duì)等系統(tǒng)NAT穿越技術(shù)研究[J].廣西教育學(xué)院學(xué)報(bào),2014(3):145-147.

        [5] 杜經(jīng)緯,王春紅.在P2P網(wǎng)絡(luò)環(huán)境下基于UDP協(xié)議穿越NAT的研究[J].吉林師范大學(xué)學(xué)報(bào):自然科學(xué)版,2012(1):93-94.

        [6] 蒙元?jiǎng)?基于UDP/TCP協(xié)議的NAT穿越方案研究[D].中山大學(xué),2014.

        [7] 孔衛(wèi)喜,席少龍.P2P中NAT穿越問(wèn)題的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(2):243-245.

        [8] Rosenberg J,Mahy R,Huitema C.Traversal using relay NAT(TURN).Internet-Draft.2005.

        [9] Midcom W G,Takeda Y.Symmetric NAT Traversal using STUN[J].IETF,RFC3225,2003,35(9):254-289.

        [10] 王培東,連樹(shù)國(guó).基于端口預(yù)測(cè)的P2PNAT穿越方法的改進(jìn)[J].通信技術(shù),2009,42(3):140-142.

        A NEW METHOD FOR SYMMETRIC NAT TRAVERSAL

        Feng Jinzhe Yin Haibing

        (CollegeofInformationEngineering,ChinaJiliangUniversity,Hangzhou310018,Zhejiang,China)

        NAT(Network Address Translator) not only solves the problem of IP address shortage,but also makes the network host avoid the attacks from outside the networks.But for P2P application,it needs to establish an end-to-end connection,so how to realise NAT traversal becomes a key in P2P technology.Based on the research of current NAT traversal technology,we found that to achieve Symmetrical NAT traversal relying on TURN(Traversal Using Relay NAT) often has the problems of heavy server burden,time delay and packet loss.Therefore,in this paper we present a new NAT traversal method by using port prediction,the method avoids the problems brought by relying TURN to implement traversal of symmetrical NAT,and greatly satisfies the requirements of those enterprises who have high demand on network security and thus use symmetric NAT.

        Symmetrical NAT TURN P2P NAT traversal

        2015-10-09。浙江省自然科學(xué)基金項(xiàng)目(LY15F020022)。馮金哲,碩士生,主研領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)通信。殷海兵,教授。

        TP393

        A

        10.3969/j.issn.1000-386x.2017.01.022

        猜你喜歡
        端口號(hào)數(shù)據(jù)包端口
        一種端口故障的解決方案
        在Docker容器中安裝應(yīng)用程序
        SmartSniff
        端口阻塞與優(yōu)先級(jí)
        淺談以java為基礎(chǔ)的Socket通信簡(jiǎn)介及實(shí)現(xiàn)
        青春歲月(2017年5期)2017-04-20 18:34:23
        初識(shí)電腦端口
        電腦迷(2015年6期)2015-05-30 08:52:42
        生成樹(shù)協(xié)議實(shí)例探討
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
        Winsock編程在《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》教學(xué)中的應(yīng)用
        基于Android系統(tǒng)的互動(dòng)展示APP的研究與設(shè)計(jì)
        欧美日本视频一区| 少妇高潮惨叫久久久久久电影| 亚洲精品乱码久久久久久蜜桃图片| 国产免费资源| 91亚洲最新国语中文字幕| 中文字幕精品亚洲字幕| 亚洲熟妇久久精品| 香蕉人妻av久久久久天天| 亚洲AV秘 无套一区二区三区| 日本中文字幕有码在线播放| 国产亚洲成av人片在线观看| 久久久www成人免费无遮挡大片 | 爆乳无码AV国内| 亚洲国产一区一区毛片a| 午夜不卡无码中文字幕影院| 日本三级欧美三级人妇视频| 国产一线视频在线观看高清| av网站不卡的av在线| 免费av一区二区三区无码| 久久这里只精品国产免费10| 国产精品电影久久久久电影网| 无色码中文字幕一本久道久| 亚洲日韩欧美一区、二区| 99久久综合狠狠综合久久| 日本国产在线一区二区| 日韩高清不卡一区二区三区| 爱性久久久久久久久| 日韩我不卡| 美女福利视频网址导航| 午夜天堂av天堂久久久| 国产在线观看www污污污| 红杏性无码免费专区| 亚洲天堂av在线免费观看| 啦啦啦中文在线观看日本| 国产视频导航| 精品一区二区三区女同免费| 国产亚洲aⅴ在线电影| 波多野结衣av手机在线观看| 人妻无码人妻有码不卡| 91精品国产综合久久精品密臀| 国产伦人人人人人人性|