基于stun, turn, ice协议的NAT穿越.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于stun, turn, ice协议的NAT穿越 分类: VoIP tech 2012-10-08 20:23 115人阅读 评论(0) 收藏 举报 stun, turn, ice协议概述 stun,turn,ice是ietf提出的处理voip网络中nat穿越问题的协议族。 ??? stun 可以处理大部分nat问题,turn是stun协议的一个增强版,专用于处理对称形nat问题,而ice则是综合stun及turn的产物,是一个框架,综合运用STUN和TURN的结构,它提供可靠的VoIP或视频通话配置以及媒体传输,通过一个SIP供给/应答模型供端点交换多个候选IP地址和端口(比如私有地址和TURN服务器地址)。 ??? 采用此框架可以完美解决voip 中 媒体传输中遇到的 nat及防火墙问题,而信令穿越则需要另一套机制,过去人们提出了多种处理nat问题的方案,但都有局限性,采用ice则完全解决了这些问题,ice的另一个特点时能够通过一定机制检测nat类型,从而决定采用何种方案处理,比如对于大多数呼叫,媒体可能直接用p2p方式即可,而有些方案可能不论什么nat类型都用media-relay方式,这种方式增加了端到端延时及丢包概率。 ??? stun和turn都是client/server协议,说白了就是客户端向服务器要自己的公网地址及端口,然后放在自己invite请求的sdp消息体及对invite的 200 ok ?sdp 消息体中。 大多数sip客户端和服务器支持stun协议,所以都有一定缺陷。 /perfectpdl/article/details/7636067 TURN协议深入剖析 概括一下: 若一个主机位于NAT后面,那么在特定的环境下,它不可能跟其他主机通信。这种情况下,这台主机有必要通过一个转发的主机来实现通信。有种协议叫TURN,允许主机通过转发来和其他主机通信。TURN协议与其他转发协议不同的地方在于它允许客户端用一个转发地址同多个主机交流。 ?1 简介 一个位于NAT后面的主机可能相同其他位于NAT后面的主机交流。为了达到目的,可以用打洞的方法来找到一条路径,但是不通过转发。 当两台主机都位于对称NAT之后时,打洞技术可能会失败。 TURN协议允许一个位于NAT之后的主机请求另一台主机转发。客户端可以通过服务端转发包到另一端。并且可以控制转发如何结束。这个客户端通过在服务端获取一个IP端口对,也被称作转发端口地址来进行上述操作。 当对方发送一个包到转发端口地址时,服务器就将这个包转发到客户端。当一个客户端发送一个数据包到服务器时,服务器转发这个包到转发端口地址所对应的客户端。 一个采用TURN协议的客户端一定有一些方法把自己的转发地址告诉对方,并且知道每个通信伙伴的IP端口地址对。 若TURN协议被用作ICE协议中,那么它的转发IP端口对和其他伙伴的IP端口对都包含在ICE候选者信息中。例如,如果TURN和ICE被SIP用于媒体传输时,SIP以会话协议的方式,将ICE候选者的信息放进SIP消息体中。若TURN和ICE协议被用在其他会话协议中,那么【MUSIC-ICE-NONSIP】将提供一些会话协议必须实现的功能。 虽然TURN服务器的应用能使两个位于NAT之后的主机交流成为可能,但是这对TURN服务器来说开销太大。因而,最后是在直接交流没法执行的时候,才用TURN服务器。当客户端与伙伴通过ICE协议来确定通信路径的时候,ICE协议将首先通过打洞的方法来寻找一条直接的路径来让两方通信,仅仅当这条路径找不到的时候才会用TURN服务器。 TURN原来被设计用来支持基于SIP的多媒体会话信号传输。 TURN被设计成ICE中的用于NAT穿越的一部分。 TURN是一个STUN的扩展版本。大多数情况下,TURN消息是STUN格式的消息。该文档的读者应该熟悉STUN协议。 2 大体看一下操作 这一节给出了TURN操作的一个预览。 在一个传统的配置中,TURN客户端被连接到私有网络中,并且通过这个一个或多个NATS连到共有网络中。在这个没有共有网络中,是TURN服务器。其他的就是这个TURN客户端想连接的同伴客户端。这些同伴可能处在NAT的后面也可能没有处在NAT的后面。客户端用这个服务器作为一个转发来发送数据包到其他的伙伴,并且通过转发接收来自同伴机的数据包。 图1显示了一个经典的过程。这个图中,TURN客户端和TURN服务端被NAT分割。客户端在私有网络中,服务端在公网中。NAT是地址端口对称。 客户端通过一个叫做客户端主机传输地址得到IP地址端口对同server通话。 客户端从它的主机传输地址中传输TURN消息到一个TURNServer的一个端口地址中。 由于这个客户端位于NAT的后面,这个服务器根据客户端在NA

文档评论(0)

PPT精品 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档