999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種Symmetric NAT穿透的新方法

2017-03-01 04:26:12馮金哲殷海兵
計算機應用與軟件 2017年1期
關鍵詞:方法

馮金哲 殷海兵

(中國計量學院信息工程學院 浙江 杭州 310018)

一種Symmetric NAT穿透的新方法

馮金哲 殷海兵

(中國計量學院信息工程學院 浙江 杭州 310018)

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

Symmetric NAT TURN P2P NAT穿透

0 引 言

網絡地址轉換[1]NAT是一個非常有名的工具,能夠使IP地址在網絡上重用。NAT可以將內網私有地址和端口號轉換成公網地址和端口號,進而建立一個會話實現與公網主機進行通信。但是NAT只允許單方面發起連接,即內網可以作為客戶端訪問外網,而不能作為服務器提供服務。很明顯,這與P2P的資源共享的思想所不容[2]。于是解決NAT穿透問題將是實現P2P對等服務的前提。

目前,存在多種NAT穿透的方法。一種常用的穿透方法STUN(Simple Traversal of UDP over NAT)[3]是NAT的UDP簡單穿透,基于C/S架構,但不能實現Symmetric NAT的穿透;而對于Symmetric NAT穿越一般采取TURN中繼方式。雖然中繼服務器能夠實現對Symmetric NAT的穿透,但同時也容易導致TURN服務器負擔過重,引起延時、丟包現象的發生。

本文采取的NAT穿透新方法,能夠成功實現對Symmetric NAT的穿透。對稱型NAT被廣泛應用于對安全性要求較高的交流通信中,但目前依靠中繼轉發的方案存在一定的缺陷。本文采取基于端口預測方法實現對Symmetric NAT的穿透,克服了依靠中繼服務器穿越的缺陷,特別適合對網絡安全要求高而使用對稱型NAT的企業公司。

1 NAT分類

STUN標準中,根據NAT對IP地址和端口的映射方式[4],如圖1所示,把NAT分為四類:完全錐型NAT(Full Cone NAT)、限制錐型NAT(Restricted Cone NAT)、端口限制錐型NAT(Port Restricted Cone NAT)和對稱型NAT(Symmetric NAT)。

圖1 NAT地址映射關系

(1) 完全錐型NAT:特點是內部主機P訪問外網主機時,NAT給其分配一個端口號,外網的任何主機都可以憑借這一端口號給內網主機發送UDP數據包。映射關系為P:p→A:b,任何外部主機都可以通過(A:b)發送數據到上(P:p)。

(2) 限制錐型NAT:特點是當內部主機P訪問外網主機X時,NAT給其分配一個端口,主機X可以用任何端口與P通信,但外網主機不能與P通信。映射關系為P:p→A:b→X,只有來自X的數據包才能通過(A:b)發送到上(P:p)。

(3) 端口限制錐型NAT:特點是當內部主機P訪問外網主機X時,NAT給其分配一個端口,主機X只能用本端口與P通信,X用其他端口或其他主機不能與P通信。映射關系為P:p→A:b→X:x,只有來自X:x的數據才能通過(A:b)發送到(P:p)上。

(4) 對稱型NAT:特點是只有同一內部主機地址(P:p),并且發送到同一地址(X:x)的請求消息,NAT才會映射為相同的外部地址(A:b),返回的數據也只接受該內部主機X:x這一目的地址。映射關系為P:p→A:b→X:x;當訪問(Y:y)時,映射則變為P:p→B:c→Y:y。

2 NAT穿透方案

NAT穿透一般分為兩種情況:(1) 終端A與B通信,A位于NAT后面,而B位于公網上。這種情況兩者通信比較簡單,只要讓位于NAT后面的A終端先建立聯系,NAT就不起作用了,A可以從服務器上取得B的地址,主動發起連接,B回應的數據包就可以容易地穿透NAT。(2) 如果A與B均位于NAT之后,這時候A與B的通信是否成功就與兩個NAT的類型有關了。主要的實現方法是終端A與B先通過與服務器的聯系,獲得各自在NAT外部的地址,即IP地址和端口號;然后A與B再分別向對方的外部地址發送數據邀請包,獲取自己與對方通信的外部地址,這就是所謂的“打洞”[5-7]。打洞完成后,雙方就可以建立聯系進行端到端的通信了。但是,當一方NAT的類型為對稱型,而另一個是端口限制型NAT或對稱型NAT時,將無法獲取外部地址,進而邀請包也無法成功到達,也就無法穿透NAT實現兩者的通信。

