我知道 TURN 中有 a client、 aTURN server和peer(s)。客户端本身在 TURN 服务器上创建一个分配,之后relayed transport address将 a 返回给客户端,以便将数据发送到一个或多个对等点。
我了解客户端如何绕过其 NAT,但是我在 RFC5766 中没有看到任何有关对等方本身如何能够通过其 NAT 从 TURN 服务器接受 UDP 的内容(否则无论是否通过 TURN,它都将是主动提供的) UDP)。对等点必须首先联系 TURN 服务器。
我缺少一个步骤吗?是否relayed transport address发送到对等方,以便在 TURN 服务器与其对等方之间进行通信之前可以开始 UDP 打洞?
客户端在 TURN 服务器上创建分配,例如在 8.8.8.8 端口 3478 上运行。为此,它将 STUN 数据包从本地套接字发送到该地址。所有 NAT(忽略阻止 UDP 的网络)都将允许 TURN 服务器通过该连接发回 UDP 数据(有时称为 NAT 绑定)。TURN 服务器还可以通过该连接发送它想要的任何其他数据。
对等方不知道此分配。它只知道 TURN 服务器告诉客户端的中继地址,例如 8.8.8.8 端口 61468。客户端必须将此地址发送给对等方,例如作为 ICE 过程中信令的一部分(请参阅https://www.rfc -editor.org/rfc/rfc5245)。
然后,对等方可以发送 8.8.8.8 端口 61468(有时客户端还必须告诉 TURN 服务器对等方可以发送的 ip;请参阅https://www.rfc-editor.org/rfc/rfc5766中的权限)。然后,TURN 服务器将转发它在该端口上接收到的任何流量作为 STUN 数据指示(或通过通道绑定,请参阅 RFC 5766)。NAT 可以接受,因为它来自 8.8.8.8 端口 3478。
客户端还可以通过 STUN 发送指示向对等方发送数据。TURN 服务器将解开此数据并将其从中继地址(8.8.8.8 端口 61468)发送
就双方的 NAT 而言,它们只能看到与其客户端首先发送数据包的 ip 和端口进行通信。
| 归档时间: |
|
| 查看次数: |
2188 次 |
| 最近记录: |