udptcp 打洞(穿越nat)技术

udptcp 打洞(穿越nat)技术

ID:20029924

大小:211.31 KB

页数:21页

时间:2018-10-09

udptcp 打洞(穿越nat)技术_第1页
udptcp 打洞(穿越nat)技术_第2页
udptcp 打洞(穿越nat)技术_第3页
udptcp 打洞(穿越nat)技术_第4页
udptcp 打洞(穿越nat)技术_第5页
资源描述:

《udptcp 打洞(穿越nat)技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、(转)UDP/TCP打洞(穿越NAT)技术2010-04-1716:03转自:http://www.cnblogs.com/LeoWong/archive/2009/09/25/1574265.html内容概述:在p2p通信领域中,由NAT(NetworkAddressTranslation,网络地址转换)引起的问题已经众所周知了,它会导致在NAT内部的p2p客户端在无论以何种有效的公网ip都无法访问的问题。虽然目前已经发展出多种穿越NAT的技术,但相关的技术文档却很少,用来证明这些技术的稳定性和优点的实际数据更少。本

2、文的目的在于描述和分析在实际中运用得最广泛、最可靠同时也是最简单的一种NAT穿越技术,该技术通常被称为“打洞”技术。目前,“打洞”技术已经在UDP通信领域中得到了广泛的理解和应用,在此,也将讨论如何利用它实现可靠的p2p的TCP流通信。在收集了大量的“打洞”技术可以穿越的NAT设备和网络的数据以后,我们发现82%的已测NAT设备支持UDP形式的“打洞”穿越,64%的已测NAT设备支持TCP流形式的“打洞”穿越。由于重量级p2p应用程序(如,VOIP、BT、在线游戏等)的用户需求量持续上升,并且该事实也已经引起了NAT设

3、备生产厂商的广泛关注,因此,我们认为未来会有越来越多的NAT设备提供对“打洞”穿越技术的支持。1、介绍用户量高速增长以及大量安全问题的巨大压力迫使Internet技术不断向前发展,但是这些新兴的技术很大程度地增加了应用程序开发的成本和复杂性。Internet最初的地址体系是每个节点有一个唯一不变的全局地址,可以通过该地址直接与任何其它的节点进行通信,而现如今,该地址体系已经被新的实际上广泛使用的地址体系所替换,新的地址体系是由全局地址域和通过NAT接入全局地址域的大量私有地址域组成。在新的地址体系中(如图1所示),只有

4、在“main”全局地址域中的节点可以在网络中很容易地与任何其它的拥有全局地址的节点通信,因为该节点拥有全局的、唯一的、可路由的地址。在私有网络中的节点可以与在同一个私有网络中的其它节点进行通信,并且在通常情况下可以向全局地址中的某个“著名”的节点发起TCP连接或发送UDP数据包。NAT设备在此扮演的角色就是为从内网向公网发起的连接的节点分配临时的转发session,将来自内网的数据包的地址和端口转换为公网的地址和端口,将来自公网的数据包的地址和端口转换为内网的端口和地址,同时NAT将屏蔽所有未经授权的来自公网的数据包。

5、新的Internet地址体系非常适合于“客户端/服务器”这样的通信模式,一个典型的C/S通信模式是:客户端在内网(私有地址域),服务器在公网(全局地址域),通过NAT将内网和公网连接起来。这种地址体系使得在不同内网(私有地址域)中的两个节点很难直接通信,而这恰恰是p2p应用(如,电话会议或在线游戏)中最基本的要求。很显然,我们需要一种方法即使在NAT设备存在的前提下,仍然能够无障碍地实现p2p通信。在不同内网的两个节点之间建立p2p连接的最有效的方法就是“打洞”。该技术在基于UDP的应用程序中得到了广泛的应用,同样的,

6、该技术也可以用于基于TCP的应用程序。有趣的是,与“打洞”字面上的意思刚好相反,该技术不会影响到内网的安全。事实上,“打洞”技术使得p2p软件的绝大部分功能都在NAT设备默认的安全策略的控制之下,这些都由NAT设备建立的session来管理。本文阐述了适用于UDP和TCP的“打洞”技术,并详细描述了重要“打洞”过程中,应用程序和NAT设备之间的行为。不幸的是,由于NAT设备的响应和行为不是标准的,所以没有任何技术可以穿越现有的所有NAT设备。本文提供了一些在现有NAT设备上进行“打洞”的实验结果。我们收集的数据来自于互

7、联网上使用了“NATCheck”工具并在大量不同生产厂商的NAT设备上进行“打洞”实验的用户。由于数据是来自于一个叫做“self-selecting”的用户社区,或许不会完全代表在Internet上真正部署和使用的NAT设备,但是结果无论如何还是很令人兴奋的。在做基本的“打洞”操作评估的时候,我们应该指出在现有的NAT设备“打洞”的复杂度上,不同的复杂度会有不同的结果。但目前我们把讨论的重点集中于开发最简单的,可以应用于任何网络拓扑结构的、稳定的、有正确NAT响应的NAT设备上的“打洞”技术。我们有意避免使用一些“聪明

8、的小把戏”通过欺骗某些NAT设备来达到短期内穿越较多的NAT设备,但从长期来看会引起网络未知错误的技术。尽管引入IPv6会极大地增加互联网的地址空间,从而减少对于NAT设备的需求量,但短期内IPv6确实增加了对NAT设备的需求量,因为NAT设备本身提供了一种方便的方法进行IPv4与IPv6地址域转换。另外私有网络上建立匿名和加密访

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。