TURN 中继在 TCP 上究竟是如何工作的?
假设具有服务器自反地址 a1:a2 的用户 A 向 TURN 服务器发送分配请求,然后分配 t1:t2 并打开 t1:t2 和 a1:a2 之间的连接,用户 B 如何连接到 t1:t2 进行中继给用户 A 的数据?
我想我可能误解了 TURN 的工作原理 - 任何澄清都会有所帮助!
TURN 中继在 TCP 上究竟是如何工作的?
假设具有服务器自反地址 a1:a2 的用户 A 向 TURN 服务器发送分配请求,然后分配 t1:t2 并打开 t1:t2 和 a1:a2 之间的连接,用户 B 如何连接到 t1:t2 进行中继给用户 A 的数据?
我想我可能误解了 TURN 的工作原理 - 任何澄清都会有所帮助!
在您的示例中, t1:t2 将是全局可访问的(t1 IP 地址是公共地址)。所以 UserB 会知道从网络层向哪里发送数据包。如果 UserA 能够获取绑定(来自 TURN 服务器的 a1:a2 -> t1:t2),那么 UserA 也可以对 SIP 信令进行修复。
客户端还可以将外部地址/端口目的地之一设置为活动目的地。设置活动目的地后:
TURN 服务器将源自活动地址/端口的数据包直接转发到客户端,无需 TURN 数据包封装。
当 TURN 服务器从客户端接收到未封装的数据包时,TURN 服务器将这些消息转发到活动目的地。((C)Scott Firestone 的视频和语音会议基础知识)
您可以到这里看看http://blogs.technet.com/b/mspfe/archive/2012/04/17/understanding_2d00_nat_2d00_when_2d00_setting_2d00_up_2d00_lync_2d00_part_2d00_2_2d00_stun_2d00_and_2d00_turn_2d00_explained.aspx或这里https://profcollab.wordpress.com/2015/08/27/nat -and-firewall-traversal-for-sip-and-h-323/进行一些解释。本质上,TRURN 服务器作为地址受限的 NAT 工作。