LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

通过NAT穿透实现P2P文件分享与传输系统原理说明

admin
2017年7月27日 9:44 本文热度 7427

由于p2p网络中使用udp报文,所以只介绍udp穿透。

1. NAT类型

  NAT(Network Address Translation, 网络地址转换),是指在IP包通过路由设备时,修改其IP地址信息的技术。一般应用是,通过将内网地址转换为公网地址,从而实现多台主机使用一个IP地址访问互联网,在很多网络环境中,均可见到。这项技术的好处我们暂且不谈,对我们来说它的“坏处”是显而易见的,因为中间存在了NAT,给我们的p2p网络中主机之间的通信造成了不小的麻烦。下面开始先简单了解一下NAT的类型。(这里只做简单介绍,针对“一对多”的NAT映射。更加详细、严谨的说明,请看Wikipedia和相关文档 - RFC xxxx。)

  一般来说,可以把它分为“对称型NAT”和“非对称型NAT(也叫锥形NAT)”。所谓“对称”,是指内部地址与不同的外部地址进行通信的时候,NAT为会话绑定不同的IP和端口。

  对于NAT可分为“不限型”、“IP受限型”和“IP-端口受限型”:

  • 不限:内网主机Peer通过NAT访问外网Peer1:port1建立了会话,NAT为其分配了ip:port地址,则任何外网主机均可通过ip:port访问内网主机Peer
  • IP受限:内网主机Peer通过NAT与外网Peer1:port1建立了会话,NAT为其分配了ip:port地址,则只有Peer1可以通过ip:port访问内网主机Peer
  • IP-Port受限:内网主机Peer通过NAT与外网Peer1:port1建立了会话,NAT为其分配了ip:port地址,则只有Peer1,且从port1发出的会话,可以通过ip:port访问内网主机Peer

     

  正确的判断NAT类型,在p2p网络中的NAT穿透中,是很重要的。NAT类型的判断,是由Stun Server来实现,据我所知,有现成的,也有开源项目,这里将不做介绍~

2. NAT 打洞

  通过以上NAT的特点可知,为了能访问位于受限NAT后面的内网主机Peer,必须让该内网主机先主动向自己发送会话。但是,如何通知内网主机来做这件事呢?这就需要借助NAT Server来实现。NAT Server需要保持可以随时向Peer发送命令的能力,首先就是NAT Server必须位于公网(-_-!),Peer定时向NAT Server发送心跳包。由之前的分析可知,NAT Server可以无障碍的向Peer发送各种指令。如果你对发送心跳包的间隔拿捏不定,不妨设置为10秒

  下面是NAT Server的基本流程

       

  1) 外网主机向NAT Server发送打洞请求

  2) NAT Server向Peer发送打洞命令

  3) Peer向外网主机发送连接报文

  4) NAT为外网主机打开了访问内网Peer的权限,打洞完成。

3. 其他

  根据以上的打洞技术,可以在多种NAT情况下实现穿透,但对于部分情况,例如,两个客户端都处于受限型NAT后面,而其中又至少有一个处于对称型NAT后面,这种技术就无能为力了,此时可以采用“地址-端口预测”的方法(据说迅雷使用了这项技术,据说而已),所谓“端口预测”,是猜测NAT给内网主机分配地址和端口的算法,比如这篇文章的第一幅图里,ip1:port1和ip2:port2,ip1和ip2,port1和port2很可能在数值上相差不远,比如可能是61.22.3.1:13304, 61.22.3.1:13305,这时,通过多发几个端口,就有可能实现打通。实在不行,就只能通过服务器中转了。下面罗列一下在各种NAT情况之下,实现Peer和Peer1之间互联的方法:

  我们把情况假设在p2p网络中,Peer1向Peer索取数据

  


该文章在 2017/7/27 9:44:20 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved