我正在通過IRC製作一個簡單的文件傳輸程序,當我閱讀時我看到IRC在共享文件時創建了獨立於服務器(DCC,直接客戶端連接)的兩個用戶之間的直接連接。搜索了一段時間後,我發現這個:Direct Connect和Advanced Direct Connect。P2P可以在沒有端口轉發的情況下完成嗎?
這些頁面都不能回答這個問題,我無法擺脫我的頭腦:P2P數據傳輸可能沒有任何用戶做一個特殊的端口轉發? 允許建立連接的中間服務器(如IRC示例中所示)。數據傳輸本身必須獨立於服務器。
我正在通過IRC製作一個簡單的文件傳輸程序,當我閱讀時我看到IRC在共享文件時創建了獨立於服務器(DCC,直接客戶端連接)的兩個用戶之間的直接連接。搜索了一段時間後,我發現這個:Direct Connect和Advanced Direct Connect。P2P可以在沒有端口轉發的情況下完成嗎?
這些頁面都不能回答這個問題,我無法擺脫我的頭腦:P2P數據傳輸可能沒有任何用戶做一個特殊的端口轉發? 允許建立連接的中間服務器(如IRC示例中所示)。數據傳輸本身必須獨立於服務器。
是 - 如果您可以讓外部服務器爲您轉發連接請求,則可以使用所謂的打孔技術來建立直接連接。 This technical paper有更詳細的解釋。
請注意,這些不一定適用於所有 NAT - 但它們在很多NAT上都有效。
實用的JXTA II(可在Scribd上閱讀)有一章說明了執行NAT遍歷的技術。打孔是執行NAT遍歷的技術的子集。
+1打孔,正是我的意思,不知道術語是什麼。 – orlp 2011-01-14 15:04:48