《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 對等網(wǎng)聯(lián)下NAT穿越問題的研究
對等網(wǎng)聯(lián)下NAT穿越問題的研究
來源:電子技術(shù)應(yīng)用2013年第5期
孫衛(wèi)喜, 席少龍
渭南師范學院 數(shù)學與信息科學學院,計算機網(wǎng)絡(luò)工程技術(shù)中心,陜西 渭南 714000
摘要: 采用“打洞”穿越錐型NAT與使用端口預測穿越對稱型NAT相結(jié)合的方法,成功穿越了各種NAT,解決了對等聯(lián)網(wǎng)下NAT的穿越問題。該方案既無需改變現(xiàn)有網(wǎng)絡(luò)設(shè)備,又能確保內(nèi)網(wǎng)的安全性,同時還解決了目前穿越方式存在的只能穿越部分類型的NAT、丟包、延時的問題。
中圖分類號: TP393
文獻標識碼: A
文章編號: 0258-7998(2013)05-0132-03
The NAT traversal research in the peer-to-peer network linking
Sun Weixi, Xi Shaolong
Center of Computer Network Engineering Technology, College of Mathematics and Information Science, Weinan Normal University, Weinan 714000, China
Abstract: By combining the ‘holes’ crossing through the cone NAT with the combination of symmetric NAT, we successfully went across all the NAT and solved the Peer-to-Peer networking of the NAT traversal problem. The scheme can go without changing the existing network equipment and ensure the security of the internal network, and it also overcomes the shortage of tradition scheme can only go across some certain types of NAT that currently exist across the way, packet lost, delaying and other shortcomings.
Key words : P2P; NAT ; classification; type detection; traversal

    在迅猛發(fā)展的互聯(lián)網(wǎng)中,網(wǎng)絡(luò)地址轉(zhuǎn)換NAT(Network Address Translator)技術(shù)有效緩解了網(wǎng)絡(luò)之間互連協(xié)議IP(Internet Protocol)地址短缺的問題,同時也對內(nèi)網(wǎng)安全起到了很好的保護作用。對等網(wǎng)絡(luò)P2P(Peer to Peer)流媒體技術(shù)被廣泛用于電子商務(wù)、網(wǎng)絡(luò)電視、遠程教育、在線直播、實時視頻會議、網(wǎng)絡(luò)視頻廣告、視頻點播、遠程醫(yī)療等。NAT用于實現(xiàn)內(nèi)外網(wǎng)客戶端間的訪問,但多數(shù)情況下內(nèi)外網(wǎng)客戶端無法實現(xiàn)直接訪問[1],因此實現(xiàn)內(nèi)外網(wǎng)客戶端間的對等互訪必須解決信息包穿越NAT的問題。

1 NAT
    NAT是一個互聯(lián)網(wǎng)工程任務(wù)組IETF(Internet Engineering Task Force)標準,它將只能在私網(wǎng)中使用的內(nèi)網(wǎng)IP地址通過與少量的公網(wǎng)IP地址建立映射關(guān)系,實現(xiàn)內(nèi)網(wǎng)客戶端對互聯(lián)網(wǎng)的訪問。當內(nèi)網(wǎng)客戶端需要訪問Internet時,NAT將信息流中的內(nèi)網(wǎng)IP地址修改為可以在Internet上路由的公網(wǎng)IP地址,從而實現(xiàn)內(nèi)網(wǎng)客戶端與外網(wǎng)客戶端之間的通信,同時建立內(nèi)網(wǎng)地址與外網(wǎng)地址間的映射關(guān)系表。同樣,當外網(wǎng)客戶端需要與內(nèi)網(wǎng)客戶端通信時,NAT對照建立的映射表,把經(jīng)過信息流中的IP地址修改為與其對應(yīng)的內(nèi)網(wǎng)IP地址發(fā)往內(nèi)網(wǎng)客戶端[2]。NAT緩解了公網(wǎng)IP地址的短缺,使私網(wǎng)地址得以復用,同時加強了內(nèi)網(wǎng)安全性。
