根据janus的ICE流程抓包记录rfc5245 ICE标准中的一些流程
1、reflex及relay候选地址收集(rfc5245-4.1.1.2)
agent通过不带验证信息的Binding请求(stun协议)或Allocate请求(必须得有鉴权)[turn协议]获取server reflexive或relay地址。agent可能会按照一定的时间间隔发起新的stun或turn请求,比如500ms,这个请求可能是上次请求的重试也可能是新的host候选地址对。
抓包
2、peer reflexive地址获取
该地址的获取和其它地址都不同,它是agent通过nat网关发送stun binding请求到它的对端时,agent端的nat给分配的ip及端口。是在连通性检查过程中获得的。(rfc5245-4.1.1)
3、连通性检查(rfc5245-7)
《1》、如果使用relay地址进行连通性检查那么必须在check之前发送CreatepPermission命令去在turn服务器端创建一个perssion。
《2》、检查通过Binding请求进行,带有对端和己端用户名,鉴权信息。
4、Binding indication信令用于保活(rfc5245-B.7)
该信令用于保活媒体流的透传通道。
5、Triggered Check(被动的检查)
收到对端的连通性检查之后本端进行的连通性检查,称为trigger check。这个检查是基于接收到的对端发送的候选地址连通性检查信令。
需要注意的是连通性检查是两端独立开始的,但若是一端收到另一端的连通检查信息则回复后就能认为这对地址连通检查通过。