ice-full与ice-lite

ice提名:
本端和对端的ice会收集到很多Candidate,两端会形成NxN的配对,也就是一对对CandidatePair,如果对每个Pair都做连通性检测,会花很多时间,因此有了ice提名,看对方是否同意,同意就对这个Pair做连通性检测,一旦成功建立好连接,就不会对后面的Pair再连通性检测了。

ice角色:
控制角色
被控制角色
控制角色会首选发起连通性检测,如果是full,被控制角色也会发起,当都成功后就算建立起来通信了。

提名规则:
常规提名
激进提名,默认情况下使用,相对与常规提名,步骤比较简单。

ice-full是ice协议的完整实现
ice-lite是ice协议的精简实现,它只实现必要的部分,使得能与ice-full进行通信

为什么有ice-lte:一些客户端放在公网上,没有网络的限制,其他客户端都能与它连接,因此它不需要ice协议里的一些复杂操作,但它依然要与其他通信,因此有些必要的操作要实现。
ice-lite:
不用收集Candidate,只使用host类型的Candidate
不用做连通信检测,也不用维护状态机
当它与ice-full客户端通信时,必须作为被控制端。
当双发都是ice-lite时,双发都不用做连通性检测。

在sdp中的体现:
a=ice_mode:full
或者
a=ice_mode:lite
默认情况就是full,所以这时可以不指定,但是lite时必须指定

常见的开源库使用的ice模式:
Webrtc,ice-full
mediasoup,ice-lite
janus,ice-lite
一般客户端使用full,服务器因为在公网使用lite。

猜你喜欢

转载自blog.csdn.net/weixin_43466192/article/details/127484836
ice