2 NAT的分類及特點
     UDP(User Datagram Protocol)是用戶數(shù)據(jù)包協(xié)議,IETF制定了UDP數(shù)據(jù)包穿越NAT 的簡單協(xié)議STUN(Simple Traversal of UDP over NATs),它將NAT分為4類,即:完全錐型NAT,地址受限錐型NAT,端口受限錐型NAT和對稱型NAT。
    (1)完全錐型NAT:當內(nèi)網(wǎng)的客戶端A連接外網(wǎng)客戶端時,NAT會為其分配一個端口,此后外網(wǎng)所有發(fā)到這個端口的UDP數(shù)據(jù)包都可以到達內(nèi)網(wǎng)客戶端A。
 (2) 地址受限錐型NAT:當內(nèi)網(wǎng)的客戶端A連接外網(wǎng)的客戶端B時, NAT會為其分配一個端口,此后B可以用任何端口與A通信,但其他的外網(wǎng)客戶端則不能與A通信。
 (3) 端口受限錐型 NAT:當內(nèi)網(wǎng)的客戶端A連接外網(wǎng)的客戶端B時, NAT會為其分配一個端口,此后B只能用此端口與A通信。B用其他端口或其他客戶端均不能與A通信。
 (4) 對稱型NAT:與前三種錐型NAT不同,對稱型NAT內(nèi)網(wǎng)客戶端在連接外部客戶端時隨連接的目標不同分配的端口也將發(fā)生改變,或者說當內(nèi)外網(wǎng)客戶端連接時,內(nèi)網(wǎng)客戶端分配到的IP地址和端口、外網(wǎng)客戶端分配到的目標IP地址和端口,其中任一項發(fā)生改變,都會引起連接路徑將隨之改變。
3 NAT類型的檢測
 不同類型的NAT在端口分配和映射記錄等細節(jié)上差異很大,其穿越方法也有所不同,因而穿越NAT前需要對NAT的設(shè)備類型進行檢測[3-4], NAT類型檢測流程如圖1所示。

    檢測方法步驟為:
    (1)客戶端向服務(wù)器的IP1: Prot1發(fā)送源地址的請求包,其中有包的源地址IP3: Port3。若客戶端的地址為IP0:Prot0,比較IP0:Prot0與IP3: Port3是否相同,若相同,則客戶端前沒有NAT;否則轉(zhuǎn)步驟(2)。
    (2)客戶端向具有兩個公網(wǎng)IP地址(IP1、IP2)和兩個端口(Prot1、Prot2)的服務(wù)器依次發(fā)起4次連接,即IP1: Prot1、P1: Prot2、IP2: Prot1、IP2: Prot2,每次連接都能從服務(wù)器返回的數(shù)據(jù)包中找到客戶端經(jīng)過NAT轉(zhuǎn)換后的映射關(guān)系。比對客戶端相鄰兩次連接請求所分配的端口號,并計算端口的增量,如果無增量,則NAT為錐型NAT,轉(zhuǎn)步驟(3);有增量則為對稱性NAT,轉(zhuǎn)步驟(5)。
    (3)客戶端再向服務(wù)器端IP1: Prot1發(fā)送報文,要求使用IP2: Prot1回復。如果收到回復,則說明該NAT類型是完全錐型NAT;如果請求若干次都收不到響應(yīng)消息,則不是完全錐型NAT,轉(zhuǎn)步驟(4)。
 (4)客戶端再向IP1: Prot1發(fā)送消息,要求用IP1: Prot2回復,如果收到回復,則說明該NAT 是地址受限錐型NAT,如果發(fā)送若干次請求消息都沒有收到響應(yīng)消息, 則說明該NAT 是端口受限錐型 NAT。
    (5)如果每次的增量均相同,則為增量型NAT;如果增量不同,則為隨機型NAT。
4 NAT的穿越方案
    按照映射關(guān)系中端口的變化將NAT分為錐型NAT和對稱型NAT,其中錐型NAT包括完全錐型、地址受限錐型、端口受限錐型3種。錐型NAT的映射與目的地址無關(guān),即源地址相同映射就相同;而對稱型NAT的映射則同時關(guān)聯(lián)源地址和目的地址,穿越過程相對復雜[5]。
