当前位置:文档之家› 对等网络中穿越NAT解决方案的研究

对等网络中穿越NAT解决方案的研究

0引言最近几年,对等网络(peer-to-peer ,P2P )迅速成为计算机界关注的热门话题之一,财富杂志更将P2P 列为影响Internet 未来的4项科技之一。

目前,越来越多的用户在使用对等网络应用如即时通信的ICQ 、Yahoo Messenger 、MSN Messenger 以及国内的QQ 等,实时比赛和游戏,项目组内协作以及与其它人共享文件如eDonkey 、eMule 、BT 等,内容分发,分布式计算。

P2P 打破了传统的Client/Server 模式,在网络中的每个结点的地位都是对等的[1]。

每个结点既充当服务器,为其它结点提供服务,同时也享用其它结点提供的服务。

网络地址转换(network address translation ,NAT )是一个In-ternet 工程任务组(internet engineering task force ,IETF )标准,允许一个整体机构以一个公用IP (internet protocol )地址出现在In-ternet 上。

它是一种把内部专有域网络地址(IP 地址)翻译成合法网络IP 地址的技术。

NAT 功能通常被集成到路由器、防火墙、ISDN 路由器或者单独的NAT 设备中。

NAT 能解决IP 地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障[2]。

它解决问题的办法是:在内部网络中使用内部地址,通过NAT 把内部地址翻译成合法的IP 地址在Internet 上使用。

但是随着对等网络技术的广泛应用,越来越多的局域网主机参与到对等网络中来。

而NAT 之后的主机IP 地址是私有域地址(简称内网),例如10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255,192.168.0.0~192.168.255.255,这些地址在因特网上是不能被识别或直接使用的。

因此,因特网上主机不能主动访问NAT 之后的主机,而位于不同NAT 之后的主机之间更是无法相互识别而不能直接交换信息。

而对等网络通信的最重要的特性就是任何主机能够对等通信,因而在对等网络中必须解决穿透NAT 实现双向对等通讯的问题。

1P2P 与NAT 原理1.1P2P 网络P2P 技术不仅为个人用户提供了前所未有的自由和便利,收稿日期:2007-06-03E-mail :lyyl2322@基金项目:国家863高技术研究发展计划基金项目(2007AA010503);哈尔滨工业大学(威海)校研究基金项目(HIT (WH )200702)。

作者简介:刘扬(1972-),男,陕西武功人,硕士,讲师,研究方向为计算机网络安全、协议分析及安全保障;董开坤(1969-),男,博士,副教授,研究方向为高性能计算、网络安全;刘杨(1978-),女,硕士,助教,研究方向为计算机网络安全;迟乐军(1955-),男,教授,研究方向为计算机理论及应用。

对等网络中穿越NAT 解决方案的研究刘扬,董开坤,刘杨,迟乐军(哈尔滨工业大学(威海)计算机科学与技术学院,山东威海264209)摘要:网络通信的发展极其迅速,与传统通信一样,P2P 通信同样受到NAT 穿越问题的制约。

针对对等网络在NAT 上进行穿越的问题,分析了对等网络通信受到NAT 影响的原因,提出了一种检测NAT 类型的方法。

在该方法的基础上,对基于锥型网络地址转换和对称型网络地址转换的P2P 网络穿越NAT 过程进行了分析,对现有的穿越方案进行了总结,并提出了一种综合解决方案。

关键词:对等网络;网络地址转换;锥型网络地址转换;对称型网络地址转换;穿越网络地址转换中图法分类号:TP393.08文献标识码:A文章编号:1000-7024(2008)06-1311-05Research on solution method of NAT hole punching of P2PLIU Yang,DONG Kai-kun,LIU Yang,CHI Le-jun(Department of Computer Science and Technology,Harbin Institute of Technology,Weihai 264209,China )Abstract :As traditional communication the network communication is now in rapid development,and P2P communication is also face the problem of NAT hole punching,aimed at this problem the reason why network address translation affect the P2P network communi-cation is analyzed and the method to check the type of network address translation is proposed.Based on this method some analysis on the hole punching process of clone network address translation and symmetric network address translation is made,the existing hole pun-ching methods is summarized and one comprehensive solution method is proposed.Key words :peer to peer;network address translation;clone network address translation;symmetric network address translation;network address translation hole punching2008年3月计算机工程与设计Mar.2008第29卷第6期Vol.29No.6Computer Engineering and Design同时也试图有效地整合互联网的潜在资源,将基于网页的互联网转变成动态存取、自由交互的海量信息网络。

