《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 對等網聯下NAT穿越問題的研究
對等網聯下NAT穿越問題的研究
來源:電子技術應用2013年第5期
孫衛喜, 席少龍
渭南師范學院 數學與信息科學學院,計算機網絡工程技術中心,陜西 渭南 714000
摘要: 采用“打洞”穿越錐型NAT與使用端口預測穿越對稱型NAT相結合的方法,成功穿越了各種NAT,解決了對等聯網下NAT的穿越問題。該方案既無需改變現有網絡設備,又能確保內網的安全性,同時還解決了目前穿越方式存在的只能穿越部分類型的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

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

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

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

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

 


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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国内在线观看一区二区三区 | 农村妇女精品| 久久福利一区| 欧美在线视屏| 香蕉久久夜色精品国产| 亚洲自拍偷拍麻豆| 亚洲一区二区三区三| 亚洲午夜极品| 性久久久久久久久| 国产欧美精品| 国产日韩欧美在线视频观看| 国产老肥熟一区二区三区| 国产精品麻豆成人av电影艾秋| 国产精品www.| 国产精品免费福利| 国产欧美日韩视频一区二区三区| 国产美女搞久久| 国内精品久久久久影院薰衣草| 激情综合色综合久久综合| 在线成人h网| 亚洲国产免费| 亚洲乱亚洲高清| 夜夜精品视频| 亚洲色图自拍| 亚洲欧美中文另类| 久久精品1区| 亚洲欧洲精品天堂一级| 日韩一区二区精品在线观看| 中文精品在线| 欧美一区亚洲| 久久一区中文字幕| 欧美成人午夜剧场免费观看| 欧美精品导航| 国产精品美女久久久久av超清| 国产区亚洲区欧美区| 永久域名在线精品| 亚洲九九精品| 亚洲视频一二区| 午夜精品久久久久久久白皮肤| 久久激五月天综合精品| 日韩系列在线| 亚洲欧美在线高清| 久久综合色8888| 欧美日本三级| 国产欧美精品一区二区色综合| 韩日视频一区| 亚洲伦理久久| 午夜精品影院| 亚洲免费观看视频| 西西裸体人体做爰大胆久久久| 玖玖玖国产精品| 欧美一区二区三区在线观看| 日韩特黄影片| 日韩一级免费| 久久av红桃一区二区小说| 免费在线欧美黄色| 国产精品久久久久久亚洲毛片| 狠狠色狠狠色综合日日五| 亚洲精品系列| 欧美亚洲色图校园春色| 亚洲精品久久嫩草网站秘色| 午夜精品久久久久久久久久久| 免费亚洲电影| 国产精品色婷婷久久58| 亚洲电影天堂av| 亚洲女同精品视频| 亚洲精品一区二区三区四区高清| 亚洲女人小视频在线观看| 另类专区欧美制服同性| 国产精品久久久久77777| 在线欧美一区| 先锋影音国产精品| 一区二区三区国产精品| 久久噜噜噜精品国产亚洲综合 | 91久久黄色| 欧美在线观看一区| 亚洲香蕉成视频在线观看| 久久综合中文字幕| 国产精品免费aⅴ片在线观看| 在线精品国产成人综合| 亚洲欧美日韩电影| 99视频在线精品国自产拍免费观看 | 欧美一级二区| 欧美日韩亚洲一区三区| 极品少妇一区二区三区| 亚洲曰本av电影| 日韩一级精品视频在线观看| 久久久久久一区| 国产精品久久国产精品99gif | 国产精品99久久久久久白浆小说| 久久只有精品| 国产精品拍天天在线| 亚洲美女中文字幕| 91久久国产综合久久| 久久精品国产99国产精品| 欧美日韩中文字幕日韩欧美| 亚洲国产日韩欧美| 亚洲国产日韩欧美在线图片| 久久久久久国产精品mv| 国产欧美大片| 亚洲综合精品一区二区| 亚洲特级毛片| 欧美日韩亚洲一区在线观看| 亚洲人成亚洲人成在线观看| 亚洲精品欧美极品| 免费不卡在线视频| 一区视频在线播放| 久久精品国产一区二区三区| 久久久国产亚洲精品| 国产亚洲高清视频| 亚洲欧美在线x视频| 午夜一区二区三区在线观看| 国产精品分类| 宅男噜噜噜66一区二区66| 制服丝袜亚洲播放| 欧美裸体一区二区三区| 亚洲三级色网| 日韩一级精品| 欧美全黄视频| 亚洲美女在线一区| 一区二区久久| 国产精品v日韩精品| 亚洲午夜羞羞片| 欧美一区二区三区日韩| 国产欧美一区二区色老头| 午夜欧美视频| 久久嫩草精品久久久精品一| 激情av一区| 最新成人av网站| 欧美激情亚洲精品| 亚洲九九精品| 亚洲你懂的在线视频| 国产免费成人av| 久久成人免费视频| 美女诱惑一区| 最新成人av在线| 中文无字幕一区二区三区| 国产精品久久国产三级国电话系列| 在线综合+亚洲+欧美中文字幕| 亚洲欧美中文另类| 国产亚洲欧美在线| 亚洲国产aⅴ天堂久久| 欧美黄色aa电影| av成人福利| 欧美一区二区福利在线| 国产一区二区丝袜高跟鞋图片 | 亚洲人成高清| 欧美色123| 午夜精品久久久久久久99黑人| 久久精品视频亚洲| 尤物yw午夜国产精品视频| 9色精品在线| 国产精品久久久久一区二区| 欧美在线一级va免费观看| 久久久久久久一区| 最近中文字幕日韩精品| 亚洲欧美日韩国产综合精品二区| 国产视频久久| 亚洲精品乱码久久久久久黑人| 欧美一区国产一区| 亚洲国产精品成人一区二区| 99re6热只有精品免费观看| 欧美视频在线免费看| 欧美一区二区三区在线视频 | 欧美日韩在线精品一区二区三区| 亚洲欧美日韩中文在线制服| 免费观看一区| 国产精品99久久久久久人| 久久男人av资源网站| 日韩亚洲欧美在线观看| 久久av最新网址| 亚洲激情影视| 久久精品国产99| 999亚洲国产精| 久久偷窥视频| 在线亚洲自拍| 欧美mv日韩mv国产网站app| 亚洲在线免费视频| 欧美成人免费在线| 亚洲在线1234| 欧美日韩国内| 亚洲高清激情| 国产精品自在欧美一区| 夜夜爽99久久国产综合精品女不卡| 国产欧美在线视频| 亚洲社区在线观看| 黄网动漫久久久| 午夜激情一区| 日韩视频在线你懂得| 久热re这里精品视频在线6| 亚洲视频一起| 欧美另类视频| 亚洲国产精品一区二区第一页 | 老色鬼精品视频在线观看播放 | 欧美一区二区| 欧美午夜精品伦理| 亚洲欧洲综合另类| 国产欧美一区二区精品婷婷| 亚洲视频中文字幕| 亚洲国产日韩在线一区模特|