网络地址转换 NAT
尽管因特网采用了无分类编址方法来减缓 IPv4 地址空间耗尽的速度,但由于因特网用户数量的急剧增长,特别是大量小型办公室和家庭网络接入因特网的需求不断增加,IPv4 地址空间即将耗尽的危险然仍没有解除(实际上,因特网号码分配管理局 IANN 于 2011 年 2 月 3 日宣布,IPv4 地址已经分配完毕)。
网络地址转换(Network Address Translation,NAT)技术于 1994 年被提出,用来缓解 IPv4 地址空间即将耗尽的问题。NAT 能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。
这种方法需要在专用网络连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器称为 NAT 路由器,它至少要有一个有效的外部全球地址 IPG。这样,所有使用内部专用地址的主机在和外部因特网通信时,都要在 NAT 路由器上将其内部专用地址转换成 IPG。
# 一、最基本的 NAT 方法
# 1.1 专用网到因特网
# 1.2 再从因特网到专用网
# 二、网络地址与端口号转换 NAPT
由于目前绝大多数基于 TCP/IP 协议栈的网络应用,都使用运输层的传输控制协议 TCP 或用户数据报协议 UDP,为了更加有效地利用 NAT 路由器中的全球 IP 地址,现在常将 NAT 转换和运输层端口号结合使用。这样就可以使内部专用网中使用专用地址的大量主机,共用 NAT 路由器上的 1 个全球IP地址,因而可以同时与因特网中的不同主机进行通信。
将 NAT 和运输层端口号结合使用,称为网络地址与端口号转换(Network Address and Port Translation,NAPT),但人们仍习惯将其成为 NAT。
# 2.1 专用网到因特网
# 2.2 再从因特网到专用网
# 三、NAT 的局限性
尽管 NAT(和 NAPT)的出现在很大程度上缓解了 IPv4 地址资源紧张的局面,但 NAT(和 NAPT)对网络应用并不完全透明,会对某些网络应用产生影响。
NAT(和 NAPT)的一个重要特点就是 通信必须由专用网内部发起,因此拥有内部专用地址的主机不能直接充当因特网中的服务器。
对于目前 P2P 这类需要外网主机主动与内网主机进行通信的网络应用,在通过 NAT 时会遇到问题,需要网络应用自身使用一些特殊的 NAT 穿透技术来解决。
# 四、参考资料
- 《深入浅出计算机网络 微课视频》 (opens new window)
- 《深入浅出计算机网络》– 高军