4.1 錐型NAT的穿越
 錐型NAT使用已經(jīng)成熟的UDP“打洞”技術(shù)[6-7],即利用STUN服務(wù)器得到客戶端的映射地址,當雙方需要通信時,可以通過服務(wù)器的配合獲取對方的地址和端口,建立P2P直連。客戶端A與客戶端B的連接如圖2所示。
    客戶端A與客戶端B通信穿越的步驟為:
    (1)通信時NAT A將客戶端A的內(nèi)網(wǎng)地址和端口轉(zhuǎn)換為NAT A的外網(wǎng)地址和端口,并建立映射關(guān)系。同樣NAT B也將客戶端B的內(nèi)網(wǎng)地址和端口轉(zhuǎn)換為NAT B的外網(wǎng)地址和端口,建立映射關(guān)系。
    (2)客戶端A通過服務(wù)器S向客戶端B發(fā)出連接請求。服務(wù)器S向客戶端A、B發(fā)送對方的NAT映射地址,即外部地址。
    (3)客戶端B收到客戶端A的外部地址后,將A的外部地址作為目的地址發(fā)送UDP數(shù)據(jù)包“打洞”,該數(shù)據(jù)包使B端網(wǎng)絡(luò)的NAT設(shè)備允許后續(xù)的、以A端地址為源地址的UDP數(shù)據(jù)包進入其內(nèi)部網(wǎng)絡(luò)。形象地稱B向A打了一個“洞”。
    (4)客戶端A收到客戶端B的外部地址后,以B的外部地址為目的地址發(fā)送探測UDP數(shù)據(jù)包,同樣該數(shù)據(jù)包也在A端網(wǎng)絡(luò)的NAT設(shè)備上建立對應(yīng)映射。
    (5)客戶端B收到客戶端A的探測數(shù)據(jù)包后,向A發(fā)送確認數(shù)據(jù)包,A、B就此建立UDP連接。
