【ZeroRange WebRTC】ICE 服务器列表解析(KVS WebRTC)
ICE 服务器列表解析(KVS WebRTC)
本文独立解析 KVS WebRTC 返回的 ICE 服务器列表,帮助你快速理解 STUN/TURN 的各类 urls、transport 参数、username/credential 凭证的用途与时效,以及在真实网络中的选择与回退策略。
1. 示例(日志摘录)
[INFO] [MASTER] ICE servers: [{"urls": "stun:stun.kinesisvideo.us-west-2.amazonaws.com:443"},{"urls": ["turn:35-89-75-127.t-ae7dd61a.kinesisvideo.us-west-2.amazonaws.com:443?transport=udp","turns:35-89-75-127.t-ae7dd61a.kinesisvideo.us-west-2.amazonaws.com:443?transport=udp","turns:35-89-75-127.t-ae7dd61a.kinesisvideo.us-west-2.amazonaws.com:443?transport=tcp"],"username": "...","credential": "..."}
]
2. 字段与语义
-
stun:...:443- 用途:向 STUN 服务器查询“对外可见的 IP/端口”,生成 srflx 候选以提升直连成功率。
- 端口:
443在企业网络下更易被放行(多数环境仅开放 80/443 的对外访问),也更容易通过代理/负载均衡;配合turns(TLS)可利用 TLS 握手与 SNI 进行合规审计与放行。
-
turn:与turns:turn:表示不加 TLS 的 TURN(控制通道明文 TCP/UDP)。turns:表示 TURN over TLS(控制通道走 TLS,典型端口 443),更适合严格防火墙/代理环境。
-
?transport=udp|tcp(中继媒体承载)- 指代“中继候选的底层承载类型”,与 WebSocket 无关:
transport=udp:媒体通过 UDP 中继,队头阻塞小、实时性好。transport=tcp:媒体通过 TCP/TLS 中继,适用于 UDP 全阻的环境,延迟更高。
- 指代“中继候选的底层承载类型”,与 WebSocket 无关:
-
username与credential- TURN 的临时凭证(Long-Term Credential 风格),由 KVS 按通道/时间窗口下发,带 TTL;用于 Allocate/Refresh/ChannelData 等交互。
- 过期后需重新获取 ICE 配置;系统时钟必须准确,否则可能出现“未生效/已过期”。
3. 选择与回退(ICE 策略)
- 默认策略(
iceTransportPolicy=ALL):- 优先 host(本机地址)与 srflx(STUN 反射),失败时再选 relay(TURN)。
- 在 relay 中优先
turn/turns ... transport=udp,若 UDP 不通则回退turns ... transport=tcp。
- 强制中继(
iceTransportPolicy=RELAY):- 仅收集 TURN 候选,牺牲直连的低延迟换取更稳的可达性(企业网络/跨网场景常用)。

4. 可达性与端口(企业网络场景)
- 使用
443提升穿越率:STUN/TURN 都使用 443 能显著提高在仅开放 80/443 的网络中的成功率。 - 防火墙与代理:DPI/代理可能重置长连接;
turns:...(TLS)更易通过策略检查;若 UDP 全阻则使用turns ... transport=tcp。
注意事项:
443并不保证 UDP 可用:很多企业只放行 TCP/443,会阻断 UDP/443;此时需回退到turns ... transport=tcp才能保证可达性。- 安全设备可能进行 TLS 检查(解密)、限制
CONNECT或设置闲置超时;应按代理/防火墙要求发送心跳(Ping/Pong)与合理的保活策略,避免被动断开。

5. 成本与延迟的权衡
- 直连 P2P:媒体不经中继,云侧不承担媒体带宽;延迟最低。
- TURN 中继:A→TURN→B 两段转发,云侧承担双向带宽与出网费用;
tcp/tls路径存在队头阻塞,整体延迟更高。 - 取舍:稳定性/可达性 ↑ ↔ 时延/成本 ↑。
6. 实务建议
- 保持系统时钟准确,避免临时凭证异常;凭证过期时及时重新获取 ICE 配置。
- 区域一致:确保
Region与信令/通道一致,降低跨区时延与出网成本。 - 默认直连:维持
ALL策略,能直连就直连;企业网络预备turns/udp与turns/tcp两种中继变体。 - 带宽自适应与可靠性:启用 TWCC/REMB、合理码率;用 RTCP NACK/PLI 与短 GOP 提升可恢复性。
- 资源管理:无人观看及时释放信令与 TURN 分配,节省中继成本。
7. 术语速查
- host/srflx/relay:本地/服务器反射/中继候选。
- TURN/
turns:中继服务;turns意为 TLS 保护的 TURN 控制通道。 transport=udp|tcp:中继媒体的底层承载类型(UDP 优先,TCP 为退路)。- DTLS/SRTP:握手建密钥、媒体加密;与是否走
udp/tcp(承载)是两个层级。
