十七、网络传输基本知识-ICE

注:以下图片来自慕课网,侵权可删

ICE (Interactive Connectivity Establishment)

将NAT TURN打包在一起,做一个最优选择
首先尝试p2p,如有两台服务通过,也会选择一个最优服务
不通则选择TURN,如有多个节点,上海TURN不通,则选择北京的TURN
总之,将所有可能性罗列好,在其中找到一条最优路径,将数据发送


ICE就是让两个终端去得到所有能够连接到对方终端的通路,并找出最优的可通通路

  1. 第一种通路,本机IP,如果两个终端在一个服务下,直接通过本机IP连通
  2. 第二种通路,穿越NAT,双方终端访问STUN服务,都拿到外网IP,尝试P2P穿越,成功既可以连接
  3. 第三条通路,P2P不成功,通过中继服务器Relay server
ICE 具体工作
  1. 收集 Candidate
  2. 对 Candidate Pair 排序 (对候选者对 进行排序,认为优先级高的 先做测试)
  3. 连通性检查(尝试连通)
ICE Candidate

每个 candidate(候选者)是一个地址
例如:a = candidate: ...UDP/TCP ...192.169.1.2 1816 type host
每个候选者包括:协议、IP、端口、类型

Candidate 类型
  • 主机候选者(网卡自己的IP地址和端口)
  • 反射候选者(通过NAT之后的IP地址和端口)
  • 中继候选者(通过TURN服务开通的IP地址和端口)
形成 Candidate Pair
  1. 一方收集到所有候选者后,通过信令传给对方
  2. 同样,另一方收到候选者后,也做收集工作
  3. 当双方拿到全部列表后,将候选者形成配对儿
连通性检查
  1. 对候选对进行优先级排序
  2. 对每个候选对进行发送检查
  3. 对每个候选对进行接收检查(和发送同时进行)

SDP

SDP(Session Description Protocol)它只是一种信息格式的描述标准,本身不属于传输协议,但是可以被其他传输协议用来交换必要的信息(媒体信息,网络信息)。


SDP的例子,其中Candidate只有主机候选者和反射候选者

你可能感兴趣的:(十七、网络传输基本知识-ICE)