4.2 對稱型NAT的穿越
    STUN 協(xié)議不能穿越對稱型NAT,原因是對稱型NAT的映射關(guān)系是由源地址、源端口、目的地址、目的端口共同決定的,如果其中一方發(fā)生變化,則映射關(guān)系也將改變。如對稱型NAT內(nèi)網(wǎng)的客戶端與外網(wǎng)不同的客戶端發(fā)生連接時,其分配的端口號會不同,相應(yīng)地映射關(guān)系也就不一樣。因此,發(fā)生連接時NAT會為不同的目標節(jié)點分配新的端口號,這與其先前在服務(wù)器上建立映射關(guān)系時使用的端口號不同,發(fā)送方無法得知向接收方發(fā)送數(shù)據(jù)包時NAT所分配的新端口號,因此也就不能完成連接。正是由于對稱型NAT相對于錐型NAT映射關(guān)系要復雜得多,因而其安全性更高[8-10],更適合對安全性要求高的企業(yè)使用。
    本文是在對目前使用的各種NAT穿越方法認真比對后,通過對NAT及其穿越原理的細致分析研究,給出了使用預測端口的方法穿越對稱型NAT。該方法將對稱型NAT分為增量型NAT和隨機型NAT兩類。
    對稱型NAT對每次的連接要求為“源IP、源端口、 目標IP、目標端口”的順序在NAT映射表中找匹配項,若沒有找到完全匹配項,則按新連接對待并為其分配新端口號。對于增量型NAT,新端口號的分配原則是在前次分配的端口值上增加一個固定值進行分配,如前次分配的端口號為P,則新端口號就為P1=P+n(n為整數(shù))。對于隨機型NAT,新端口號的分配原則是在前次分配的端口值上增加一個在一定端口(1024,65535)范圍內(nèi)的隨機量進行分配,如前次分配的端口號為P,則新端口號就為P1=P+n(n為某一范圍內(nèi)隨機整數(shù))。客戶端獲取新的端口后連接過程類似于STUN 協(xié)議,如NAT A、NAT B都為對稱型NAT, 客戶端A與客戶端B通信的具體穿越步驟如下(可參見圖2):

    (1)客戶端A(或B)向具有兩個IP地址IP1、IP2,兩個端口Prot1、Prot2的服務(wù)器S依次發(fā)起4次連接,即IP1: Prot1、IP1: Prot2、IP2: Prot1、 IP2: Prot2,每次連接都能從服務(wù)器S返回的數(shù)據(jù)包中找到客戶端A(或B)經(jīng)過NAT轉(zhuǎn)換后的映射關(guān)系。比對客戶端A(或B)相鄰兩次連接請求所分配的端口號,計算端口的增量,如果每次的增量都相同,則獲得固定增量,轉(zhuǎn)步驟(2),如果增量不同,則為隨機增量,轉(zhuǎn)步驟(6)。
    (2)客戶端A將從NAT A上獲得的增量發(fā)送給服務(wù)器S并通知S與B的連接請求,服務(wù)器S通知客戶端A、B的連接請求,并發(fā)送客戶端A的預測地址給客戶端B。
    (3)客戶端B通過端口映射,把從NAT B上得到的預測增量由服務(wù)器S發(fā)送給A,客戶端A向B的預測地址發(fā)送連接請求,報文穿越NAT A建立來自B的映射規(guī)則。
    (4)由于客戶端B向客戶端A的預測端口發(fā)送信息包前在NAT A上已經(jīng)建立了映射,因而客戶端B的連接請求能直接通過。
    (5)客戶端A獲得連接請求后發(fā)送確認包,建立了客戶端A與B間的直接通信,也就不再需要服務(wù)器S。
    (6)NAT A對新連接端口分配是隨機變化的, 兩次之間的變化量為△t(△t為整數(shù)),雖然△t值都是由NAT設(shè)備通過某種方式隨機選擇的,但通常每次分配的端口號之間都會具有一定的函數(shù)關(guān)系或是統(tǒng)計上的相關(guān)性,這主要取決于具體的設(shè)備和網(wǎng)絡(luò)環(huán)境。如客戶端A發(fā)生新的連接時, NAT A為其分配新的端口號P1,假定NAT A為客戶端A上次連接分配的端口號為P,則必然存在P1=P+△t,△t= f(P)。通過在多種網(wǎng)絡(luò)條件下的測試和分析, 也證實了多數(shù)情況下存在具有某種特征的分布特性值△t。因此,可以通過其分布特性來預測△t所屬范圍,并對該范圍端口進行試探,以實施穿越。
4.3 NAT穿越中“打洞”方的確定

 


    若內(nèi)網(wǎng)客戶端A對應(yīng)的NAT與客戶端B對應(yīng)的NAT類型不同時,選擇由客戶端A“打洞”或選擇由客戶端B“打洞”其穿越算法、復雜度、難度等也都不同。通過對不同類型NAT穿越中選取不同方“打洞”的實驗分析,給出確定“打洞”方的方法,以降低算法的復雜度,提高穿越質(zhì)量[11]。
    若NAT類型一方是錐型,另一方是對稱型時,由錐型一方“打洞”;若一方為完全錐型,另一方為地址受限錐型或端口受限錐型,則由完全錐型一方“打洞”;若一方為地址受限錐型,另一方為端口受限錐型,則由地址受限錐型一方“打洞”;若雙方都是對稱型NAT,且一方為增量型,另一方為隨機型,則由增量型一方“打洞”。
    對稱型NAT越來越多地被應(yīng)用于安全性要求較高的企業(yè)網(wǎng)中。本文提出的端口預測法是穿越對稱型NAT很有效的方法,該方法克服了STUN無法穿越對稱型NAT的缺陷,且保持了STUN方式無須改動現(xiàn)有的NAT設(shè)備、協(xié)議簡單等特征,同時還解決了目前穿越對稱型NAT方案中存在延遲和丟包的問題。提高了信息的安全性,節(jié)省了財力、物力、人力,具有很好的應(yīng)用前景。
