Tha*_*bha 5 nat stun webrtc turn
我一直在阅读一些有关 WebRTC 的内容,但我不明白为什么如果只有 1 个对等方使用对称 NAT,而另一个既不使用对称也不使用端口限制 NAT,那么为什么我们需要 Turn 服务器,所以让 \xe2\x80\x99s假设 A 使用 Full Cone NAT,B 使用对称 NAT:
\nSTUN SERVER会将B的正确IP地址发送给A,将A的正确IP+端口地址发送给B。
\nA 尝试连接到 B(现在 A 将能够接受来自 B 的消息,因为它位于目标地址列中的\xe2\x80\x99)。
\nB 尝试连接到 A,这将允许从 A 发送到 B 的请求(ofc A 需要将端口更新为从 B 而不是 Sdp 接收到的端口)。
\n我是否遗漏了一些东西,或者这是正确的(并已实现),还是这太复杂而无法实现?
\n如果这是正确的,那么理论上,如果我\xe2\x80\x99m对等体A并且我使用Full Cone NAT,任何对等体B都可以连接到我(只要我先发送连接请求),而不需要转动服务器。
\n谢谢
\n如果对称 NAT 环境仅更改端口,则您对于 Full Cone NAT 连接的看法是正确的。打孔步骤就可以了。
但许多企业和移动环境具有复杂的路由方案和疯狂的网络环境,与传统的家庭网络路由器不同。这些环境不仅仅是连接到电缆调制解调器的小型路由器盒。它是使用一组 IP 地址的复杂路由器和负载平衡器阵列。每个出站连接可能会获得与先前连接不同的 IP 地址。所以从技术上来说它是“对称NAT”。
因此,在此环境中的节点从 STUN 服务器获取外部 IP/端口对后,后续发送到对等地址的数据可能也会更改端口和 IP 地址。
因此,当 UDP 数据包在打洞步骤期间到达时,NAT 看到的 IP 地址与预期完全不同。因此,这里需要一个中继地址(TURN)。
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |