织梦CMS - 轻松建站从此开始!

罗索

非对称NAT与非对称NAT

落鹤生 发布于 2011-11-09 10:25 点击:次 
从功能上来说,NAT可以分为:传统NAT,双向NAT(Bi-Directional NAT),两次NAT(Twice NAT),多宿主NAT(Multihomed NAT),但是市场上现在最多的是传统NAT,尤其是NAPT设备,所以本文的穿透也是针对NAPT展开,其类型主要细分为以下四种类型
TAG:

NAT,即网络地址转换,是指在一个网络内部,根据需要可以随意自定义的IP地址,而不需要经过申请。而当内部的计算机要与外部internet网络进行通讯时,NAT设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址并进行通信。

从功能上来说,NAT可以分为:传统NAT,双向NAT(Bi-Directional NAT),两次NAT(Twice NAT),多宿主NAT(Multihomed NAT),但是市场上现在最多的是传统NAT,尤其是NAPT设备,所以本文的穿透也是针对NAPT展开,其类型主要细分为以下四种类型:

1) 非对称NAT(Cone NAT)

其下又细分为:

a) 全ConeNAT(Full Cone NAT)

打洞创建原则:向外部任意IP发送一个package,就形成了一个映射,即创建了一个洞。

接收数据原则:只要过来的数据是发送到打洞的PC,就可以顺利通过。

b) 限制性ConeNAT (Restricted Cone NAT)

打洞创建原则:向外部某个IP发送一个package,就形成了与此IP的一个映射。

接收数据原则:满足两个条件:1,此数据来自此IP;2,此数据要发送到打洞的PC。

c) 端口限制性 ConeNAT(Port Restricted Cone NAT)

打洞创建原则:向外部某个IP的某个Port发送一个package,就形成了与此IP/Port对的一个映射。

接收数据原则:满足两个条件:1,此数据来自此IP的此Port;2,此数据要发送到打洞的PC。

2) 对称NAT(Symmetric NAT)对称NAT是指把所有来自相同内部IP地址和端口号,到特定目的1P地址和端口号的请求映射到相同的外部TP地址和端口。如果同一主机使用不同的 源地址和端口对,发送的目的地址不同,则使用不同的映射。只有收到了一个IP包的外部主机才能够向该内部主机发送回一个UDP包。对称的NAT不保证所有 会话中的(私有地址,私有端口)和(公开IP,公开端口)之间绑定的一致性。相反,它为每个新的会话分配一个新的端口号。

传统P2P文件传输在NAT检测方面比较薄弱,没有一个系统全面地检测方法,其中对对称型NAT的检测几乎没有。本文这里会运用连接服务器和NAT检测辅助服务器对各种常用NAT做一个全面地检测,尤其关注对称型NAT。    

下图是检测的流程图:

其中:连接服务器为A,NAT检测服务器为B。

第一步:当一个接收客户端(Endpoint-Receiver ,简称 EP-R)需要接收文件信息时,在其向连接服务器发送文件请求的同时紧接着向检测服务器发送NAT检测请求。此处再次强调是“紧接着”,因为对于对称型 NAT来说,这个操作可以直接算出其地址分配的增量(⊿p)。

第二步:当EP-R收到A或B的反馈信息时发现其外部地址与自身地址不同时就可以确定自己在NAT后面;否则,就是公网IP。

第三步:由服务器A向B发送其获得的EP-R的外部映射地址(IPa/Porta),服务器B获得后进行比较,如果端口不同,则说明这是对称型NAT,同时可以直接计算出其分配增量:

⊿p=Portb-Porta

第四步:如果端口号相同,则由B向EP-R的Porta发送连接请求,如果EP-R有响应,则说明EP-R没有IP和Port的限制,属于全ConeNAT类型。

第五步:如果没有响应,则由服务器B使用其新端口b’向EP-R的Portb端口发送连接请求,如果有响应,则说明EP-R只对IP限制,属于限制性ConeNAT类型;否则就是对IP和port都限制,属于端口限制性ConeNAT类型。    

通过上述五步基本可以全部检测出EP-R是否在公网,还是在某种NAT后面。

转自http://pennlee.blog.163.com/blog/static/5259930200752511814652/

(pennlee)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201111/15292.html]
本文出处:pennlee.blog.163.com 作者:pennlee
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容