借用Licdoe的代码来分析下ICE的实现
首先licode 用了两套ice库,不知道为啥,nicer 和Libnicer ,但感觉比较偏重于libnicer,所有着重以Libnice为主
二者分家的地方在 DtlsTransport类的构造函数中
licode 的底层传输采用了dtls的协议,这块不着重分析,知道就可以了。
下面开始
第一个问题:
ICE的线程模型
ICE代码还没看,但从Licode的应用来看,线程是由外面给出的,这个从ICE的使用说明可以看到:
具体使用情况也是需要传进一个Loop,
第二个问题:
ICE的底层传输用的那一套
现在看来,ICE的底层库,应该是本身自带的Udp库
第三个问题: ICE是数据封装层,它和应用层的关系如何
ICE的上层应用是dtls ,证据如