计算机网络打洞技术

  • 格式:docx
  • 大小:89.21 KB
  • 文档页数:9

计算机网络打洞技术

适用文档

Internet 的迅速发展以及 IPv4 地点数目的不足使得 NAT设施获取了大规模的应用,但是这也给愈来愈多的端到端通信也带来了许多的麻烦。 一般来说 ,NAT 设施同意内网内主机主动向公网内主机发送数据 , 但却严禁内网外的主机主动向

内网内的主机传达数据。因为好多的会话两方处于不同的 NAT设施后 , 它们通信

一般经过公网服务器中转, 而要成立 P2P通信,则一定解决 NAT穿越问题才能成立通信。

注册服务器S NAT穿越模块

Internet网络

NAT-A NAT-B

RJ45 RJ45 双向透明变换模块 双向透明变换模块

RS232 RS232

实物棋盘A 实物棋盘B

第三章 NAT 穿越模块的设计与实现

NAT 是介于内网和公网之间的设施,公网中的 IP 地点是全世界独一的,而在

内网中的 IP 地点能够重复出现,但不可以出此刻公网中 [18] 。NAT的基本功能就是

经过一个或几个 lP 地点,来实现局域网上的全部主机都能够对因特网进行接见

[19] 。

NAT实现了公网地点和内网地点之间的映照,可从两个方面来归纳: (1) 当

内网内的 IP 包经过 NAT需要流入公网时, NAT将此 IP 包的源 IP 地点和端口改

为 NAT接口上的一个公网地点和端口; (2) 当公网中的 IP 包经过 NAT 需要接见内网资源时, NAT将此 IP 包的目的地点和端口改为内网 IP 地点和端口。

文案大全 计算机网络打洞技术

适用文档

A1到B的UDP数据包经过NAT-A后

SRC:202.198.154.1:6000 公网 B主机

NAT-A DST:10.200.146.5:8000 10.200.146.5

公网

私网 Internet网络

B回发的UDP数据包

SRC:10.200.146.5:8000

DST:202.198.154.1:6000

A1到B的UDP数据包

SRC:192.168.0.5:5000 B回发的UDP数据包经过NAT-A 后

DST:10.200.146.5:8000 SRC:10.200.146.5:8000

DST:192.168.0.5:5000

私网A1 主机

图 3.1 UDP 包经过 NAT原理图

图 3.1 是 UDP包经过 NAT后的表示图,能够看出 UDP包从内网主机 A 发出时,抵达 NAT后它的源端 IP 和端口都已经改变。同时从主机 B的 UDP包发往 NAT-A

的公网 IP 和端口后, NAT将其自动转发给主机 A。

3.1 NAT 穿越方案剖析

3.1.1 NAT 的种类

NAT 设施的种类关于穿越 NAT,有着十分重要的影响 , 依据其端口映照方

式 ,NAT 可分为以下 4 类 , 前 3 种 NAT种类可统称为 cone NAT。

(1) 全克隆 ( Full Cone) : NAT 把全部来自同样内部 IP 地点和端口的恳求映照到同样的外面 IP 地点和端口。任何一个外面主机均可经过该映照发送 IP 包到该内部主机。

(2) 限制性克隆 (Restricted Cone) : NAT 把全部来自同样内部 IP 地点和端

口的恳求映照到同样的外面 IP 地点和端口。可是 , 只有当内部主机先给 IP 地点

为 X 的外面主机发送 IP 包, 该外面主机才能向该内部主机发送 IP 包。

(3) 端口限制性克隆 ( Port Restricted Cone) : 端口限制性克隆与限制性克

隆近似 , 不过多了端口号的限制 , 即只有内部主机先向 IP 地点为 X, 端口号为 P 的

外面主机发送 1 个 IP 包, 该外面主机才能够把源端口号为 P 的 IP 包发送给该内

部主机。

(4) 对称式 NAT ( Symmetric NAT) : 这类种类的 NAT与上述 3 种种类的不同 ,

在于当同一内部主机使用同样的端口与不同地点的外面主机进行通信时 , NAT对

该内部主机的映照会有所不同。 对称式 NAT不保证全部会话中的内有地点和公然

IP 之间绑定的一致性。相反 , 它为每个新的会话分派一个新的端口号。所以即使是同一台外面主机的不同连结, 其分派的端口号都是不同样的, 往常都是在本来

