?

協同式網絡地址轉換器穿透研究

2020-09-27 23:02肖堅
電腦知識與技術 2020年23期
關鍵詞:點對點

肖堅

摘要:網絡技術快速發展,聯網設備的數量也愈來愈多且多樣化,為了解決IP地址短缺及提升網絡安全性,大部分的聯網設備都會通過網絡地址轉換器(Network Address Translator;NAT)與其他設備互聯,由于NAT會提供網絡地址的轉換,并對封包的傳輸有所限制,導致設備與設備之間的傳輸會因封包無法穿透NAT而出現問題。因此,如何穿透NAT變成一個重要的研究議題。建立中繼聯機及點對點直接聯機,并提出一個協同式NAT穿透方法,以兼顧成功穿透率、傳輸效率及節省網絡帶寬的使用。

關鍵詞:網絡地址轉換; 中繼服務器;點對點;網絡地址轉換穿透

中圖分類號:TP393? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2020)23-0050-02

1 前言

現今網絡技術快速發展,加上物聯網(Internet of Things; IoT)[1][2]的觀念也愈來愈成熟,連上網絡的設備愈來愈多,設備與設備之間的數據傳輸也愈來愈多元,除了信息的傳輸外,還有大量的多媒體信息。

為了提升網絡安全性,設備與設備之間的網絡環境也愈來愈復雜,據統計至少有超過70%的聯網設備都會通過NAT與其他設備互聯,由于 NAT 會提供網絡地址的轉換,并對封包的傳輸有所限制,因此常導致設備與設備之間的數據無法直接傳輸,因此如何穿透NAT是一個重要的研究議題。

現行網絡上的NAT大致分成四種形態,分別為一對一NAT 、地址限制 NAT 、端口限制NAT及對稱式NAT [3]。由于對稱式NAT對于封包進出的限制最為嚴格,且因為對稱式NAT在現行網絡環境中愈來愈普及,對于點對點之間網絡傳輸成功率也帶來更多的不確定性。

2 文獻研究

在文獻[6]中,提出一個設備可以先與其他設備建立一種主要點對點傳輸信道,此設備并可以利用此主要傳輸通道再建立多條次要點對點傳輸通道,若偵測主要傳輸信道失敗或傳輸質量降低,則次要傳輸通道可以取代原本的主要傳輸通道成為之后傳輸的主要通道,在這個方法當中,并沒有考慮使用中繼服務器來穿透 NAT ,故若在對稱式 NAT 的網絡環境下,仍然很容易造成無法穿透NAT的情況。文獻[7]的研究當中,會先判斷點對點直接穿透NAT是否可行,若可行,則嘗試建立點對點直接聯機,若判斷點對點直接穿透NAT不可行,或是建立點對點直接聯機失敗,則會使用中繼服務器來建立中繼聯機,并用中繼聯機傳送數據。在這個方法當中有幾個缺點,第一,當一端設備為對稱式 NAT 且另一端設備為對稱式NAT或端口限制NAT時,在這個研究當中都判斷為點對點直接穿透NAT不可行,然而,在這些網絡環境下,只要適當運用端口預測技術及hole punching 技術,利用點對點的方式仍有可穿透的機會。第二,如同文獻[5],仍會有聯機延遲的問題。在文獻[4]的研究當中,設備與設備之間可以先利用隧道(tunneling) 技術通過中繼服務器來穿透NAT,建立中繼聯機后即可開始傳送數據,因此不會有傳輸延遲的問題,中繼聯機建立后再嘗試建立點對點直接聯機,若點對點直接聯機被成功建立,則可利用點對點直接聯機傳送數據,并于適當時機終止中繼聯機;若點對點直接聯機沒有成功建立,則使用中繼聯機傳輸。在這個方法當中,在點對點直接聯機可以建立卻建立失敗的情況下,未再重新做端口預測跟設定,因此也未再嘗試建立點對點直接聯機,導致傳輸的效率降低、傳輸成本提高。

3 協同式NAT穿透方法

由于借由中繼服務器的協助能有很高的NAT穿透率,另一方面,點對點NAT穿透率雖然較低,但使用點對點聯機傳輸能提升傳輸效率并降低傳輸成本,因此這個研究的概念是兩端設備分別先后與對方嘗試建立中繼聯機及點對點聯機,并用一種協同機制來決定何時需采用中繼聯機機制、何時采用點對點聯機機制來傳輸以達到穿透NAT并兼顧傳輸效率、傳輸成本等目的。

基于這樣的機制,若點對點直接聯機可建立成功,則可利用點對點直接聯機傳輸以提升傳輸效率,同時并將中繼聯機刪除以減少中繼轉傳成本;若點對點直接聯機無法建立或是被判斷可建立卻建立失敗,則可直接用中繼聯機來傳輸,也不會造成因需要等待建立聯機而造成的傳輸延遲。另外,在點對點直接聯機被判斷為可以建立卻建立失敗的情況,通常都是因為NAT外部的通訊端口被占用而導致聯機建立失敗,因此在這種情況,則在利用中繼聯機傳輸的同時仍會持續嘗試建立點對點直接聯機,待點對點直接聯機建立成功,則可進一步將中繼聯機刪除。

3.1 設備與NAT的信息搜集及交換

本方法在一個設備嘗試與另一個設備聯機或是當一個設備接受其他設備聯機的請求時,會先與中繼服務器注冊,以便之后建立中繼聯機,接著會通過STUN 服務器的協助來取得與設備連接的NAT 的外部IP 位置,并搭配端口預測算法來預測與設備連接的NAT的外部端口配置(以下稱為映射端口) 以便通過映像端口來傳送封包,如多媒體串流等。

