NAT原理与NAT的简单穿越.docxVIP

  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文档。上传文档
查看更多
NAT原理与NAT的简单穿越

/bo083/articles/2170189.htmlNAT原理与NAT穿越最近在看东西的时候发现很多网络程序中都需要NAT穿越,特意在此总结一下。先做一个约定:内网A中有:A1()、A2()两用户网关X1(一个NAT设备)有公网IP 内网B中有:B1()、B2()两用户,网关Y1(一个NAT设备)有公网IP 公网服务器:C () D (0)NAT原理网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。下面介绍两类不同方式实现的NAT:NAT(Network Address Translators):称为基本的NAT在客户机时 :4000——:8000在网关时 :4000——:8000服务器C :8000其核心是替换IP地址而不是端口,这会导致使用4000端口后,如何处理?具体参考RFC 1631基本上这种类型的NAT设备已经很少了。或许根本我们就没机会见到。2. NAPT(Network Address/Port Translators):其实这种才是我们常说的 NATNAPT的特点是在网关时,会使用网关的 IP,但端口会选择一个和临时会话对应的临时端口。如下图:在客户机时 :4000——:8000在网关时 :62000——:8000服务器C :8000网关上建立保持了一个:62000的会话,用于:4000与:8000之间的通讯。对于NAPT,又分了两个大的类型,差别在于,当两个内网用户同时与8000端口通信的处理方式不同:2.1、Symmetric NAT型 (对称型)在客户机时 :4000——:8000 :4000——0:8000在网关时,两个不同session但端口号不同 :62000——:8000 :62001——0:8000服务器C :8000服务器 D 0:8000这种形式会让很多p2p软件失灵。2.2、Cone NAT型(圆锥型)在客户机时 :4000——:8000 :4000——0:8000在网关时,两个不同session但端口号相同 :62000——:8000 :62000——0:8000服务器C :8000服务器D 0:8000目前绝大多数属于这种。Cone NAT又分了3种类型:a)Full Cone NAT(完全圆锥型):从同一私网地址端口:4000发至公网的所有请求都映射成同一个公网地址端口:62000 ,可以收到任意外部主机发到:62000的数据报。b)Address Restricted Cone NAT (地址限制圆锥型):从同一私网地址端口:4000发至公网的所有请求都映射成同一个公网地址端口:62000,只有当内部主机先给服务器C 发送一个数据报后,才能收到发送到:62000的数据报。c)Port Restricted Cone NAT(端口限制圆锥型):从同一私网地址端口:4000发至公网的所有请求都映射成同一个公网地址端口:62000,只有当内部主机先向外部主机地址端口:8000发送一个数据报后,才能收到:8000发送到:62000的数据报。 穿越NAT的实现A1在客户机时 :4000——:8000X1在网关时 :62000——:8000服务器C :8000B1在客户机时 :4000——:8000Y1在网关时 :31000——:8000两内网用户要实现通过各自网关的直接呼叫,需要以下过程:1、 客户机A1、B1顺利通过格子网关访问服务器C ,均没有问题(类似于登录)2、 服务器C保存了 A1、B1各自在其网关的信息(:62000、:31000)没有问题。并可将该信息告知A1、B2。3、 此时A1发送给B1网关的:31000是否会被B1收到?答案是基本上不行(除非Y1设置为完全圆锥型,但这种设置非常少),因为Y1上检测到其存活的会话中没有一个的目的IP或端口于:62000有关而将数据包全部丢弃!4、 此时要实现A1、B1通过X1、Y1来互访,需要服务器C告诉它们各自在自己的网关上建立“UDP隧道”,即命令A1发送一个 :4000——:31000的数据报,B1发送一个:4000——:62000的数据报,UDP形式,这样X1、Y1上均存在了IP端口相同的两个不同会话(很显然,这要求网关为Cone NAT型,否则,对称型Symmetric NAT设置网关将导致对不同会话开启了不同端口,而该端口无法为服务器和对方所知,也就没有意义)。5、 此时A1发给Y1,或者B1发给X1的数据报将不会被丢弃且正确的被对方收到.综合P2P可实现的条件需要:1、 中间服务器保存信息、并能发出建立UDP隧道的命令2、 网关均要求为Cone NAT类型。Symmetric NAT不适合。3、 完全圆锥型网关可

文档评论(0)

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

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

1亿VIP精品文档

相关文档