- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UDP/TCP 穿越NAT 的P2P 通信方法研究(UDP/TCP 打洞 H
ole Punching)
内容概述:在p2p 通信领域中,由NAT(Network Address Translation,网络地址转换)引
起的问题已经众所周知了,它会导致在NAT 内部的p2p 客户端在无论以何种有效的公网ip
都无法访问的问题。虽然目前已经发展出多种穿越NAT 的技术,但相关的技术文档却很少,
用来证明这些技术的稳定性和优点的实际数据更少。本文的目的在于描述和分析在实际中运
用得最广泛、最可靠同时也是最简单的一种NAT 穿越技术,该技术通常被称为“打洞”技术。
目前,“打洞”技术已经在UDP 通信领域中得到了广泛的理解和应用,在此,也将讨论如何
利用它实现可靠的p2p 的TCP 流通信。在收集了大量的“打洞”技术可以穿越的NAT 设备和
网络的数据以后,我们发现82%的已测 NAT 设备支持UDP 形式的“打洞”穿越,64%的已
测NAT 设备支持TCP 流形式的“打洞”穿越。由于重量级p2p 应用程序(如,VOIP 、BT、在
线游戏等)的用户需求量持续上升,并且该事实也已经引起了NAT 设备生产厂商的广泛关注,
因此,我们认为未来会有越来越多的NAT 设备提供对“打洞”穿越技术的支持。
1、介绍
用户量高速增长以及大量安全问题的巨大压力迫使Internet 技术不断向前发展,但是这些新
兴的技术很大程度地增加了应用程序开发的成本和复杂性。Internet 最初的地址体系是每个
节点有一个唯一不变的全局地址,可以通过该地址直接与任何其它的节点进行通信,而现如
今,该地址体系已经被新的实际上广泛使用的地址体系所替换,新的地址体系是由全局地址
域和通过NAT 接入全局地址域的大量私有地址域组成。在新的地址体系中(如图1 所示),
只有在 “main”全局地址域中的节点可以在网络中很容易地与任何其它的拥有全局地址的节
点通信,因为该节点拥有全局的、唯一的、可路由的地址。在私有网络中的节点可以与在同
一个私有网络中的其它节点进行通信,并且在通常情况下可以向全局地址中的某个“著名”的
节点发起TCP 连接或发送UDP 数据包。NAT 设备在此扮演的角色就是为从内网向公网发
起的连接的节点分配临时的转发session,将来自内网的数据包的地址和端口转换为公网的
地址和端口,将来自公网的数据包的地址和端口转换为内网的端口和地址,同时NAT 将屏
蔽所有未经授权的来自公网的数据包。
新的Internet 地址体系非常适合于“客户端/服务器”这样的通信模式,一个典型的C/S 通信模
式是:客户端在内网(私有地址域),服务器在公网(全局地址域),通过NAT 将内网和
公网连接起来。这种地址体系使得在不同内网(私有地址域)中的两个节点很难直接通信,
而这恰恰是p2p 应用 (如,电话会议或在线游戏)中最基本的要求。很显然,我们需要一种
方法即使在NAT 设备存在的前提下,仍然能够无障碍地实现p2p 通信。
在不同内网的两个节点之间建立p2p 连接的最有效的方法就是“打洞”。该技术在基于UDP
的应用程序中得到了广泛的应用,同样的,该技术也可以用于基于TCP 的应用程序。有趣
的是,与“打洞”字面上的意思刚好相反,该技术不会影响到内网的安全。事实上,“打洞”技
术使得p2p 软件的绝大部分功能都在NAT 设备默认的安全策略的控制之下,这些都由NA
T 设备建立的session 来管理。本文阐述了适用于UDP 和TCP 的“打洞”技术,并详细描述
了重要“打洞”过程中,应用程序和NAT 设备之间的行为。
不幸的是,由于NAT 设备的响应和行为不是标准的,所以没有任何技术可以穿越现有的所
有NAT 设备。本文提供了一些在现有NAT 设备上进行“打洞”的实验结果。我们收集的数据
来自于互联网上使用了“NAT Check”工具并在大量不同生产厂商的NAT 设备上进行“打洞”
实验的用户。由于数据是来自于一个叫做“self-selecting”的用户社区,或许不会完全代表在
Internet 上真正部署和使用的NAT 设备,但是结果无论如何还是很令人兴奋的。
在做基本的“打洞”操作评估的时候,我们应该指出在现有的NAT 设备“打洞”的复杂度上,不
同的复杂度会有不同的结果。但目前我们把讨论的重点集中于开发最简单的,可以应用于任
何网络拓扑结构的、稳定的、有正确NAT 响应的NAT 设备上的“打洞”技术。我们有意避免
使用一些“聪明的小把戏”通过欺骗某些NAT 设备来达到短期内穿越较多的NAT 设备,但从
长期来看会引起网络未知错误的技术。
尽管引入I
文档评论(0)