做完映像端口預測,接著會做與設備連接的NAT形態辨識,并將點對點直接聯機所需信息與另一設備交換,另外,若映射端口無法預測,則映射端口值為0。

3.2 建立中繼聯機

當設備收到另一設備的點對點直接聯機所需信息,則可先通過中繼服務器穿透NAT以建立中繼聯機,并開始通過中繼聯機傳送與接收數據。接著可使用連接兩端設備的NAT的形態及映像端口這兩個信息來判斷設備間的點對點直接聯機的可行性。

3.3 點對點直接聯機的可行性判斷

由于在對稱式NAT 中每一個NAT 內部地址對應不同的目的地,都對應到不同的NAT外部地址,且NAT外部位元址的配置有的是有規則性的,有的則是沒有規則性的,因此對稱式NAT的映射端口有的是可預測,有的是不能預測的,而一對一NAT、地址限制NAT及端口限制NAT這三種形態的NAT的映像端口皆可預測。

3.4 協同式NAT穿透

若依上述判斷方法判斷點對點直接聯機不可行,則不建立點對點直接聯機,只通過中繼聯機傳送/接收數據;若判斷點對點直接聯機可行,則會利用接收到的點對點直接聯機所需信息的與設備連接的NAT外部IP地址及預測的映像端口嘗試與另一設備建立點對點直接聯機,若點對點直接聯機成功建立,則會馬上刪除中繼聯機,使用點對點直接聯機來傳送/接收數據以提升傳輸效率、降低傳輸成本。另一方面,若點對點直接聯機被判斷可行但卻因映像端口被占用而建立失?。?即數據無法通過所建立的點對點聯機正常接收),則會再次嘗試建立點對點直接聯機。

當再嘗試建立點對點直接聯機,設備會重新作映像端口的配置,包含發送請求至某臺STUN服務器以獲得目前NAT映像端口配置的情況,依據目前的情況做接下來的映像端口配置,并再次與其他設備交換點對點直接聯機所需信息,重新利用新收到的點對點直接聯機所需信息的與設備連接的NAT外部IP地址及預測的映像端口再嘗試與另一設備建立點對點直接聯機,待點對點直接聯機成功建立,再將中繼聯機刪除改由使用點對點直接聯機進行傳輸。

然而,如果多次嘗試建立點對點直接聯機皆失敗,則設備會改用收到的點對點直接聯機所需信息的設備所在本地網絡地址與另一設備建立點對點直接聯機,會采用此機制是因為有些無線網絡基地臺并不支持NAT loopback,在這種情況,若兩端設備同時連上此基地臺時,用NAT外部地址來建立聯機是無法建立成功的。

3.5 實施方式及流程

基于上述所提出的方法,我們使用市面上普遍可見的無線路由器來做實驗,兩端設備分別連上各式無線路由器,不同的無線路由器呈現不同的NAT形態,其點對點直接聯機的成功率實驗結果如表1所示。有部分設備連到D-link無線路由器,在雙方協調好映射端口之后,當要開始傳輸多媒體串流數據時,這些設備的數據卻是從另外一個隨意選擇的映像端口送出而不是當初協調好的映射端口,當這種情形發生,如果另外一個設備的 NAT 形態為端口限制或是對稱式NAT時,將導致點對點直接聯機傳輸失敗,如表1的符號“x”所處的情形,在這種情形發生時,只能使用中繼聯機來傳輸,但如表1所示,大部分點對點直接聯機傳輸是可行的。

4 結論

本論文所提出的方法,借由先建立傳輸成功率較高的中繼聯機,再嘗試建立傳輸效率較高、傳輸成本較低的點對點聯機,而可節省使用者等待嘗試建立點對點聯機的時間,并且盡量使用傳輸效率較高、傳輸成本較低的點對點聯機,可同時具有傳輸效率更高、傳輸成本更低的方式且傳輸成功率更高的效果。

參考文獻:

[1] 方承志,程宥鋮,火興龍.基于MLS的窄帶物聯網系統下行信道估計算法[J/OL]. 計算機工程,2019(5).

[2] 周童.嵌入式系統在物聯網領域中的應用[J/OL].電子技術與軟件工程,2019(10):197.

[3] 陳恒勛,閆永航,孟丹,等.NAT穿越技術研究[J].現代信息科技,2020,4(6):94-98.

[4] 賀清碧,黃大榮,趙玲.網絡地址轉換器友好通訊構件的設計與實現[J].科學技術與工程,2016,16(18):197-203,224.

[5] Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols, RFC 5245, 2010.

[6] Berkat S. Tung, Barry A. Whitebook, Joe S. Abuan, H. Jeong, Y. Yang and R. Garcia, “Apparatus and method for establishing and utilizing backup communication channels,” U.S. Patent 8 819 244, Aug. 26, 2014.

[7] Andrew H. Vyrros, Jeremy Matthew Werner and Patrick Gates, “Apparatus and method for inviting users to online sessions,” U.S. Patent 8 412 833, Apr. 2, 2013.

【通聯編輯:代影】

猜你喜歡
點對點
基于室內LBS技術的IOS平臺點對點通信目標自動定位仿真*
“點對點”幫2萬名農民工返崗
OptiX155622H設備點對點以太網透傳業務故障分析
寬帶電力線載波點對點通信性能測試平臺設計
便攜式點對點可見光通信終端的實驗研究
點對點紅外通訊裝置的設計
中低端計算機連接平板電視
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合