P2P 网络是一种具有较高扩展性的分布式系统结构,其对等概念是指网络中的物理节点在逻辑上具有相同的地位,而并非处理能力的对等。

P2P 系统最大的特点就是用户之间直接共享资源,其核心技术就是分布式对象的定位机制,这也是提高网络可扩展性、解决网络带宽被吞噬的关键所在。

迄今为止,P2P 网络已经历了3代不同网络模型,包括以Napster 为代表的集中式目录结构、以Gnutella 为代表的查询洪泛方式以及最流行的P2P 软件之一的KaZaa 为代表的半分布式结构。

根据CA 公司统计,全球KaZaa 的下载量超过2.5亿次。

使用KaZaa 软件进行文件传输消耗了互联网40%的带宽[3]。

之所以它如此的成功,是因为它结合了Napster 和Gnutella 共同的优点。

P2P 技术的发展以及P2P 与网格技术的结合,将影响整个计算机网络的概念和人们的信息获取模式,P2P 已成为互联网内容发展的重点方向。

1.2NAT 原理NAT 通过网络地址翻译在两个地址域(外网和内网)之间进行地址的翻译和映射。

NAPT (network address/port transla-tion ),在地址翻译的基础上,还需要进行端口的映射。

不同的应用协议(如HTTP 、FTP 等),采用不同的TCP 或者UDP 端口[4]。

在很多情况下,映射不但是地址映射也是端口的映射。

如图1所示。

NAT 内网IP 地址为10.0.0.4,外网地址为138.76.29.7;内网中IP 为10.0.0.1端口3345的A 主机要通过NAT 访问外网IP 为128.119.40.186端口80的B 主机。

主机A 将源IP :10.0.0.1源端口3345目的IP :128.119.40.186目的端口80的分组发送到10.0.0.4上,由NAT 更改分组源IP 为外网IP :138.76.29.7并动态分配源端口5001,同时在其NAT 翻译表中为该分组登记一条从内网到外网的映射,10.0.0.1:3345←→138.76.29.7:5001,主机A 发送的分组经过NAT 转发变成了源IP :138.76.29.7源端口5001目的IP :128.119.40.186目的端口80的分组,该分组已经成为能被主机B 识别的分组。

当从主机B 响应分组到达138.76.29.7时,通过查找NAT 翻译表的映射关系,就可以将信息递交到主机A 上。

2对等网络通过NAT 通信存在的问题虽然NAT 技术使得局域网的用户可以共享一个IP 地址访问Internet ,节省了IP 地址,同时也起到了防火墙的作用。

但NAT 的存在给对等网络应用也带来了问题,因为NAT 不允许外部主机主动访问内部主机[5]。

这种局限性却不适合对等网络应用的需要,主要存在的问题表现在:内网主机的IP 地址是私有地址,它们在Internet 上是无效的,如果发送方B 位于外网,NAT 又尚未给位于内网的接收方A 分配公有地址,此时发出的数据包将无法送达对方;如果发送方B 位于某NAT 之后,接收方A 位于另一NAT 之后,由于A 与B 相互都不具有外网IP ,因而无法相互通信;即使内网主机的IP 地址已知,NAT 仍然阻止外网主机主动访问内网主机;内网主机可以作为客户机访问外网,但不能作为服务器向外网提供服务;对于一个ISP 来说,用户的企业网络或者家庭网络可以不直接接入外网,而是接入一个ISP 自己的网络。

这个ISP的网络相对于In-ternet 来说,这个网络是一个“更大”的内网,而相对于连接到其上的企业网/家庭网络来说,又相当于一个外网。

这样做的好处是可以保证更好的管理和安全性,同时也更加节约公共IP 地址。

但是对于NAT 穿越来说,则增加了更多的困难和问题的复杂性[6]。

上述这些问题阻碍了对等网络应用,如果不能够穿过NAT ,对等网络就无法实现真正的对等,也就无法实现所有信息的交换或共享。

3NAT 穿越原理NAT 能解决IP 地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障,但NAT 的特点决定了只能由NAT 内的计算机主动向NAT 外部的主机发起连接,外部的主机想直接和NAT 内的计算机直接建立连接是不被允许的,这意味着由于NAT 内的计算机和NAT 外的计算机只能通过服务器中转数据来进行通讯。

相关主题