英文位址:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt
網際網路草案B.福特
檔案:草案 - 福特 - 中間盒通信的P2P-01.txt麻省理工學院
到期日:2004年4月27日,第Srisuresh
Caymas系統
D.凱格爾
kegel.com
2003年10月
對等網絡(P2P)跨中間件通信
本備忘錄的狀态
這個檔案是一個Internet草案,并須遵守所有規定
的RFC2026的第10節。網際網路草案是文檔
網際網路工程任務組(IETF),其領域及其
工作組。請注意,其他團體也可以配置設定工作
文檔作為Internet草案。
Internet草案的有效期最長為六個月檔案草案
并且可以更新,替換,或在任何其他檔案廢棄
時間。這是不恰當的使用網際網路的草稿作為參考
材料或舉他們比其它“進展中的工作。”
目前Internet草案的清單可以在通路
http://www.ietf.org/1id-abstracts.html
Internet草案陰影目錄的清單可以在通路
http://www.ietf.org/shadow.html
本文檔的分發不受限制。
版權聲明
版權所有(C)網際網路協會(2003年)。版權所有。
抽象
本文定義由目前對等網絡使用的方法
(P2P)應用到在中間盒的存在下進行通信
如防火牆和網絡位址轉換(NAT)。在
此外,備忘錄建議對應用程式設計指南
他們可以采取的措施和中間盒實施者
支援P2P應用,即時,廣泛部署或
而不需要使用特殊的代理,中繼或中間盒通信
協定。
福特,Srisuresh&凱格爾[第1頁]
跨中間件2003年10月網際網路草案P2P應用
目錄
1.簡介............................................... ..
2.術語............................................... ...
3.技術已有的P2P通信............
3.1。中繼...............................................
3.2。逆向連接配接....................................
3.3。打洞......................................
3.3.1。不同的NAT後面的同行..................
3.3.2。同樣的NAT之後....................
3.3.3。通過多層NAT分隔同行...............
3.3.4。一緻的端口綁定.......................
3.4。 UDP端口号預測.............................
3.5。同時TCP開放..................................
4.應用程式設計指南................................
4.1。什麼跟P2P中間件.........................工作
4.2。相同的NAT後面的應用........................
4.3。同伴發現..........................................
4.4。 TCP的P2P應用....................................
4.5。利用中間盒通信協定..................................
5. NAT設計指南........................................
5.1。棄用采用對稱NAT的.....................
5.2。加入增量錐形NAT支援對稱NAT裝置
5.3。維持UDP端口一緻的端口綁定.....
5.3.1。保留端口号........................
5.4。維持TCP端口一緻的端口綁定.....
5.5。大逾時P2P應用......................
6.安全注意事項......................................
1.簡介
當今的網際網路已經看到了無處不在的部署
“中間件”,如網絡位址轉換(NAT),驅動
主要由IPv4位址空間的持續消耗。該
這些建立不對稱尋址和連通性制度
中間件,但是,已經創造了獨特的問題,為對等網絡
(P2P)應用程式和協定,如電話會議和
多人線上遊戲。這些問題可能會甚至持續
到IPv6的世界裡,NAT通常用來作為IPv4相容
機制[NAT-PT],并且防火牆将仍然是家常便飯,甚至
後不再需要NAT。
目前部署的中間件的設計主要是圍繞
客戶機/伺服器的範例,其中,相對匿名的客戶機
主動發起,以具有穩定良好連接配接的伺服器的連接配接
IP位址和DNS名稱。大多數中間件實施非對稱
福特,Srisuresh&凱格爾[第2頁]
跨中間件2003年10月網際網路草案P2P應用
其中通信模型承載專用内部網絡上
可以啟動公共網絡上的主機傳出連接配接,但
外部主機不能啟動,除了内部主機連接配接
作為具體由中間盒的管理者配置。在裡面
NAPT的常見情況下,内部網絡中的用戶端沒有
在公共網際網路上唯一的IP位址,而是必須共享
一個公網IP位址,由NAPT管理,與其他主機
同一專用網絡上。匿名性和交通不便
層NAT内部主機不是用戶端問題
軟體如Web浏覽器,隻需要啟動傳出
連接配接。這交通不便有時被視為隐私
效益。
在對等網絡模式,但是,網際網路的主機會
通常被認為是“客戶”,需要建立通信
彼此直接會話。在發起方和應答
可能在于背後不同的中間件既沒有終點
有公網任何永久的IP位址或其他形式
存在。一個常見的線上遊戲架構,例如,
為參與應用程式主機聯系一個著名的
伺服器初始化和管理目的。随後
對此,主機與對方建立直接連接配接
對于遊戲中的更新快速,高效的傳播。
同樣,檔案共享應用程式可能會聯系一家知名
伺服器資源發現或搜尋,而是直接建立
與資料傳輸等主機的連接配接。中間件建立
,因為後面的主機對等網絡連接配接問題
中間盒通常對沒有固定的端口
網際網路傳入TCP或從其他同行UDP連接配接
可定向。 RFC 3235 [NAT-APPL]簡單地解決這個問題,
但不提供任何的解決方案。
在本文中,我們以兩種方式解決P2P /代理的問題。
首先,我們總結了已知的方法由P2P應用程式可以
變通中間件的存在。第二,我們提供了一套
基于這些做法的應用程式設計指南,使
P2P應用在目前部署的工作更有力
中間件。此外,我們為未來設計指南
中間件,讓他們支援P2P應用程式的更多
有效。我們的重點是讓直接和廣泛部署
P2P應用那些需要經過。
2.術語
在本節中,我們首先總結了一些術語。在這裡,我們重點
對兩種中間件的通常導緻的P2P問題
應用程式。
福特,Srisuresh&凱格爾[第3頁]
跨中間件2003年10月網際網路草案P2P應用
火牆
防火牆可以限制私人内部之間的溝通
網絡和公共網際網路,通常由丢棄資料包
這被認為是未經授權的。防火牆檢查,但确實
不修改的IP位址和TCP / UDP的端口資訊
包過關。
網絡位址轉換(NAT)
網絡位址轉換器不僅檢查同時也修改
在跨越邊界流動的分組的标題資訊,
允許多個主機上的NAT後面共享使用較小
公有IP位址的數量(通常一個)。
網絡位址轉換器有兩個主要品種:
基本NAT
一個基本的NAT内部主機的私有IP位址映射到一個
在不改變TCP / UDP端口的公共IP位址
号碼穿越邊界的資料包。基本NAT一般
當NAT擁有公網IP位址池唯一有用
這使代表内部主機的位址綁定。
網絡位址/端口轉換(NAPT)
到目前為止,最常見的,一個網絡位址/端口轉換檢
和修改都IP位址和TCP / UDP端口号
分組域穿越邊界,允許多個
内部主機同時共享一個公用IP位址。
請參閱[NAT-TRAD]和[NAT-TERM]更多一般資訊
NAT分類和術語。進一步分類的附加條款
NAPT在最近的工作[STUN]中定義。當内部主機
打開通過網絡位址/端口傳出TCP或UDP會話
翻譯時,NAPT配置設定會話的公網IP位址,
端口号,使得從外部後續響應封包
端點可以通過NAPT接收,翻譯,并轉發
到内部主機。其效果是,在NAPT建立
端口(私有IP位址,私有端口号)和之間的結合
(公網IP位址,公網端口号)。端口綁定
定義位址轉換的NAPT将為執行
會議持續時間。相關性P2P的問題
應用程式是NAT的行為當内部主機啟動
從單一的(私有IP多個并發會話,私人
口)對多個不同的終端在外部網絡上。
錐形NAT
建立一個端口(私有IP之間的綁定後,私人
口)數組和一個(公共IP,公共端口)的元組,一個錐形NAT會
再将此端口用于後續會話綁定
福特,Srisuresh&凱格爾[第4頁]
跨中間件2003年10月網際網路草案P2P應用
應用可以由相同的私有IP位址發起和
端口号,如隻要至少一個會話使用的端口
綁定保持活躍。
例如,在圖中假設客戶A下面啟動兩個
通過一個錐形NAT并發會話傳出,從相同的
内部端點(10.0.0.1:1234)兩個不同的
外部伺服器,S1和S2。該錐形NAT隻配置設定一個公
端點元組,155.99.25.11:62000,為這兩個會議,
確定用戶端的端口的“身份”維持
跨越位址轉換。由于基本的NAT和防火牆做
不要修改端口号為分組流跨越
在中間盒,這些類型的中間件的可以被看作是一個
錐形NAT的退化形式。
伺服器S1 S2伺服器
18.181.0.31:1235 138.76.29.7:1235
| |
| |
+ ---------------------- + ---------------------- +
|
^會話1(A-S1)^ | ^ 2屆(A-S2)^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 155.99.25.11:62000 V | v 155.99.25.11:62000 v
|
錐形NAT
155.99.25.11
|
^會話1(A-S1)^ | ^ 2屆(A-S2)^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 10.0.0.1:1234 V | v 10.0.0.1:1234 v
|
客戶A
10.0.0.1:1234
福特,Srisuresh&凱格爾[第5頁]
跨中間件2003年10月網際網路草案P2P應用
對稱NAT
對稱NAT的,與此相反,不保持一緻的
端口(私有IP,私有端口)和(公網IP之間的綁定,
公共端口)的所有會話。相反,它配置設定一個新的
公共端口,每一個新的會話。例如,假設用戶端A
啟動兩個會議傳出來自同一個端口如上一
與S1和S2。對稱NAT可能配置設定
公共端點155.99.25.11:62000會話1,然後配置設定
不同的公共端點155.99.25.11:62001,當
應用程式啟動會話2. NAT是能夠區分
翻譯的目的兩次會議之間,因為
參與會議(S1那些外部端點
和S2)不同,即使在用戶端的端點辨別
應用程式通過位址轉換邊界丢失。
伺服器S1 S2伺服器
18.181.0.31:1235 138.76.29.7:1235
| |
| |
+ ---------------------- + ---------------------- +
|
^會話1(A-S1)^ | ^ 2屆(A-S2)^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 155.99.25.11:62000 V | v 155.99.25.11:62001 v
|
對稱NAT
155.99.25.11
|
^會話1(A-S1)^ | ^ 2屆(A-S2)^
| 18.181.0.31:1235 | | | 138.76.29.7:1235 |
v 10.0.0.1:1234 V | v 10.0.0.1:1234 v
|
客戶A
10.0.0.1:1234
錐與對稱NAT行為的問題同樣适用
TCP和UDP流量。
錐型NAT是根據NAT如何寬松進一步分類
接受定向到已經建立的(公共的傳入流量
IP,公共端口)對。這種分類一般僅适用于
UDP流量,因為NAT和防火牆拒絕傳入的TCP
連接配接無條件嘗試,除非專門配置
不這樣做。
完全NAT
福特,Srisuresh&凱格爾[第6頁]
跨中間件2003年10月網際網路草案P2P應用
建立公共/私有端口,一個新的綁定後,
即将離任的會議,一個完整的錐形NAT将随後接受
傳入流量從任何相應的公開端口
在公共網絡上的外部端點。完全錐形NAT
有時也被稱為“混雜”NAT。
受限錐形NAT
受限錐形NAT隻轉發傳入資料包定向到
公共端口,如果它的外部(源)IP位址相比對的
到内部主機先前發送節點的位址
一個或多個傳出的資料包。受限錐形NAT有效
提煉拒絕未經請求的傳入的防火牆原則
交通,通過限制入站流量,以一套“已知”的
外部IP位址。
端口受限錐形NAT
端口受限錐形NAT,反過來,隻有轉發傳入
包,如果它的外部IP位址和端口号相比對的那些
到内部主機之前有一個外部端點
發送傳出的資料包。端口受限錐形NAT提供
内部節點的相同水準反對不請自來的保護
傳入通信,一個對稱NAT确實,同時保持了
跨翻譯私有端口的身份。
最後,本文中我們定義為分類新名詞
中間件的P2P相關的行為:
P2P的應用
如本文檔中使用的P2P應用是在一個應用程式
每個參與者的P2P與公共注冊
注冊伺服器,并分别利用其
私有位址或公共端點,或同時,要建立
對等會話。
P2P-中間盒
一個P2P的中間盒是一個允許周遊
P2P應用。
P2P防火牆
一個P2P防火牆是一個P2P的中間盒,可提供防火牆
功能,但不進行位址轉換。
P2P-NAT
一個P2P-NAT是一個P2P的,提供了NAT功能和
也可以提供防火牆功能。在最低限度,一個
P2P的中間盒必須實作UDP流量錐形NAT的行為,
允許應用程式使用,以建立強大的P2P連接配接
在UDP打洞技術。
福特,Srisuresh&凱格爾[第7頁]
跨中間件2003年10月網際網路草案P2P應用
回環翻譯
當在NAT裝置的私有域主機嘗試
連接配接使用相同的NAT裝置後面的另一台主機
主機的公共位址,NAT裝置執行
一個“兩次的NAT”翻譯等同于包作為
如下。源主機的私有位址翻譯
到配置設定給它的公共端點,并且目标主機的公共
端點被翻譯成自己的私有位址,前
該分組被轉發到目标主機。我們稱上述
通過NAT裝置為“環回譯”進行翻譯。
3.在中間件技術的P2P通信
本節将詳細回顧了目前已知的技術
實施在現有中間件的對等通信,
從應用程式或協定設計者的角度。
3.1。中繼
實作同行的最可靠的,但效率最低的方法
在一個中間盒的存在等通信是使
對等網絡通信的樣子的網絡類似的客戶機/伺服器
通過中繼通信。例如,假設兩個客戶
主機A和B,各有發起TCP或UDP的一個連接配接
著名的有一個永久的IP位址伺服器秒。用戶端
駐留在單獨的專用網絡,但是,它們各自的
中間件妨礙任何用戶端直接發起
連接配接到其他。
服務者S
|
|
+ ---------------------- + ---------------------- +
| |
NAT通過NAT乙
| |
| |
用戶端A用戶端B
相反,在嘗試直接連接配接,兩個用戶端可以簡單地
使用伺服器S在它們之間傳遞消息。例如,要
發送消息給客戶B,用戶端A隻是将消息發送到
沿着已經建立的客戶機/伺服器連接配接伺服器S,和
服務者S然後使用其現有的将消息發送到客戶機B
與B的客戶機/伺服器連接配接
這種方法的優點在于,它将始終隻要工作
福特,Srisuresh&凱格爾[第8頁]
跨中間件2003年10月網際網路草案P2P應用
兩個用戶端都連接配接到該伺服器。很明顯
缺點是,它消耗的伺服器的處理能力和
網絡帶寬不必要,和之間的通信延遲
兩個用戶端可能是伺服器是否良好進行甚至增加
連接配接的。轉協定[TURN]定義了實作的方法
中繼在一個相對安全的方式。
福特,Srisuresh&凱格爾[第9頁]
跨中間件2003年10月網際網路草案P2P應用
3.2。連接配接逆轉
第二種技術工作,如果僅在用戶端中的一個是後面的
中間盒。例如,假設客戶A是NAT但客戶背後
B具有全局路由的IP位址,如下面的圖中:
服務者S
18.181.0.31:1235
|
|
+ ---------------------- + ---------------------- +
| |
NAT A |
155.99.25.11:62000 |
| |
| |
用戶端A用戶端B
10.0.0.1:1234 138.76.29.7:1234
客戶A擁有私有IP位址為10.0.0.1,并且應用程式
使用TCP端口1234。此用戶端已經建立了一個連接配接
在公網IP位址18.181.0.31和端口NAT 1235的伺服器S有
配置設定的TCP端口62000,在自己的公網IP位址155.99.25.11,
擔任臨時公共端點位址為A的會話
以S:是以,服務者S認為,客戶A在IP位址
使用端口62000.用戶端B 155.99.25.11,但是,有它自己的
永久的IP位址,138.76.29.7,和對等體的對等應用
在B是在端口1234上接受的TCP連接配接。
現在假設委托人B希望發起對等網絡
與用戶端,A,B通信會話可能首先嘗試
聯系客戶機A的位址,用戶端A認為自己
有,即10.0.0.1:1234,或在位址通過觀察
伺服器S,即155.99.25.11:62000。在這兩種情況下,但是,
連接配接将失敗。在第一種情況下,交通定向到的IP
位址為10.0.0.1将僅僅通過網絡,因為被丢棄
10.0.0.1不是公共可路由的IP位址。在第二種情況下,
從B TCP SYN請求将到達NAT一個指向端口
62000,但NAT A将拒絕連接配接請求,因為隻有
傳出連接配接是允許的。
嘗試和失敗建立到直接連接配接後,
客戶B可以使用伺服器S鍵轉發到用戶端A請求啟動
一個“倒”連接配接到用戶端B.用戶端A,在接收到該
到S中繼的要求,開放時間為B的TCP連接配接到客戶B
公共IP位址和端口号。 NAT A允許的連接配接
繼續,因為它是在防火牆内部始發,與客戶B
因為它不是一個中間盒後面可以接收該連接配接。
福特,Srisuresh&凱格爾[第10頁]
跨中間件2003年10月網際網路草案P2P應用
各種電流對等網絡系統,實作這種技術。
其主要的限制,當然,是它隻隻要可以作為唯一的
通信對等體之一是NAT後面:在日益
其中兩個同齡人NAT後面通常情況下,該方法失敗。
由于連接配接逆轉是不是解決問題的通用解決方案,
它是不推薦作為首要戰略。應用程式可以選擇
嘗試連接配接逆轉,但應能回落
自動上的另一機構,例如,如果沒有一個中繼
“前進”,也不是“逆向”可以建立連接配接。
3.3。 UDP打孔
第三種技術,并且在此主要感興趣的所述一個
檔案,被廣泛地稱為“UDP打孔”。 UDP打孔
依靠共同防火牆和錐形NAT的允許的屬性
設計合理的對等網絡應用程式“打孔”
通過中間盒,并與每個直接連接配接
另外,即使在雙方溝通的主機可能在于中間件後面。
在RFC 3027 [NAT- 5.1節簡要地提及這一技術
PROT],并已非正式地在網際網路上别處描述
[KEGEL]在最近的一些協定[TEREDO,ICE]使用。作為名稱
意味着,不幸的是,這種技術可以可靠地工作隻與UDP。
我們将考慮兩個具體方案,以及如何應用程式可以是
設計優雅地處理他們兩個。在第一種情況下,
較常見的情況,兩個用戶端渴望直接對于─
點對點通信駐留後面兩個不同的NAT。在第二,
這兩個用戶端都處于相同的NAT後面,但不要
一定知道,他們這樣做。
3.3.1。不同的NAT後面同行
假設客戶A和B都具有私有IP位址和謊言的背後
不同的網絡位址轉換。在對等網絡應用程式
對客戶A和B的服務者S運作的每個使用UDP端口1234一
和B具有與伺服器s各自發起的UDP通信會話,
導緻NAT A到配置設定它自己的公共UDP端口62000為A的會話
與S,并導緻NAT B到其端口31000配置設定給B的會話
與S,分别。
服務者S
18.181.0.31:1234
|
|
+ ---------------------- + ---------------------- +
| |
NAT通過NAT乙
福特,Srisuresh&凱格爾[第11頁]
跨中間件2003年10月網際網路草案P2P應用
155.99.25.11:62000 138.76.29.7:31000
| |
| |
用戶端A用戶端B
10.0.0.1:1234 10.1.1.3:1234
現在假設用戶端A希望建立一個UDP通訊
會議直接與用戶端B.如果隻是簡單的發送UDP
消息B的公網位址,138.76.29.7:31000,那麼NAT B就
通常這些丢棄收到的消息(除非它是一個完整的錐形
NAT),由于源位址和端口号不比對的那些
的S,與原來的傳出會議正式成立。
同樣,在B隻需發送一個UDP資訊給A的公鑰
位址,NAT A将通常丢棄這些消息。
假設不過,一個發送一個UDP資訊到B的公網位址,
同時通過S中轉請求給B,問乙
開始發送UDP消息到A的公共位址。 A的離任
針對B的公網位址(138.76.29.7:31000)引起NAT消息
一個開拓A的私有位址之間的新的通信會話
與B的公網位址。同時,B的消息A的公用
位址(155.99.25.11:62000)導緻NAT B到開辟新
B的私有位址和A的公衆之間的通信會話
位址。一旦新的UDP會話中的每個被打通
方向,用戶端A和B可直接互相通信
沒有“引進”伺服器S上進一步負擔
在UDP打洞技術有幾個有用的屬性。一旦
一個直接對等網絡的UDP連接配接已經兩者之間建立
客戶背後中間件,要麼連接配接上一方可以在
轉接管的“介紹人”角色,幫助對方
建立更多的同行對等網絡連接配接,最大限度地減少
初步引入伺服器S的應用程式做的負載
不必試圖明确檢測到它是什麼樣的中間盒的
後面,如果有[STUN],因為上面的程式将建立同行
對等通信信道同樣,如果一種或兩種的客戶
不正好是一個中間盒的後面。該打孔技術
即使使用多個NAT的,其中的一個或兩個自動工作
用戶端從公共網際網路經由兩個或更多的水準除去
的位址轉換。
3.3.2。同樣的NAT之後
現在考慮的場景,其中兩個用戶端(可能
不知不覺)恰好位于同一NAT後面,是以
位于同一專用IP位址空間。用戶端A
建立了與服務者S UDP會話,到常見的NAT有
配置設定公共端口号62000.用戶端B也同樣
福特,Srisuresh&凱格爾[第12頁]
跨中間件2003年10月網際網路草案P2P應用
建立了個會議,并在NAT已指派公
端口号62001。
服務者S
18.181.0.31:1234
|
|
NAT
一個-S 155.99.25.11:62000
B-S 155.99.25.11:62001
|
+ ---------------------- + ---------------------- +
| |
用戶端A用戶端B
10.0.0.1:1234 10.1.1.3:1234
假設A和B使用UDP打洞技術所概述
如上所述使用服務者S建立通信信道作為
介紹人。然後,A和B将學習對方的公網IP位址,
和端口号由服務者S觀察,并開始發送各
在這些公共位址的其他消息。兩個用戶端會
能夠互相這種方式,隻要在NAT進行通信
允許内部網絡打開翻譯UDP會話主機上
與其他内部主機,而不僅僅是與外部主機。我們指
這種情況稱為“環回譯”,因為資料包到達
從專用網絡的NAT被轉換,然後“循環
回“到專用網絡而不是通過被傳遞到
公共網絡。例如,當A發送一個UDP資料包到B的公共
位址,分組最初具有源IP位址和端口号
的10.0.0.1:124和155.99.25.11:62001的目的地。該NAT
收到此資料包,翻譯它有源
155.99.25.11:62000(A的公網位址)和目的地
10.1.1.3:1234,然後将其轉發到B.即使回環
翻譯是由NAT,這個翻譯和轉發支援
步驟是在這種情況下顯然不必要,并有可能增加
潛伏期A和B之間的對話,以及負擔的NAT。
這個問題的解決方案是簡單的,但是。當A和
最初通過伺服器S交換彼此的位址資訊,他們
應包括其自己的IP位址和端口号為“觀察到”
本身,以及它們的位址由S的所觀察到的
客戶然後同時開始在發送資料包到對方
每個他們了解替代的位址,并使用第一
位址通向成功的溝通。如果兩個用戶端
處于同一NAT後面,然後引導到他們的私人包
位址是可能首先到達,産生一個直接
溝通管道不涉及NAT。如果兩個用戶端
不同的NAT後面,然後引導到他們的私人包
福特,Srisuresh&凱格爾[第13頁]
跨中間件2003年10月網際網路草案P2P應用
位址将無法到達對方所有,但用戶端将
希望通過各自的公建立連接配接
位址。重要的是,這些資料包在被認證
一些方法,然而,由于在不同的NAT的情況下,這是完全
可能直指B的私有位址A的郵件到達
A的專用網絡,或者反之亦然一些其他無關的節點。
3.3.3。通過多層NAT分隔同行
在涉及多個NAT裝置某些拓撲,這是不
可能的兩個用戶端之間建立一個“最優”P2P路線
它們而不拓撲的具體知識。考慮
比如下面的情況。
服務者S
18.181.0.31:1234
|
|
NAT點¯x
一個-S 155.99.25.11:62000
B-S 155.99.25.11:62001
|
|
+ ---------------------- + ---------------------- +
| |
NAT通過NAT乙
192.168.1.1:30000 192.168.1.2:31000
| |
| |
用戶端A用戶端B
10.0.0.1:1234 10.1.1.3:1234
假如NAT X是一個大型工業NAT通過網際網路部署
服務提供商(ISP),很多客戶複用到一個很少公開
IP位址和NAT A和B是小額消費NAT網關
由兩個ISP的客戶複的獨立部署
他們的私人家庭網絡到各自的ISP提供的IP
位址。隻有Server S和NAT X擁有公網IP路由
位址;而NAT A和NAT B所擁有的“公網”IP位址
實際上民營ISP的尋址區域,而客戶A和
B的依次位址是私有的NAT A的尋址領域
和B,分别為。每個用戶端發起的出站連接配接
伺服器之前為S,導緻NATA和NAT B分别建立一個單一的
公共/私人翻譯,并導緻NAT X要建立
公共/私有轉換為每個會話。
現在,假設客戶A和B試圖建立一個直接的對于─
福特,Srisuresh&凱格爾[第14頁]
跨中間件2003年10月網際網路草案P2P應用
同行UDP連接配接。最佳的方法是用戶端A
在NAT B分别發送消息給客戶B的公網位址,
192.168.1.2:31000在ISP的尋址區域,并為客戶B以
在NAT B分别發送消息給A的公網位址,即
192.168.1.1:30000。不幸的是,A和B都沒有辦法來學習這些
位址,因為伺服器僅S看到“全球”公網位址
的客戶,155.99.25.11:62000和155.99.25.11:62001。即使
和B有一些方式來學習這些位址,仍然沒有
保證他們會使用,因為位址配置設定
在ISP的私有尋址區域可能與沖突無關
在客戶的私人領域位址配置設定。用戶端
是以别無選擇,隻能利用自己的全球公共位址作為
用S看到了自己的P2P通信,并依靠NAT X來提供
回送的翻譯。
3.3.4。一緻的端口綁定
該打洞技術有一個主要的警告:它隻能當
兩者的NAT是錐形的NAT(或非NAT防火牆),其保持
一緻的端口給定之間的結合(私有IP,UDP私人)
對和(公網IP,UDP公衆)對,隻要UDP端口
正在使用中。配置設定為每個新會話的新的公共端口,作為
對稱NAT呢,就不可能對一個UDP應用程式
再利用已經建立的翻譯與通信
不同的外部目的地。由于錐體的NAT是最
廣泛,UDP打洞技術是相當廣泛
适用;盡管如此部署NAT的一個相當大的部分是
對稱和不支援的技術。
3.4。 UDP端口号預測
|
|
| |
| |
| |
|
|
| |
| |
| |
失敗。
3.5。
包。
如果
為了這
理由;應用
4.1。
4.2。
在這些情況下,
4.3。
4.4。
在其
端口。
協定。
4.5。
5.1。
5.2。
會話。
5.3。
5.3.1。
5.4。
5.5。
5.6。
支援
6.1。
域。
好。
顯然,
消息。
6.2。
6.3。
例如,假設
請求。
這個
位置。
6.4。
例如,一個
這個
第一名。
在這
8.參考
8.1。規範性引用檔案
8.2。
2002年9月。
9.作者位址
麻省理工學院
馬薩諸塞州劍橋02139
版權所有。
其他人,中方對此有何評論或以其他方式解釋衍生作品
或在其實施協助可制備,複制,出版
和分布,在全部或部分,沒有任何限制地
包含在所有的拷貝和派生作品。但是,此
文檔本身可以不以任何方式被修飾,例如通過除去
版權聲明或引用網際網路協會或其他
開發Internet标準在這種情況下的程式
其次,或根據客戶要求把它翻譯成比其他語言
英語。
上述有限許可是永久性的,不會
本文檔及其包含的資訊提供上
“原樣”基礎上,網際網路協會和網際網路工程
IETF拒絕所有明示或默示的擔保,包括
在本文中将不侵犯任何權利或任何暗示的保證
适銷性或适用于特定用途。