1.什么是ICE协议
交互式连接建立(Interactive Connective Establishment,ICE)是一种标准穿透协议。他利用STUN和TURN服务器来帮助位于NAT之后的端点建立连接。
2.交互式连接建立基本步骤
(1)收集候选传输地址
候选地址是或许可用于接受媒体以建立对等连接的IP地址和端口。候选地址分以下四种类型:
a.主机候选地址:从网卡中获取的本地传输地址。
b.服务器反射地址:从发送给STUN服务器的STUN检查中获取的传输地址。
c.对等反射地址:从其他ICE代理(对等项)发送的STUN连接检查中获取的传输地址。这种候选地址不通过信令通道交换,而是在STUN连接检查期间发现。
d.中继候选地址:媒体中继服务器的传输地址,通过使用TURN分配请求获取。
(2)交换候选项
通过信令通道交换候选地址,然后排序确定优先级。一般而言,主机候选地址优先级最高,其次是反射地址,最后是中继候选地址。
(3)STUN连接检查
ICE发送并收到候选地址,就开始进行连接检查。所有候选地址排队接受检查。
(4)选择选定的对并启动媒体
连接检查完成后,选择对的操作由施控ICE代理执行。
(5)长连接
为确保NAT映射和过滤规则不在媒体会话期间超时,ICE会不断通过使用中的候选地址对发送连接检查。
(6)ICE重新启动
任何一端的ICE代理检测到传输基地址发生更改,都会触发重新启动ICE的事件。这时会导致ICE代理重新执行步骤1来收集候选地址并重复整个过程。