【ZeroRange WebRTC】ICE 服务器列表解析(KVS WebRTC)

ICE 服务器列表解析(KVS WebRTC)

本文独立解析 KVS WebRTC 返回的 ICE 服务器列表,帮助你快速理解 STUN/TURN 的各类 urlstransport 参数、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 全阻的环境,延迟更高。
  • usernamecredential

    • 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/udpturns/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(承载)是两个层级。

相关推荐
笔夏1 天前
【安卓学习之webRTC】学习相关资料
android·学习·webrtc
每日出拳老爷子1 天前
【浏览器方案】只用浏览器访问的内网会议系统设计思路(无客户端)
运维·服务器·webrtc·实时音视频·流媒体
softshow10264 天前
Vue3 :封装 WebRTC 低延迟视频流与 WebSocket 实时状态驱动的大屏可视化
websocket·网络协议·webrtc
雨落秋垣6 天前
大屏可视化系统:WebRTC视频流与WebSocket实时数据集成方案
websocket·网络协议·webrtc
此颜差矣。7 天前
封装 WebRTC 低延迟视频流与 WebSocket 实时状态驱动的大屏可视化
websocket·webrtc·低延迟视频流
metaRTC7 天前
metaRTC 8.0 重磅发布:专为新一代 AI 终端而生的实时通信引擎
ai·webrtc
三十_A10 天前
WebRTC 入门:一分钟理解会议系统的三种架构(Mesh/SFU/MCU)
架构·webrtc
qq_3106585111 天前
webrtc源码走读(五)核心引擎层——传输模块
服务器·网络·音视频·webrtc
三十_11 天前
WebRTC 入门:一分钟理解会议系统的三种架构(Mesh/SFU/MCU)
前端·后端·webrtc