🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 ### Candidate * 每个 ICE Candidate是一个地址:IP地址和端口 例如:a=candidate: ...UDP ... 192.168.1.2 1816 typ host 每个候选者包括:协议、IP,端口和类型 ### Candidate类型 * 主机候选者:本机所有IP和指定端口 * 反射候选者:STUN/TURN * 中继候选者:TURN ### ICE具体做那些 * 收集Candidate * 对Candidate Pair排序 * 连通性检查 ## 流程 ICE获取所有地址信息 STUN能获取到NAT的地址 当两端获取都NAT的外网地址后就可以进行p2p穿越了。 如果穿越不了,数据则通过数据转发服务通过 ## 什么是SDP SDP(Session Description Protocol)它是一种信息格式的描述标准,本身不属于传输协议,但是可以被其他传输协议用来交换不必要的信息。 ### SDP例子 ![UTOOLS1591709736916.png](http://yanxuan.nosdn.127.net/8573613871eb1dac934922acc0faa886.png) ## 形成Candidate Pair * 一方收集到所有候选者后,通过信令传递给对方 * 同样,另一方收到候选者后,也做收集工作 * 当双方拿到全部列表后,将候选者形成匹配对儿 ### 连通性检查 * 对候选者进行优先级排序 * 对每个候选对进行发送检查 * 对每个候选对进行接收检查