TCP协议穿透NAT技术分析

来源 :硅谷 | 被引量 : 0次 | 上传用户:qjunp
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]很多P2P应用程序需要通过TCP协议进行通讯连接,然而NAT技术却日益成为了TCP连接的最大障碍,一些比较流行的P2P应用程序不支持NAT穿透,或者在穿透方面做的不是很好。于是,人们提出采用新兴的SIP协议通过UDP协议建立通讯管道,甚至寄希望于发展中的IPv6协议。这篇论文主要讨论了一种全新的TCP协议P2P通讯方案,并用它成功的连接了两个位于NAT网络下的两个通讯端主机。
  [关键词]NATTCP/IP UDP 桥接主机
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710043-01
  
  一、NAT技术与应用
  
  NAT(The IP Network Address Translator), 也称为为网络地址转换。IP地址有两大分类,一类是私有IP地址,可以称之为内网IP地址。一类是非私有的IP地址,可以称之为公网IP地址。内网IP地址分配的IP地址在全球不惧有唯一性,也因此无法被其它外网主机直接访问。而公网IP地址是指具有全球唯一的IP地址,能够直接被其它主机访问。
  NAT 最初的目的是为使用内网IP地址的计算机提供通过少数几台具有公网的IP地址的计算机访问外部网络的功能。NAT 负责将某些内网IP地址的计算机向外部网络发出的IP数据包的源IP地址转换为NAT自己的公网的IP地址,目的IP地址不变, 并将IP数据包转发给路由器,最终到达外部的计算机。同时负责将外部的计算机返回的IP数据包的目的IP地址转换为内网的IP地址,源IP地址不变,并最终送达到内网中的计算机。如下图:
  


  分享几个公网IP地址访问Internet的功能
  随着网络的普及,IPv4的局限性暴露出来。公网IP地址成为一种稀缺的资源,此时NAT的功能局限也暴露出来,同一个公网的IP地址,某个时间只能由一台私有IP地址的计算机使用。于是NAPT(The IP Network Address/Port Translator)应运而生,NAPT实现了多台私有IP地址的计算机可以同时通过一个公网IP地址来访问Internet的功能。这在很大程度上暂时缓解了IPv4地址资源的紧张。
  NAPT负责将某些内网IP地址的计算机向外部网络发出的TCP/UDP数据包的源IP地址转换为NAPT自己的公网的IP地址,源端口转为NAPT自己的一个端口。目的IP地址和端口不变,并将IP数据包发给路由器,最终到达外部的计算机。同时负责将外部的计算机返回的IP数据包的目的IP地址转换内网的IP地址,目的端口转为内网计算机的端口,源IP地址和源端口不变,并最终送达到内网中的计算机。
  


  计算机分享一个公网IP地址访问Internet的功能
  目前,绝大部分公司的网络架构,都是通过1至N台支持NAPT的路由器来实现公司的所有计算机连接外部的Internet网络的,现在基本把他们统称为NAT网络,我们这篇文章主要讨论NAPT网络。如图2。
  
  二、NAT穿透技术
  
  通过NAT上网的特点决定了只能由NAT内的计算机主动向NAT外部的主机发起连接,外部的主机想直接和NAT内的计算机直接建立连接是不被允许的。IM(即时通讯)而言,这意味着由于NAT内的计算机和NAT外的计算机只能通过服务器中转数据来进行通讯。对于P2P方式的下载程序而言,意味着NAT内的计算机不能接收到NAT外部的连接,导致连接数用过少,下载速度很难上去。因此P2P软件必须要解决的一个问题就是要能够在一定的程度上解决NAT内的计算机不能被外部连接的问题。
  理论上,一台外网IP地址的计算机想和NAT后面的内网计算机通讯,要求NAT后面的内网计算机主动向外网IP地址的计算机发起一个数据包。外网IP地址的计算机利用收到的数据包获取到NAT的外网IP地址和映射的端口,就可以和内网IP的计算机透明的进行通讯了。
  传输数据报文有两种主要的IP协议TCP和UDP协议。TCP协议是可靠的,安全的,面向连接的传输协议。UDP是不可靠的,不安全的,无连接的协议。根据TCP和UDP协议的实现原理和特性,对于NAT来进行穿透,UDP协议最好实现。由于它是无连接的协议,因此只要知道NAT网络的外部地址和端口后,就很容易相互直连。因此,靠一个公网IP地址的服务器就可以帮助两者来建立连接。当两个NAT后面的内网计算机分别连接了公网IP地址的服务器后,服务器可以从收到的UDP数据包中获取到这两个NAT设备的公网IP地址和这两个连接建立的Session的映射端口。两个内网计算机以服务器为媒介相互获取到对方的NAT设备公网IP地址和映射的端口,就可以实现连接。
  
  三、TCP协议NAT穿透原理与实现
  
  大家普遍认为TCP协议由于其需要三次握手的特殊性,没有办法进行有效的NAT穿透直连,其实通过SYN欺骗手段,上述方法也适用于TCP协议。如下图所示,我们将用一个公网主机做桥接,通过欺骗手段,实现TCP直连。
  


  注:图中“I:X”标志表示采用IP地址为I,端口为X进行通讯;“<”和“>”表示数据流向。
  实现上述连接的详细步骤说明:
  第①步:Recipient连接公网桥接主机,公网主机记录Recipient端的NAT地址和端口。
  第②步:Initiator连接公网桥接主机,公网主机记录Initiator端的NAT地址和端口。
   第③步:公网桥接主机接收到Initiator连接请求后,将其NAT地址和端口传给Recipient。
   第④步:公网桥接主机将Recipient的NAT地址和端口回传给Initiator。
   第⑤步:Recipient开始监听通讯端口,等待对方连接请求。
   第⑥步:Recipient发送SYN信号给Initiator的NAT地址和端口,欺骗本地NAT端,使之维持端口开放,等待Initiator发起连接。
   第⑦步:Initiator发起SYN信号给Recipient,双方握手成功,建立TCP直连。
  四、结论
  根据以上通讯协议,一个安全的,基于TCP协议穿透NAT模型就建立起来了。建立连接后的两个端点主机,可以进行正常的数据通讯。注意以上实现步骤不能够打乱顺序,其中第⑤步、第⑥步和第⑦步是非常关键的过程,可以通过TCP协议的端口复用技术实现。
  
  参考文献:
  [1]K. Egevang & P. Francis. The IP Network Address Translator (NAT) [EB/OL]. ftp://ftp.rfc-editor.org/in-notes/rfc1631.txt,1994-05.
  [2]P. Srisuresh & K. Egevang. Traditional IP Network Address Translator[EB/OL].ftp://ftp.rfc-editor.org/in-notes/rfc3022.txt, 2001-01.
  [3]J. Rosenberg. STUN - Simple Traversal of User Datagram Protocol Through Network Address Translators[EB/ OL]. ftp://ftp.rfc-editor.org/in-notes/rfc3489.txt, 2003-03.
  [4]BitTorrent. FAQ[EB/OL]. http://bittorrent.com/FAQ.html, 2006.
  [5]Skype Technologies S.A. Skype Explained[EB/ OL]. http://www.skype.com/products/explained.html, 2005-11-20.
  [6]Skype Technologies S.A. Skype Technical FAQ[EB/ OL]. http://www.skype.com/help/faq/technical.html, 2005-11-20.
  
  作者简介:
  管涛,女,现在是中国海洋大学信息科学与工程学院计算机技术专业工程硕士,主要研究方向为软件工程、网络通讯技术。
