ICE
ICE=remove 参数的作用是移除 SDP 中的 ICE 相关信息,让我详细解释一下:
ICE 简介
ICE (Interactive Connectivity Establishment) 是一种 NAT穿透技术,用于在复杂的网络环境中建立媒体连接。
SDP中的ICE信息
在包含 ICE 的 SDP 中,通常有以下内容:
移除前的 SDP 示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14v=0
o=- 123456 123456 IN IP4 192.168.1.100
s=-
c=IN IP4 192.168.1.100
t=0 0
a=ice-ufrag:123456
a=ice-pwd:abcdef1234567890
a=fingerprint:sha-256 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55
:66:77:88:99:AA:BB:CC:DD:EE:FF
a=setup:actpass
a=candidate:1 1 UDP 2130706431 192.168.1.100 8000 typ host
a=candidate:2 1 UDP 1694498815 203.0.113.100 8000 typ srflx raddr 192.168.1.100 rport
8000
m=audio 8000 RTP/AVP 0 8 101
移除后的 SDP 示例:
1
2
3
4
5
6v=0
o=- 123456 123456 IN IP4 192.168.1.100
s=-
c=IN IP4 192.168.1.100
t=0 0
m=audio 8000 RTP/AVP 0 8 101
- 移除的内容
- ICE 用户名片段:a=ice-ufrag:
- ICE 密码:a=ice-pwd:
- 证书指纹:a=fingerprint:
- 连接建立方式:a=setup:
- 候选地址:a=candidate: 行
- 为什么要移除 ICE
- 简化处理:RTPEngine 会重新生成适合当前网络环境的媒体地址
- 网络控制:让代理服务器完全控制媒体路径
- 安全考虑:防止内部网络拓扑信息泄露
- 兼容性:某些终端设备可能不支持或不需要 ICE
移除 ICE 后,RTPEngine 会根据配置重新生成适合的媒体连接信息。