gpt4 book ai didi

webrtc - TURN 服务器如何将数据发送到 NAT 后面的对等点?

转载 作者:行者123 更新时间:2023-12-04 01:47:37 25 4
gpt4 key购买 nike

我知道 TURN 中有一个客户端、一个TURN 服务器对等点。客户端本身在 TURN 服务器上创建分配,之后将中继传输地址返回给客户端,以便将数据发送到一个或多个对等点。

我理解客户端如何绕过它的 NAT,但是我在 RFC5766 中没有看到任何关于对等点本身如何能够通过他们的 NAT 从 TURN 服务器接受 UDP 的信息(否则通过或不通过 TURN,它将是未经请求的 UDP)。对等方必须首先联系 TURN 服务器。

有没有我遗漏的步骤?是否将中继传输地址发送到对等点,以便在 TURN 服务器与其对等点之间进行通信之前可以开始 UDP 打洞?

最佳答案

客户端在 TURN 服务器上创建分配,例如在 8.8.8.8 端口 3478 上运行。为此,它将 STUN 数据包从本地套接字发送到该地址。所有 NAT(忽略阻止 UDP 的网络)将允许 TURN 服务器通过该连接发送回 UDP 数据(有时称为 NAT 绑定(bind))。 TURN 服务器还可以通过该连接发送它想要的任何其他数据。

对等点不知道这个分配。它只知道 TURN 服务器告诉客户端的中继地址,例如8.8.8.8 端口 61468。客户端必须将此地址发送给对等方,例如作为 ICE 进程中信令的一部分(参见 https://www.rfc-editor.org/rfc/rfc5245)。

然后对等点可以发送 8.8.8.8 端口 61468(有时客户端还必须告诉 TURN 服务器对等点可以发送的 ips;参见 https://www.rfc-editor.org/rfc/rfc5766 中的权限)。然后,TURN 服务器将转发它在该端口上接收到的任何流量作为 STUN 数据指示(或通过 channel 绑定(bind),请参阅 RFC 5766)。 NAT 可以接受,因为它来自 8.8.8.8 端口 3478。

客户端还可以通过 STUN 发送指示向对等方发送数据。 TURN 服务器将解包此数据并从中继地址(8.8.8.8 端口 61468)发送它

就双方的 NAT 而言,他们只看到与其客户端首先发送数据包的 ips 和端口的通信。

关于webrtc - TURN 服务器如何将数据发送到 NAT 后面的对等点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54622919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com