通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
Male不在线
com

军衔等级:

  四级通信军士

注册:2003-4-10
跳转到指定楼层
1#
发表于 2004-7-13 17:32:00 |只看该作者 |倒序浏览
急!


---
NAT分为两种,一种是非对称的,另外一种当然就是对称的了。

NAT的作用是地址转换,用于内网和外网之间的地址映射,具体点说就是:192.168.0.1:1234经过NAT发送信息访问202.119.0.1:80,于是192.168.0.1:1234就在NAT上面注册为218.109.3.5:54342(上述数字都是假设)。这个时候202.119.0.1:80看到的是218.109.3.5:54342这个EndPoint,因此会传的信息也自然发送到218.109.3.5:54342——实际上是NAT的地址,NAT经过查表,将这个信息转发到192.168.0.1:1234上面。

非对称的意思是:当192.168.0.1:1234在NAT上面注册了218.109.3.5:54342这个外网地址之后,外网的所有EndPoint都可以通过这个218.109.3.5:54342来访问192.168.0.1:1234。

而对称的意思是:注册的时候实际上还注册了对方的IP。因此在上例当中,除了202.119.0.1:80之外,任何其他的EndPoint要访问218.109.3.5:54342都会被拒绝!也就是达到了一定的防火墙的功能。

无论是非对称还是对称的NAT,如果我们希望不通过拥有固定IP的外网服务器进行跨NAT的P2P访问,都需要知道双方在NAT上面注册的映射EndPoint。这个问题比较好办,但是也离不开中间服务器的帮助:双方通过向中间服务器发送信息,使得中间服务器知道双方在各自的NAT上面注册的EndPoint到底是多少,然后就可以获得对方的NAT EndPoint,通过向对方的NAT EndPoint发送信息来达到P2P通信的目的。注意,在进行P2P通信的时候,实际上已经脱离了中间服务器的转发工作了。

问题是,如果是对称的NAT,光是向中间服务器发送消息是不够的,因为那样之能够让中间服务器和某个点进行通信,而无法P2P——因为点B的NAT EndPoint并没有在点A的NAT上面注册。而第一篇文章所说的方法,就是为了突破对称NAT的。方法就是设法让双方同时向对方NAT发送信息,利用网络延时提前注册对方的NAT EndPoint。这个方法的一个前提就是,同一个内部End Point在向不同外部End Point发送信息时,在NAT上面注册的NAT EndPoint是同一个End Point。还是在上面那个例子:如果192.168.0.1:1234往另外一个地方比如说202.0.0.1:1234发送信息的时候,NAT会分配另外一个EndPoint比如说218.109.3.5:31456,那么上面这种方法就不可能成功了。这也许就是第一篇文章当中提到的有可能失败的情况吧。

举报本楼

本帖有 6 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-17 13:27 , Processed in 0.141625 second(s), 16 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部