哪个服务器处理 ICE 交换(在对等方之间通过潜在路由交换节点)、SDP 信令服务器或 STUN 服务器(或也可以用作 STUN 的 TURN)?
MDN WebRTC 连接显示 SDP 信令服务器处理 ICE 交换。
但是,WebRTC.org 对等连接入门指南指出 STUN 或 TURN 服务器处理 ICE 交换。
由于网络状况会因多种因素而变化,因此通常使用外部服务来发现可能连接到对等方的候选者。此服务称为 ICE,使用 STUN 或 TURN 服务器。
RFC8445-交互式连接建立(ICE)也表明它是使用 STUN 或 TURN 来进行 ICE 交换。
2.1. 召集候选人
为了执行 ICE,ICE 代理会识别并收集一个或多个地址候选。候选具有传输地址 - 特定传输协议的 IP 地址和端口的组合(此处仅指定 UDP)。候选有多种类型;一些来自物理或逻辑网络接口,其他可通过 STUN 和 TURN 发现。
第一类候选者是那些具有直接从本地接口获取的传输地址的候选者。这样的候选者称为“主机候选者”。本地接口可以是以太网或 Wi-Fi,也可以是通过隧道机制获得的接口,例如虚拟专用网络 (VPN) 或移动 IP (MIP)。在所有情况下,这样的网络接口对于代理来说都是本地接口,可以从中分配端口(以及候选者)。
接下来,代理使用 STUN 或 TURN 来获取其他候选人。
获取ICE 候选和交换ICE 候选之间是有区别的。STUN/TURN 服务器用于获取候选。候选是双方可以用来相互通信的潜在网络路径。每个对等体都会发现他们看到的潜在路径。然后他们交换这些候选并就双方共享的最佳路径达成一致。
STUN 服务器只是帮助攻击者发现防火墙漏洞和 IP/端口的助手。TURN
服务器是一个中继,本身就是一条潜在路径。
信令服务器是用于在两个对等体之间实际交换这些发现的候选地址的服务器。
一旦完成交换并且双方就候选对达成一致,则通过其中一个 IP /端口对开始进行通信。