2.1 STUN 方法

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

圖2 STUN穿透NAT

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

(2) 客戶端B也與服務器建立聯系,NAT B為其分配端口22000,服務器得到B的地址200.20.20.20:22000。這時A如果直接向B發送數據包會被NAT B丟棄,所以通過在NAT B上打一個方向為A的洞,那么A就可以向B發送數據了。

(3)服務器發起打洞的指令,客戶端B向A的地址100.10.10.10:11000發送一個UDP的數據包,這個數據包被NAT A丟棄,但在NAT B上建立起了映射記錄,這樣NAT B就不會再丟棄來自A的數據報文了。

(4) 服務器通知客戶端A可以通信了,A向客戶端B發送UDP數據包,NAT B 允許數據包通過,于是A與B就實現端到端的通信了。

2.2 TURN 方法

STUN的局限性在于不支持對稱型NAT穿透,而一些在安全性要求較高的企業網絡中,配置的NAT多是對稱型NAT。所以STUN的擴展TURN[8]就出現了,TURN解決NAT的問題與STUN相似,只不過STUN穿透方法得到的地址是出口NAT上的外部地址,而TURN方法得到的地址為TURN服務器上的公網地址。但負載比較大時,利用TURN方式會引起服務器負擔過重,出現丟包和延時的現象。

2.3 NAT穿透新方法

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

圖3 NAT穿透新方法

2.3.1 第一階段

終端A訪問服務器C和D確定NAT類型。

(1) 終端A首先和服務器C建立聯系,服務器C分析NAT A映射的端口號。

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

(3) 緊接著,終端A向服務器D發送一個數據包。這個數據包中包含了(1)中分析得到的端口號信息。同樣的方式,服務器D也分析了NAT A映射的端口號并記錄下來。服務器D根據比較這兩個端口號的異同,可得出NAT A的類型。若兩個端口相同,則NAT A屬于錐型NAT;否則,屬于對稱型NAT。

2.3.2 第二階段

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

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

(2) 服務器C把(1)中得到的端口號回應給終端B。

(3) 終端B向服務器D發送數據包。數據包中包含了(1)中分析得到的端口號信息。服務器D同樣分析了NAT B映射的端口號并記錄下來。服務器D根據比較兩個端口的異同,得出NAT B的類型,若兩個端口一致,則NAT B屬于錐型NAT;否則為對稱型NAT。

2.3.3 第三階段

這一階段里,對端口進行預測。假設在第一、二階段檢測得到的NAT A和NAT B都屬于對稱型。很顯然,通過對兩次端口的觀察,可以確定端口號有三種變化趨勢:遞增、遞減或隨機分配。同時,也可以對NAT如何分配端口號有了一個很準確的預測范圍。對于端口號變化呈遞增或遞減的情況,對很多NAT而言,一般差值在1或者2[9]。而對于端口隨機分配的情況,總的端口數為N=65 535-1024,根據統計學的推算,當隨機猜測439次,就會保證至少有一次預測成功率達95%[10]。如果嘗試猜測的次數足夠多,可以說,基本能成功實現終端A與B的連接。具體實現如下:

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

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

(3) 基于第一、二階段的兩類信息,也即NAT B與服務器C與D的交流信息,也可以預測一個合適的打洞端口。服務器D同樣也會發送包含預測端口號信息到終端A。

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

3 實驗驗證

考慮到實際測試環境很復雜,這里分別在兩臺電腦上利用Linux虛擬機來搭建NAT測試環境。網絡測試環境的設計如圖4所示,采用C編程,選擇用Linux下的libnet庫開發終端程序,進行數據包的發送;服務器端利用libpcap庫實現網絡數據包的捕獲與過濾,同時監聽兩終端的連接。

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

圖4 實驗測試網絡結構

4 結 語

