ICE学习总结完整版.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Project name Research Report - PAGE 1 - CONFIDENTIAL Product nameProduct Research Report - PAGE 1 - ICE概念 交互式连接建立(Interactive Connectivity Establishment ——ICE)草案是由IETF的MMUSIC工作组开发出来的,它所提供的是一种框架,使各种NAT穿透技术可以实现统一。ICE定义的是一种标准化的方法,能够确定客户端之间存在的是哪一种类型的NAT防火墙,并且确定一连串可以用于实现连接的IP地址。通过使用多种协议及网络连接机制,如STUN(Simple Traversal of UDP Through NATs——STUN),TURN(Traversal Using Relay NAT——TURN),ICE可以了解到客户端所在网络结构以及这些设备可以实现通信的各类网络地址。 ICE的基本流程其实很清晰,分两个步骤,第一步就是收集各种类型的地址,第二步就是将本地和远端的地址进行配对,排序,然后执行连通性检查。 NAT穿越技术分析 如果通信的双方有一方或者两方在NAT后,就需要进行NAT穿越。 2.1 NAT类型 NAT有4种不同的类型 1) Full Cone 2) Address Restricted Cone 3) Port Restricted Cone 以上三种NAT通称Cone NAT(圆锥形NAT).我们只能用这种NAT进行UDP打洞. 4) Symmetric(对称形) 对于这种NAT。连接不同的外部Server,NAT打开的端口会变化。也就是内部机器A连接外网机器B时,NAT会打开一个端口,连接外网机器C时又会打开另外一个端口。 2.2常用穿越技术的比较 比较常用的NAT穿越技术有STUN,TURN,但是STUN不支持TCP连接的穿越,也不支持对称NAT。TURN虽然支持TCP连接的应用也可以穿越对称NAT,但是TURN的局限性在于所有报文都必须经过TURNServer转发,增大了包的延迟和丢包的可能性,而且服务器的负担比较大。 ICE将STUN与TURN相结合,如果可以用STUN穿越,就建立P2P连接,否则就通过TURN服务器进行中转,建立relay连接。 获取候选地址 候选地址包括主机候选地址(host Candidate),服务器反向候选地址(srflx--Server Reflexive Candidate),对端反向候选地址(prflx-- Peer Reflexive Candidate)和中继候选地址(relayed Candidate) 3.1 host Candidate host Candidate,也就是本地网络接口的地址。 3.2 Server Reflexive Candidate Server Reflexive Candidate,是通过主机候选地址向STUN服务器发送STUN请求获得的网络地址。实际上就是终端的网络包经过一重或多重NAT穿透之后,由STUN服务器观察到的经过NAT转换之后的地址。 图3.1 获取服务器反向候选地址 3.3 Peer Reflexive Candidate Peer Reflexive Candidate,通过从主机候选地址发送一个STUN请求到运行在Peer候选地址上的STUN服务器而获取的候选地址。 图3.2 获取对端反向候选地址 3.4 Relayed Candidate Relayed Candidate,通过从主机候选传输地址发送一个STUN分配请求到STUN服务器而获取的一个候选地址。它是STUN服务器为STUN请求的发起方在本机上分配的代理地址,所有被路由到该地址的网络包将会被转发到服务器反向地址,继而穿透NAT发送到终端,实际上就是中继服务器的地址。当NAT是对称式的防火墙时,STUN无法穿透的情况下由中继服务器来转发数据。 图3.3 获取中继转发地址 连通性测试 当呼叫端收集到所有的候选地址后,通过某种信令(sip,jingle等)将候选地址转发给应答端,应答端就获得了呼叫端的所有候选地址;而应答端同样也执行该过程。这样的话,呼叫端和应答端都有一个完整的包含了双方候选地址的列表,然后准备执行连通性检查。 首先呼叫端和应答端分别对地址列表进行配对,例如本地有n个地址,远端有m个地址,那么配成n*m对。然后对这些地址对进行连通性检查,连通性检查是通过发送和接收STUN请求和应答完成的。若通信双方的某一个地址对通过一个完整的四次握手,那么该地址对就是有效地址对。 4.1四次握手 当通过地址对中的本地地址向远端发送一个STUN请求,并且成功收到

文档评论(0)

132****1393 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档