2011-03-23 81 views
2

我一直在閱讀關於TURN和STUN服務器,因爲我想開發一個瀏覽器到瀏覽器的應用程序,以便BrowserA(位於NAT後面)可以與BrowserB(位於NAT後面)通信。在這種情況下,我認爲我應該使用TURN協議。沒有外部服務器的NAT穿越

我的問題:有沒有其他解決方案不需要外部物理服務器?一個正義的軟件解決方案將是完美的。

謝謝

回答

4

答案是否定的。

說明:NAT代表網絡地址轉換。這意味着將只在局域網(局域網)上有效的設備的「私人」IP轉換爲在廣域網上有效的「公共」IP地址(即互聯網的野外通用部分你的NAT的另一面)。

問題是轉換後的地址只能從局域網外部看到。因此,您需要一個可到達的設備讀取它並將其發回給您(或其他同行)。

您將始終需要一個服務器/中央對等端來幫助建立位於不同NAT後面的兩個對等端之間的連接,因爲它們都具有私有IP地址。

1

謝謝。我們假設BrowserA(開始通信的人)知道BrowserB的公有IP,但不是相反。這個問題的答案是一樣的嗎?

+1

請記住,每個連接者B到WAN上的設備,可以使用不同的公網地址。這取決於NAT的翻譯策略。你的問題的子問題是A如何知道B的公有IP?它是a)通過與A的連接B還是b)來自另一個C的同行,他們看到了B的公開譯文?你的新問題的答案是'在大多數情況下'是。該主題在實用JXTA II書籍中進行了討論,該書籍可在線閱讀Scribd。 NAT穿越是一個複雜的課題。 – JVerstry 2011-03-24 23:16:11