本文采用的基于端口預測穿透技術成功地實現了對Symmetric NAT的穿透,解決了目前利用中間服務器轉發實現穿透Symmetric NAT所帶來的難題。雖然,目前大部分企業用戶一般選擇錐型NAT設備,但對于對安全性要求較高的企業用戶,對稱型NAT設備的使用是不可避免的。通過本文介紹的方法可以實現對Symmetric NAT的成功穿越,所以,此方法具有很高應用與推廣的價值。

[1] 林海斌.基于STUNT協議的TCP NAT穿越設計與實現[D].華南理工大學,2010.

[2] 曹申會.NAT穿越技術研究與實現[D].南京郵電大學,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] 謝統義,黃保華.對等系統NAT穿越技術研究[J].廣西教育學院學報,2014(3):145-147.

[5] 杜經緯,王春紅.在P2P網絡環境下基于UDP協議穿越NAT的研究[J].吉林師范大學學報:自然科學版,2012(1):93-94.

[6] 蒙元勝.基于UDP/TCP協議的NAT穿越方案研究[D].中山大學,2014.

[7] 孔衛喜,席少龍.P2P中NAT穿越問題的研究[J].計算機技術與發展,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] 王培東,連樹國.基于端口預測的P2PNAT穿越方法的改進[J].通信技術,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。浙江省自然科學基金項目(LY15F020022)。馮金哲,碩士生,主研領域:計算機網絡通信。殷海兵,教授。

TP393

A

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

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 亚洲第一视频网| 中文字幕不卡免费高清视频| 免费全部高H视频无码无遮掩| 在线综合亚洲欧美网站| 成人国产一区二区三区| 亚洲精品无码人妻无码| 国产一区二区精品福利| 91精品久久久无码中文字幕vr| 二级特黄绝大片免费视频大片| 欧美a级在线| 久久亚洲国产最新网站| 国产欧美网站| 免费看黄片一区二区三区| 久久香蕉国产线看观看亚洲片| 亚洲天堂.com| 亚洲美女一级毛片| 九色视频一区| a亚洲视频| 欧美一区福利| 啪啪啪亚洲无码| 亚洲免费福利视频| 男人天堂亚洲天堂| 91九色国产porny| 香蕉在线视频网站| 午夜毛片免费观看视频 | 成人在线天堂| 亚洲一区二区约美女探花| 成人永久免费A∨一级在线播放| 国产精品一老牛影视频| 日本高清成本人视频一区| 中文字幕啪啪| 日本高清成本人视频一区| 毛片视频网| 国产午夜在线观看视频| 日韩性网站| 亚国产欧美在线人成| 91丨九色丨首页在线播放| 国产三级韩国三级理| 久久精品aⅴ无码中文字幕 | 在线国产毛片| 午夜视频免费试看| 久久精品国产91久久综合麻豆自制| 谁有在线观看日韩亚洲最新视频 | 国产精品亚洲日韩AⅤ在线观看| 中文字幕2区| 人妻熟妇日韩AV在线播放| 国产拍在线| 高清精品美女在线播放| 乱系列中文字幕在线视频| 亚洲天堂伊人| 国产成人综合日韩精品无码首页 | 亚洲中文无码h在线观看| 99热这里只有免费国产精品 | 国产成人h在线观看网站站| 久久99精品久久久久纯品| 日本成人在线不卡视频| 99中文字幕亚洲一区二区| 亚洲看片网| 日本成人福利视频| 欧美日韩一区二区三| 免费国产小视频在线观看| 在线观看精品自拍视频| 国产夜色视频| 青青青国产精品国产精品美女| 国产夜色视频| 亚洲全网成人资源在线观看| 国产美女叼嘿视频免费看| 在线高清亚洲精品二区| 视频一本大道香蕉久在线播放| 国产午夜福利在线小视频| 久热99这里只有精品视频6| 亚洲成人手机在线| 91精品国产91久无码网站| 国产成年女人特黄特色大片免费| 欧美中文一区| 欧美午夜理伦三级在线观看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 五月婷婷亚洲综合| 日韩精品少妇无码受不了| 午夜福利网址| 伊人久久久久久久久久| 国产99热|