2016-10-17 63 views
1

我們假設我們使用啓用WebRTC的Asterisk。當我們試圖在不同網絡上的兩臺主機之間建立連接時,我們需要使用STUN服務器來正確確定它們的公共地址,以防它們在NAT後面。但是,只要連接的兩端駐留在同一網絡中,我們就不需要使用STUN服務器。所以問題是如果有可能以某種方式確定客戶端是否在同一個網絡上?有條件地使用STUN服務器

+2

實際上,使用STUN服務器是查找兩個客戶端是否在同一個網絡上的好方法,但是由於使用STUN是你想要避免的,所以不需要。 :) – jib

回答

1

不可靠。

但這沒關係。 STUN便宜又快捷。它只回應你公開可見的IP:端口地址。當WebRTC協商連接時,將使用所有發現的地址(本地映射和stun映射)。

如果兩個節點在同一個專用LAN上,WebRTC使用的算法將收斂到使用兩個節點的私有IP地址,而不是從STUN獲得的映射地址。當通過STUN連接時,連接仍然是直接的而不是中繼。同樣,如果您還使用TURN中繼,則WebRTC(以及任何類似於ICE的協議)將在返回到TURN之前默認爲私有和STUN地址。

相關問題