2009-12-07 71 views
4

net.p2p協議是否允許對等體通過Internet連接(通過NAT,防火牆等)。wcf net.p2p:// - 通過互聯網工作嗎?

據我所知,PNRP的地址本,但可以這樣也可以做使用自定義解析時(如果你使用IPv6多數民衆贊成罰款)?即:當對方在雲中註冊時,它是否返回net.p2p:// mypcName/endPoint,還是解析器/ PNRP返回的東西允許在防火牆後面找到pc?有

我是個很艱難的時期找到.NET上的P2P解決方案良好的信息 - 而它的大部分很舊..沒有人知道這是否是一個可行的技術,或者一些可能從.NET很快消失?

CNC中 我的解析器將被公開訪問,同行的後面NAT /防火牆。

由於事先:-)

回答

6

這一切都記錄在MSDN

使用微軟的對等名稱解析協議,它使用Teredo隧道解決IP6/IP4訪問問題。或者編寫你自己的CustomPeerResolverService(這很容易)

1

,如果你想舉辦的防火牆後面的P2P服務器這將是明智的做法在這裏謹慎。特別是在發生NAT的地方,您需要根據ISP提供的外部IP地址進行端口轉發,並將其轉發到您的服務器所在的內部網絡的IP地址。

在.NET Remoting中,最大的侷限性在於它無法通過防火牆,特別是在使用NAT時。遠程處理如果是內部的並且位於防火牆之後,並且數據包永遠不會到達互聯網,那麼它是很好的。

您可能需要穿刺防火牆一個洞,讓輸入/輸出和端口轉發設備的數據包到內部網絡上的IP地址。這可能會帶來一個缺點,即您更可能受到惡意黑客的攻擊,這些惡意黑客可能會窺探通過互聯網來回傳輸的數據包,甚至試圖進入您的網絡。

希望這會有所幫助, 最好的問候, 湯姆。

+0

Skype(或其他聊天程序)如何工作?即:我知道我們登錄到中央服務器,但是當我發送文件給另一個對等方時,它創建了一個直接的對等連接。我的自定義解析器可公開訪問,但對等設備位於NAT的後面 – schmoopy

+0

@Schmoopy:Skype通過在端口80上使用標準http協議來解決此問題,因此防火牆沒有問題。要在Skype v4.1.1075中確認,請單擊工具>選項,高級,連接。然後看看這個標籤頁,你會看到'使用端口80/443作爲傳入連接的替代品'。 – t0mm13b

+0

謝謝tommieb75,有道理 - 有什麼辦法可以用.NET來做到這一點? – schmoopy

1

Skype在發送文件或撥打電話時使用UPnP向自身端口轉發。如果不可用,那麼它使用客戶端服務器模式。嘗試瞭解Nat Traversal和UPnP(我也需要)。