期刊VIP學(xué)術(shù)指導(dǎo) 符合學(xué)術(shù)規(guī)范和道德
保障品質(zhì) 保證專業(yè),沒有后顧之憂
來源:期刊VIP網(wǎng)所屬分類:計算機網(wǎng)絡(luò)時間:瀏覽:次
摘要:由于局域網(wǎng)與互聯(lián)網(wǎng)編址方式不同,NAT 設(shè)備掩藏了參與構(gòu)建P2P 網(wǎng)絡(luò)的大量用戶節(jié)點。因此位于不同NAT 之后的用戶節(jié)點如何發(fā)現(xiàn)對方、如何彼此建立直接連接就成為P2P 亟待解決的問題之一。
P2P技術(shù)打破了傳統(tǒng)的服務(wù)器與客戶端的界限,消除了傳統(tǒng)的IPv4與DNS 域名系統(tǒng)的局限性,讓所有聯(lián)網(wǎng)并參與到P2P 應(yīng)用來的所有機器聯(lián)合起來,組成一個威力強大的并行計算機,從而實現(xiàn)計算能力與計算資源的突破。P2P所帶來的效益,首先將體現(xiàn)在運營成本的大幅降低上,甚至可以讓一些原本高成本服務(wù)的實際成本接近零,從而,讓一些原本是不可能實現(xiàn)的商業(yè)模式成為可能。
現(xiàn)有的互聯(lián)網(wǎng)是基于IPv4架構(gòu),隨著計算機接入數(shù)量的不斷增加,IP 地址資源愈加匱乏,NAT的引入解決了這個問題,通過部署NAT 可以使一個局域網(wǎng)所有主機通過一個或幾個公網(wǎng)IP 地址來訪問互聯(lián)網(wǎng),不僅如此,NAT 實際應(yīng)用中還有負載均衡、保護內(nèi)部局域網(wǎng)和優(yōu)化重疊網(wǎng)絡(luò)等功能。
1 NAT類型
根據(jù)NAT的工作方式不同,可以分四種類型:完全圓錐型NAT(Full Cone NAT),地址限制圓錐型NAT (Address Restricted Cone NAT),端口限制圓錐型NAT (Port Restricted Cone NAT),對稱型NAT (Symmetric NAT)。假設(shè)節(jié)點A 在內(nèi)網(wǎng),內(nèi)網(wǎng)IP地址記為Aip,端口號Aport;穿越NAT 后的外部IP地址記為A’ip / port,外網(wǎng)設(shè)備節(jié)點B的地址為Bip / port。以下圖網(wǎng)絡(luò)結(jié)構(gòu)為例,分別說明四種類型的特點。
完全圓錐型NAT情況下,NAT外的任意設(shè)備如節(jié)點B,訪問A’ip / port 即可訪問Aip / port;
地址限制圓錐型NAT情況下,NAT外的任意設(shè)備如節(jié)點B,訪問A’ip / port 即可訪問Aip / port,但是B 要能訪問A,必須A 先訪問B的IP 地址Bip;
端口限制圓錐型NAT情況下,NAT外的任意設(shè)備如節(jié)點B,訪問A’ip / port 即可訪問Aip / port,但是B 要能訪問A,必須A 先訪問B的IP 地址Bip以及端口B port;
以上三種類型有個共同特點,不管節(jié)點A 訪問NAT 以外的任何地址,穿越NAT 后映射為公網(wǎng)地址A’ip / port,即只要從同一個內(nèi)部地址和端口出來的包,NAT都將它轉(zhuǎn)換成同一個外部地址和端口。因此,它們被統(tǒng)稱為Cone NAT。
而在對稱型NAT情況下,NAT 內(nèi)的節(jié)點A(Aip / port)訪問特定的NAT 外的節(jié)點B(Bip / port),使用相同的外部地址A’ip / port。如果節(jié)點A訪問NAT 外的其他節(jié)點,將使用不同的外部地址和端口號;而且必須先有內(nèi)部節(jié)點首先訪問外部節(jié)點,外部節(jié)點才能訪問內(nèi)部節(jié)點。如此設(shè)計是出于安全性考慮,一些功能較強的NAT 提供這種可選的工作模式。
2 NAT穿越技術(shù)
不少方案已經(jīng)被應(yīng)用于解決穿透NAT問題,例如:ALGs(Application Layer Gateways)、Middlebox Control Protocol、STUN (Simple Traversal of UDP through NAT)、TURN(Traversal Using Relay NAT)、RSIP(Realm Specific IP)、symmetric RTP等。然而,當(dāng)這些技術(shù)應(yīng)用于不同的網(wǎng)絡(luò)拓撲時都有著顯著的利弊,以至于我們只能根據(jù)不同的接入方式來應(yīng)用不同的方案,為了適應(yīng)各種NAT 環(huán)境,出現(xiàn)了一種ICE的解決方案。
ICE(Interactive Connectivity Establishment)本身不是一種新技術(shù),它只是把原來的一些技術(shù)綜合運用。作為最為全面的一種解決NAT 穿越方案,ICE的設(shè)計方案大多綜合使用STUN 和 TURN 這兩種穿越技術(shù),最大限度地利用STUN,當(dāng)STUN 無法作用的時候才使用TRUN,這樣就能避免單獨使用STUN 不能穿越某些NAT 的弊病和最大限度的減少TRUN 的使用。其中NAT 設(shè)備的類型對于ICE 選擇穿越技術(shù)有很重要的影響,所以在穿越NAT設(shè)備前應(yīng)先檢測NAT 設(shè)備的類型。
3 NAT類型檢測實現(xiàn)方案
假設(shè)節(jié)點Client 在內(nèi)網(wǎng),通過NAT 設(shè)備連接Internet,Internet 設(shè)備節(jié)點A的會話地址為ServerA:PortX,Internet設(shè)備節(jié)點B的會話地址為ServerB:PortX和ServerB:PortY,其中ServerA 和ServerB 是兩個不同的公網(wǎng)IP,網(wǎng)絡(luò)布局如下圖所示:
那么怎么來檢測該網(wǎng)絡(luò)中的NAT 設(shè)備的類型呢?網(wǎng)絡(luò)傳輸協(xié)議TCP / IP 協(xié)議簇中傳輸層的協(xié)議包括TCP(Transmission Control Protocol 傳輸控制協(xié)議)和UDP (User Datagram Protocol 用戶數(shù)據(jù)報協(xié)議),TCP 相比UDP而言更為復(fù)雜,因為TCP 是面向連接的服務(wù),需要三次握手機制,會涉及到連接狀態(tài)的保持等問題,UDP雖然是一個不可靠的協(xié)議,但它是分發(fā)信息的一個理想?yún)f(xié)議,UDP具有TCP所望塵莫及的速度和性能優(yōu)勢。NAT網(wǎng)絡(luò)檢測需要傳輸?shù)臄?shù)據(jù)量少,對傳輸可靠性的依賴小,因此選擇基于UDP 協(xié)議來實現(xiàn)方案,圖3是具體的程序算法流程圖。
在UDP 通訊中,內(nèi)網(wǎng)中的節(jié)點Client 主動向外發(fā)送數(shù)據(jù)包請求,并根據(jù)返回包的信息判定內(nèi)網(wǎng)中NAT 設(shè)備的類型。Internet 設(shè)備節(jié)點A和節(jié)點B都有回應(yīng)Client返回包的功能,而且節(jié)點A還具備接收節(jié)點Client的申請轉(zhuǎn)發(fā)數(shù)據(jù)包給節(jié)點B的能力。
4 結(jié)束語
P2P技術(shù)已經(jīng)被大量運用于各種互聯(lián)網(wǎng)應(yīng)用中,在實現(xiàn)P2P 應(yīng)用的過程中,如果某個節(jié)點(Peer)位于私有網(wǎng)絡(luò)則必定會遇到NAT 穿越的問題,換而言之,這樣的節(jié)點在與其他節(jié)點通訊時必須先完成NAT 穿越。NAT 類型檢測算法使NAT 的穿越更加智能,檢測NAT 的類型的結(jié)果可以用于選擇合適的NAT 穿透技術(shù)方案,提高了穿透的效能,具有很大靈活性。
參考文獻:
[1] Egevang K,F(xiàn)rancis P.Rfc 1631: The ip network address translator(nat) [S].1994.
[2] Rosenberg J,Mahy R.Session Traversal Utilities for NAT(STUN) [S] .RFC 5389, IETF, 2008.
[3] Rosenberg J,Mahy R,Matthews P.Traversalusing relays aroundnat (TURN): Relay extensions to session traversal utilities for nat (stun)[S].RFC 5766 (Review Copy), IETF, 2010.
[4] Rosenberg J,Mahy R, jdrosen.net.Interactive Connectivity Establishment (ICE):A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols[S].RFC5245, IETF, 2010.
[5] 張澤鵬. P2P網(wǎng)絡(luò)中NAT穿透技術(shù)的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2010.
[6] Gary R,Wright W.Richard Stevens. TCP/IP詳解(卷2) :實現(xiàn)[M].陸學(xué)瑩,譯.北京:機械工業(yè)出版社,2000.