stun

    2熱度

    1回答

    我想通過NAT向客戶端發送udp數據包,我們都屬於不同的NAT,因此我們熟悉STUN的理論,因此實現此目的的方式是「打孔」通過通過一個簡單的STUN服務器我們的方式.. 基本上服務器直接返回外部IP地址,那就是「連接」,我就可以用它來將數據包發送給其他客戶端的端口但是儘管我們設法讓對方的外部IP和端口..我們仍然無法收到任何對方發送後...在搜索論壇和頭幾個小時的抓撓我們仍然無法想出一個解決方案.

    4熱度

    1回答

    我需要以編程方式確定我的程序中的路由器NAT類型。我確實看過一些關於SO的STUN相關答案和UPnP相關信息。但沒有得到任何明確的答案。 我查看了STUN RFC(rfc 5389),它沒有指定如何確定NAT類型。它確實提到它的前一版本(RFC 3489)提供了確定NAT類型的機制。但也提到 此外。經典的STUN分類NAT類型的算法被發現是錯誤的,因爲許多NAT並不適合那裏定義的類型。 鑑於上述情

    1熱度

    1回答

    我在防火牆後面的服務器上運行TURN服務器(http://tools.ietf.org/html/rfc5766)。該機器具有公用IP地址,用於將傳入和傳出網絡數據包發送到服務器的專用IP地址或從中傳送出去。基本上,服務器不能將套接字綁定到公共IP地址,只能是私有IP地址。運行ifconfig顯示了具有私有IP地址的網絡設備。 當我運行TURN服務器時,必須綁定到私有IP地址(因爲服務器不認爲它連

    3熱度

    1回答

    有一段時間了,我一直在玩Android 2.3 SDK中的SipDemo。 Android的開發者頁面上的文檔寫得很好,但它的 不是很多。它沒有解釋有關IP,端口,NAT和STUN的任何信息。 我知道這些東西應該如何工作,但並沒有說明Android的SIP API如何處理它。或者它處理的NAT在所有... 這裏,有人提到,API確實做公網IP 和端口一些測試,但它是我第一次讀它: http://c

    11熱度

    3回答

    我已經拍了一下在openfire到STUN服務器設置,並從那裏本聲明: 「爲了充當STUN服務器,兩個不同的公網IP地址需要在同一臺機器上,並且每個IP都需要兩個不同的端口號。「 我對google進行了研究,一般stun服務器需要兩個公有IP地址,這是什麼原因?

    0熱度

    2回答

    假設我正在運行綁定到公有IP的TURN服務器(比如說100.0.0.1)。當服務器爲創建分配請求創建一箇中繼端口時,服務器是否會發送與XOR-RELAYED中的綁定(本例中爲100.0.0.1)不同的IP地址? ADDRESS屬性?我不太熟悉網絡知道所有可能的情況,並且RFC 5766沒有具體說明任何事情(據我所知)。 換句話說,XOR-RELAYED-ADDRESS中的IP地址是多餘的嗎?在我考

    1熱度

    1回答

    RFC 5780爲STUN定義了由服務器發送回請求客戶端的STUN消息響應的Response-Origin屬性。 它把它描述爲: 響應-ORIGIN屬性是由服務器插入並表示響應從發送源IP地址和端口。這對檢測雙重NAT配置很有用。它僅存在於綁定響應中。 客戶端如何使用服務器的源IP和端口來檢測雙重NAT配置?無法從UDP數據包的源字段中輕鬆讀取源地址信息,因爲入站NAT僅重新寫入目標地址而不是源地

    5熱度

    1回答

    我將在JavaScript中編寫我自己的STUN實現(服務器端使用NodeJS),並且我正在尋找一個庫來實現我的代碼。 我發現JSTUN和PJNATH,都似乎是由成員的stackoverflow支持。我下載了源代碼,PJNATH約爲15,000行代碼,而JSTUN少於3000. 一個庫比另一個庫更完整嗎? 我需要服務器和客戶端組件,我希望儘可能完成功能,因爲我不想實現TURN(太硬件密集型)。 有

    2熱度

    3回答

    我需要爲我公司的基於Windows的軟件添加一些基於SIP的功能,允許用戶撥打分機並接收通過SIP服務器註冊的分機的呼叫。本質上,我將創建一個簡單的軟電話。該軟件可能在單獨的網絡上運行,因此需要考慮NAT,防火牆和STUN服務器。 我想知道別人是否做過這樣的事情,如果是的話,你有什麼建議如何開始。 我應該從頭開始寫自己的SIP堆棧嗎? 我應該考慮使用OPAL嗎?它看起來很理想,但他們只列出了一家他

    2熱度

    1回答

    我實現STUN客戶端,發送請求到STUN服務器使用指定的週期,在此期間監聽來自STUN服務器的請求: try { byte[] respData = new byte[1024]; DatagramPacket bRespPacket = new DatagramPacket(respData, respData.length); datagramSocket.se