參考文獻
[1] 陳明東. OpenH323網(wǎng)絡(luò)視頻會議中微量化穿越技術(shù)研究[J].計算機與現(xiàn)代化,2012,(2):120-123.
[2] 朱光,張云華,盧娟.基于ICE 的VOIP穿越NAT方案研究[J].計算機應(yīng)用與軟件,2011,28(10):222-224.
[3] 彭李超,譚兵.基于STUNT的Symmetric NAT穿越[J].微計算機應(yīng)用,2010,31(10):32-35.
[4] 黃桂敏,朱曉姝.基于UDP協(xié)議穿透NAT設(shè)備的對等網(wǎng)絡(luò)模型研究[J].計算機工程與設(shè)計,2010,31(2):317-320.
[5] ROSENBERG J, WEINBERGER J, HUITEMA C. et al.STUN-simple traversal of UDP(User Datagram Protocol) through NATs(Network Address Translators)[C]. RFC 3489.March 2003.
[6] WG M,TAKEDA Y. Symmetric NAT traversal using STUN[S].IETF, 2003.
[7] 李航,馬林華.音視頻穿越IP NAT技術(shù)的實現(xiàn)[J].通信技術(shù),2008,41(13):65-68.
[8] 暢巨崢,汪瀅,王慶輝.利用ICE實現(xiàn)VOIP媒體流穿越[J].計算機應(yīng)用技術(shù),2010(6):105-108.
[9] 劉娟娟,陶加祥.一種基于第三方服務(wù)器的P2P穿透NAT的實現(xiàn)方法[J].軟件導刊,2010,9(1):121-123.
[10] 王秀欣,戚宇林,王鼎.基于NATT 協(xié)議的NAT 穿越技術(shù)的設(shè)計與實現(xiàn)[J].電力系統(tǒng)通信, 2009(4):65-68.
[11] 孫名松,段志鳴.混合式P2P網(wǎng)絡(luò)UDP下NAT穿越方案的研究與設(shè)計[J].計算機與數(shù)字工程, 2010(4):104-107.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国内久久精品视频| 午夜精品三级视频福利| 国产日本欧美一区二区三区在线| 欧美区高清在线| 欧美成人乱码一区二区三区| 久久嫩草精品久久久精品一| 久久精品电影| 久久久久高清| 久久免费视频一区| 久久久久久一区| 久久久亚洲综合| 久久香蕉国产线看观看av| 久久久久久久网| 久久青草福利网站| 另类国产ts人妖高潮视频| 噜噜噜91成人网| 欧美电影免费观看高清完整版| 欧美99在线视频观看| 欧美多人爱爱视频网站| 欧美精品在线免费| 国产精品成人一区二区网站软件| 欧美午夜视频在线| 国产精品综合av一区二区国产馆| 国产美女一区| 一区在线视频| 亚洲国产日本| 日韩亚洲视频在线| 亚洲主播在线观看| 欧美一区在线看| 亚洲国产一二三| 夜夜夜精品看看| 亚洲中字在线| 久久精品官网| 免费在线观看一区二区| 欧美精品国产精品| 国产精品二区在线观看| 国产欧美日韩一区| 精品999在线观看| 亚洲精品一区二区三区在线观看| 一本久道久久综合中文字幕 | 亚洲精品黄色| 亚洲无玛一区| 亚洲成人在线网站| 亚洲深夜福利网站| 久久精品123| 欧美大片免费观看在线观看网站推荐| 欧美日韩国产一级| 国产视频精品xxxx| 亚洲精品视频免费在线观看| 亚洲女性喷水在线观看一区| 亚洲欧洲一区二区天堂久久| 亚洲图片欧美午夜| 久久亚洲欧洲| 国产精品高潮在线| 激情婷婷欧美| 亚洲小少妇裸体bbw| 久久精品欧洲| 亚洲影院色在线观看免费| 久久亚洲国产精品一区二区 | 国内免费精品永久在线视频| 亚洲精品四区| 欧美一区观看| 亚洲视频一区二区| 麻豆精品在线视频| 国产精品婷婷午夜在线观看| 亚洲黄色天堂| 性感少妇一区| 一区二区三区免费网站| 久久久午夜电影| 国产精品久久久999| 亚洲国产免费看| 午夜欧美理论片| 一区二区三区色| 免费的成人av| 国产午夜精品久久久久久久| 99re6热只有精品免费观看| 亚洲国产合集| 久久黄色级2电影| 欧美日韩一区在线观看| 亚洲福利视频一区二区| 欧美伊久线香蕉线新在线| 一本色道久久综合一区| 免费亚洲电影| 黑人巨大精品欧美一区二区小视频 | 欧美日韩视频在线观看一区二区三区 | 在线精品在线| 欧美在线日韩在线| 亚欧美中日韩视频| 欧美午夜免费| 亚洲精品黄网在线观看| 亚洲国产激情| 久久都是精品| 国产九色精品成人porny| 一区二区高清在线| 99re6这里只有精品视频在线观看| 久久一二三国产| 国产欧美丝祙| 亚洲一区国产一区| 亚洲午夜女主播在线直播| 欧美剧在线观看| 亚洲黄色av一区| 亚洲欧洲日夜超级视频| 欧美暴力喷水在线| 永久免费精品影视网站| 久久精品亚洲乱码伦伦中文| 久久精品亚洲乱码伦伦中文 | 久久午夜精品| 国产主播喷水一区二区| 欧美一区二区三区四区夜夜大片| 欧美亚洲一区二区在线观看| 国产精品mv在线观看| 99热在这里有精品免费| 亚洲深夜激情| 国产精品v片在线观看不卡| 一本色道久久综合亚洲精品不| 在线天堂一区av电影| 欧美另类综合| 99精品视频免费在线观看| 一区二区三区欧美在线| 欧美色大人视频| 亚洲午夜精品久久久久久浪潮| 亚洲在线网站| 国产老肥熟一区二区三区| 午夜精品久久久久久99热| 欧美专区一区二区三区| 国产亚洲欧美色| 久久精品国产亚洲高清剧情介绍| 麻豆成人综合网| 亚洲黄色在线观看| 中文亚洲视频在线| 国产精品日日摸夜夜摸av| 亚洲欧美中文在线视频| 久久久久久夜| 亚洲国产精品一区在线观看不卡| 99re视频这里只有精品| 欧美日韩一区二区三区在线看| 亚洲午夜羞羞片| 欧美在线视频网站| 伊人成综合网伊人222| 亚洲激情在线| 欧美日韩免费网站| 亚洲一区二区在线| 久久久综合激的五月天| 亚洲国产二区| 亚洲一级一区| 国产日韩欧美在线视频观看| 亚洲高清电影| 欧美日韩播放| 亚洲欧美国产毛片在线| 久久亚洲图片| 日韩五码在线| 久久久999精品视频| 亚洲国产毛片完整版 | 亚洲一区二区少妇| 久久婷婷综合激情| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美在线看片| 欧美精品久久天天躁| 亚洲一区二区三区视频播放| 久久人人看视频| 99国产精品| 久久青青草综合| 99国产成+人+综合+亚洲欧美| 欧美尤物一区| 最新日韩中文字幕| 久久国产加勒比精品无码| 亚洲国产精品va在线看黑人动漫| 亚洲一区二区在线免费观看| 国内精品视频一区| 亚洲系列中文字幕| 一区二区在线观看av| 亚洲一区视频在线观看视频| 国产综合色产| 亚洲视频福利| 好看的日韩av电影| 亚洲一区二区三| 永久免费精品影视网站| 亚洲免费在线观看视频| 在线成人av.com| 欧美亚洲一区二区在线| 亚洲欧洲精品一区二区三区不卡 | 亚洲综合国产精品| 欧美电影免费观看高清完整版| 亚洲欧美久久久久一区二区三区| 欧美成人中文字幕| 欧美亚洲三区| 欧美午夜a级限制福利片| 亚洲电影自拍| 国产欧美91| 亚洲香蕉成视频在线观看| 黄色成人精品网站| 午夜一区二区三视频在线观看| 91久久精品国产91久久性色| 久久精品一区二区三区四区 | 欧美一级视频免费在线观看| 欧美性猛片xxxx免费看久爱| 亚洲精品看片| 伊人蜜桃色噜噜激情综合| 性欧美长视频| 一区二区久久久久久|