文案大全 计算机网络打洞技术

适用文档

的端口号上加一。

因而可知, Symmetric Cone条件最严格, Port /Restricted Cone次之, Full

Cone 条件最不严格。因为我国的网络技术应用得比较晚,所以能够说绝大多半

的网络都是 cone NAT[20] 。

3.1.2 NAT 给 P2P通信带来的问题研究

NAT的存在,使得局域网的用户能够共享一个 IP 地点接见因特网,解决了

IP 地点的不足,同时起到了防火墙的作用。可是 NAT的存在给 P2P网络也带来

了问题 :(1) 内网主机的 IP 地点是虚构的,在因特网上是非法的,因此内网主机

对公网是不行见的。 (2) 即使内网内主机的 IP 地点已知, NAT仍旧阻挡公网主机主动接见内网主机。 (3) 内网主机能够作为客户机接见外网,但不可以作为服务器

向外网供给服务 [21] 。

NAT产生各种问题的原由主假如 NAT不同意外面主机主动接见内部主机,这样固然有安全性高的长处, 可是同时带来服务性能低的不良成效。 上述这些限制使得在 NAT的网络中,外网主机没法穿过 NAT主动与内网主机进行通信, P2P网

络各主机没法相互发现对方进行平等信息互换, 特别是位于不同 NAT以后的不同内网中的机器,更是没法互相连结。假如不可以够穿越 NAT,P2P网络就没法实现真实的平等,也就没法实现全部信息的互换或共享。

目前处于 NAT后的主机通信一般经过服务器的中转, 比如当客户机 A 和客户

机 B 都分别处于不同的 NAT后边,先各自倡始一个 TCP或 UDP的连结,连结到一个大家都知道的拥有固定 IP 地点的服务器 S 上。因为 A 和 B 不可以直接连结,两个客户端就使用 S 服务器进行信息的传达。 比如,A 要发送一条信息到客户端 B,

客户端 A 以 C/S 连结方式简单的发送一条信息到 S 服务器,而后 S 服务器使用已经和客户端 B 成立的 C/S 连结发送这条信息到客户端 B。 NAT后主机不成立 P2P 通信时发送数据的详细过程如图 3.2 所示。

这类方法的优势在于只需两个客户端都连在服务器上,它就是有效的。它的

显然弊端是它需要了服务器的办理并占用了带宽, 并且即使服务器的网络状况良

好,也有必定的通信滞后问题。所以我们需要对该方案进行改良,提出了 NAT

穿越技术。

文案大全 计算机网络打洞技术

适用文档

服务器

2 3

Internet 网络

NAT-B NAT-A 公网

公网 私网 私网 4

1 1

B1 主机 A1 主机 端口: 4000

端口: 2000

图 3.2 NAT 后主机不成立 P2P 通信时发送数据的详细过程

NAT穿越的主要目的是是让处于 NAT后的通信主机在成立连结后,能够绕过服务器的中转, 直接进行 P2P通信。这样能够大大节俭网络带宽, 且数据传输更稳固,出现延时现象更少。

3.1.3 Cone 种类的 UDP穿越

UDP是是无连结的协议,几乎不供给靠谱性举措,可是 UDP的效率特别高。

它与 TCP协议不同,不需要在传输数据以前要成立一种虚构的连结关系。所以

UDP连结只需知道对方的 IP 地点和 UDP端口,便可以进行数据传输。

在 P2P网络中,采纳 UDP方式进行数据传输,只有获取对方主机的公网 IP

地点和端口才能够进行数据互换。所以,需要在 P2P网络中建立一台有公网 IP

地点的注册服务器, 任何主机都要先登录到注册服务器, 注册服务器将记录这个

IP 地点和端口号为公网 IP 地点和 UDP端口。这样在注册服务器大将成立一张映

射表,这张映照表记录了登录到注册服务器的主机在内网中的 IP 地点和端口号

和经过 NAT以后 NAT所分派的 IP 地点和端口号,即 ( 内网 IP 地点: UDP端口号 )

- ( 公网 IP 地点: UDP端口号 ) ,假如主机不在 NAT以后,则两者同样,这样每台登录的主机都拥有 Internet 上独一的 ( 公网 IP 地点: UDP端口号 ) 。

文案大全