P2P网络通信中NAT穿越技术研究及实现.docVIP

P2P网络通信中NAT穿越技术研究及实现.doc

  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文档。上传文档
查看更多
P2P网络通信中NAT穿越技术研究及实现

P2P网络通信中NAT穿越技术研究及实现   摘要:P2P网络快捷、便利的通信特征使得P2P网络应用备受亲赖,NAT设备的广泛存在限制了P2P网络的应用范围。中间索引服务器作为对等点的联络中心,并记录对等点网络特征,为通信的对等点提供信息查询。以中间索引服务器作为对等点信息查询的中间节点,通过打洞技术实现NAT穿越,有效的解决了不同私有网络主机之间的P2P通信问题。   关键词:P2P点对点 NAT网络地址转换 打洞技术   中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2015)08-0000-00   在P2P(Peer-to-Peer)模型网络中所有节点称为对等点,对等是指每个对等点既是资源的获取者,也是资源的提供者。各对等点具有相同的责任与能力并协同完成任务;对等点之间不依赖集中式服务器而通过直接互连共享信息资源、处理器资源、存储资源等。   近年来,P2P技术正逐渐成为技术界的一个热门话题,与之相关的商业应用的讨论也越来越热烈。而互联网技术过去的发展轨迹向我们昭示着,P2P这一新的网络技术思想,最终也会对网络中的传播形态、传播模式、信息流向、信息内容结构及传播控制等产生重要的影响。随着现在社会以及网络技术的不断发展,个人计算机的不断更新与进步,边缘网络信息的不断增多,在互联网中客户机与服务器通信的模式已经被打破,P2P通信模式的应用却越来越多。但是在目前的网络环境中,广泛存在NAT(network address transition)设备,为不同内部私有网络主机之间通信设置了一道屏障。因此,为了不影响P2P技术在未来的发展,只有实现NAT穿越,才能保证任意两个对等点之间的正常通信。   1 P2P通信中NAT穿越机制   P2P技术实现了端到端之间对等的连接与通信,然而NAT技术允许来自内部网络的数据通过却阻止来自外部未知网络主机的连接。NAT技术和P2P技术之间的矛盾使得部署在不同NAT设备之后的终端之间无法实现P2P通信,严重阻碍了P2P应用的发展。因为NAT技术改变了网络数据包的地址信息,使得对等连接无法成功建立,导致许多P2P应用软件无法运行在NAT网关设备存在的网络环境中,给很多用户带来了很大的不便。   基于UDP协议在P2P网络中穿越NAT设备建立连接的典型穿越方案有STUN、TURN等方式。随着P2P应用软件的日益流行,很多应用己经不是客户/服务器模式,而是对等模式。在对等模式下,任何一方都可能主动向对方发起会话。如果接收方处于内网,而此时接收方并未与发起方建立过通信,那么不管发起方是否具有公共冲地址,由发起方主动给接收方发送的消息都无法到达接收方。NAT只允许内网用户主动向外建立连接,不允许外网用户主动向内网用户发起连接。这就严重的限制了P2P技术的应用。   为使处于NAT设备之后拥有私有IP地址的主机之间建立P2P连接,就必须穿透NAT,下面介绍穿透NAT的策略。   如图1所示,CA-1和CB-1是分属不同内部网络的设备,S是公网上的服务器,由于NAT的透明性,CA-1和CB-1不用关心与S通信的过程,它们只需要知道S开放服务的地址和端口号即可。   假设在CA-1中与S通信的进程使用socket(192. 168.0.2:7000),经NAT-A转换后变成socket(202.103. 142.29:5000);在CB-1 中与S通信的进程使用socket (192.168.1.12:8000),经NAT-B转换后变成了socket (221.10.145.84:6000)。   基于UDP的NAT穿越步骤如下:   (1)CA-1(202.103.142.29:5000)发送数据包给S,请求与CB-1(221.10.145.84:6000)通信。   (2)S将CA-1的地址和端口(202.103. 142.29:5000)发送给CB-1,告之CA-1请求与其通信。   (3)CB-1向CA-1(202.103.142.29: 5000)发送UDP数据包,当然这个包在到达NAT-A 的时候,还是会被丢弃,但是此次通信使得NAT-B记录了这次通信的(目的地址:端口号)。当以此地址和端口为源的数据包到达NAT-B时,NAT-B会将此数据包发送给CB-1,这样就在NAT-B 上打了一个CB-1与CA-1之间的通信孔。   (4)CB-1在NAT-B上开启了与CA-1(202.103.142. 29:5000 )通信孔之后还要向S发送一个消息,告诉S它已经完成与CA-1的通信准备。   (5)S收到CB-1准备完毕的信息后,向CA-1发送一个消息,告知 CB-1 已经完成通信准备。   (6)CA-1向CB-1发送UDP数据包。这个数

文档评论(0)

erterye + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档