天天看点

网络穿透(nat-udp) 学习记录

网络地址解析的技术(network address translation)的出现在很多程度上减轻了对IPV4地址空间的需要。通过nat可以实现私有网络地址和

                公有网络地址之间的转换。这样 私有网络中的节点不需要公有网络地址就能实现对internet的访问。

nat——分为两大类network address translation(基本的nat) / network address port translation(napt)

                    network address translation(基本的nat):将私网主机的IP地址转换成公网IP地址。但并不将TCP/UDP端口信息进行转换。

                    network address port translation(napt):将私网主机的IP地址转换成公网IP地址。napt检查并修改包的IP地址和TCP/UDP的端口信息。

                                                                                             napt是目前最普遍的情况。以下主要介绍此种方式。

由于nat的存在使Internet形成了新的地址结构,同时也给节点间直接通信带来了问题:

1,私有网络中节点的ip地址是私有地址,在internet上是非法的,因而私有网络中的节点对外通常是不可见的;

2,nat阻止公有网络主动访问私有网络节点;

3,私有网络节点可以作为客户机访问公网,但不能作为服务器向公网提供服务;

而在P2P的应用中每个节点既要作为客户端接受服务,也要作为服务器提供服务。如果不能够穿透nat,p2p网络就无法实现正的对等,也就无法实现

所有信息的交换或者共享,为此下文基于udp穿透nat的技术,并指出影响nat穿透正常工作的关键因素。

nat 穿透技术

考虑直接通信的两个节点可能的nat结构情况:

1;只有一个节点位于nat之后。

2;两个节点位于同一个nate之后,即属于同一个私有网络;

3;两个节点位于不同的nat之后

4;两个节点分别属于不同层次的nat,例如一个在有一个ISP提供的“第一层”nat,另一个在不同的"第二层"nat比如用户的家庭网络总的nat

解决方法:

1,中转——这是最可靠的,但是效率最低的一种方法。         略......

2,逆向链接——假设两个节点A和B连接到一个公共的拥有固定IP地址的服务器,          略......

3,STUN(simple traversal of udp through nats) ——即udp对nat的简单穿越方式,是一种由IETF研制的UDP流协议穿透nat的协议。         略......

4,udp端口号预测——                        略......

5,udp打洞——这是一种简单但是健壮性比较好的nat穿透技术,即使节点在不同的nat之后,也能很容易实现节点的直接连接。udp 打洞通过一个

聚集服务器使两个客户机建立直接的p2p udp会话。假定...........

参考百度文库

​​​http://wenku.baidu.com/link?url=FBSawDErb6-PC4-p3fqoh7KY-88JOXM-PP-​​

继续阅读