NAT穿透之ICE协议

时间:2021-05-03 10:18:17

1.什么是ICE协议

    交互式连接建立(Interactive Connective Establishment,ICE)是一种标准穿透协议。他利用STUNTURN服务器来帮助位于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来收集候选地址并重复整个过程。