其他文献
[摘要]信息和通讯技术的发展使世界变成了地球村,经济全球化时代的到来对中国政府提出了新的观点和挑战。运用“1+1>2”理论创新政府组织结构、组织文化、组织人力资源管理等各方面已经成为可能,“1+1>2”型政府将是一个更有效率、更有弹性、具有更高服务品质的政府。  [关键词]“1+1>2”区域经济一体化 组织结构 组织文化 人力资源管理  中图分类号:F20 文献标识码:A 文章编号:1671-75
期刊
[摘要]20世纪60年代以后,国际投资活动迅猛发展,由此而带动了对外直接投资理论的随之发展。西方资本主义国家的各种对外直接投资理论应运而生,这些理论角度不同、观点迥异、内容纷杂、范围广泛,主要有“投资选择理论”、“资本化率理论”、“垄断优势理论”、“比较优势理论”、“内部化理论”、“产品生命周期理论”、“区位优势理论”等等。在对外直接投资理论方面,中国学者从不同的角度、不同的层面对中国企业对外直接
期刊
[摘要]拟通过对QFP焊点的抗拉强度的影响因素,PBGA焊点的质量检测及强度测试,CBGA焊点的可靠性进行较为系统、深入的研究,为焊点寿命预测提供研究数据支持和理论基础以及具有实用性的评价方法。  [关键词]SMT 可靠性 焊点 强度  中图分类号:TM92 文献标识码:A 文章编号:1671-7597(2008)0820119-01    一、引言    电子电路表面组装技术(又称表面组装技术或
期刊
[摘要]在化肥生产中,为节能降耗和减少环境污染,必须对废液排放进行监测。研究用纳氏试剂分光光度法测定废液中微量尿素含量的测试条件,并通过精密度、回收率以及对检测样品的实验,证明了该方法是准确、可行的。  [关键词]纳氏试剂 尿素 分光光度法 测定  中图分类号:TQ 文献标识码:A 文章编号:1671-7597(2008)0710006-02    一、前言    废液中尿素含量非常低,但排放量很
期刊
[摘要]采用单片机芯片AT89C51和步进电机驱动集成芯片L297、L298N实现步进电机的控制和驱动,进一步了解联合集成芯片控制的可靠性和方便性。  [关键词]单片机 步进电机 L297 L298N  中图分类号:TM306 文献标识码:A 文章编号:1671-7597(2008)0710029-01  随着工业自动化的发展,步进电机的应用越来越广泛。步进电机的控制方案也由原来的硬件搭建发展到单
期刊
[摘要]全面综述VOCs的危害、对其控制的意义和现状,提出了用流化床焚烧技术来处理VOCs。  [关键词]VOCs 挥发性有机化合物 净化方法  中图分类号:X5 文献标识码:A 文章编号:1671-7597(2008)0710014-01  随着工业的迅猛发展和城市化进程的加快,世界的空气质量普遍受到了严重威胁。整个大气污染物质体系中,除了烟尘、粉尘、雾、总悬浮颗粒 (TSP)等颗粒性污染物外,
期刊
[摘要]期刊排架是期刊科学管理的重要环节。介绍Excel程序应用于现刊排架的具体实施步骤和对期刊管理带来的益处。  [关键词]Excel 现刊 排架 应用  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710037-02  期刊排架是期刊科学管理的重要环节,如何借助计算机新技术,科学地管理期刊是当今期刊管理的一个重要课题。下面就如何使用Excel程序对现刊进行科学
期刊
[摘要]借助有限元参数化设计分析方法,研究构成高强CFRP筋锚具系统的主要参数在不同情况下的基本力学性能,进而设计其锚具体系。  [关键词]高强CFRP筋 锚具 有限元 设计 铜套管  中图分类号:TU528 文献标识码:B 文章编号:1671-7597(2008)0710018-01    一、有限元模型的建立    本文选用直径10mm的高强CFRP筋为研究对象,轴向极限抗拉强度3400MPa
期刊
[摘要]主要学习研究H.264标准中的关键技术,H.264标准是最新的视频编码标准,它采用一系列先进的编码技术,在编码效率、抗误码能力、网络适应性等方面表现出超越以往各标准的优势,H.264的研究和应用将大大推进视频技术的发展。   [关键词]H.264 视频编码  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0710040-01  随着科技的发展,人们的生活越来越
期刊
[摘要]隐性知识显性化是知识管理的关键,然而由于隐性知识高度个人化的、较难规范化表达的特点,使其传播、利用受到了限制。在对隐性知识研究的基础上,将web2.0相关的技术与知识转化理论联系起来,对在web2.0环境下隐形知识转化的可行性进行探讨,提出一些解决影响隐性知识转化障碍的方法,以促进其向显性知识的转化。  [关键词]知识管理 隐性知识 转化 web2.0  中图分类号:G2文献标识码:A 文
期刊