网络详解 - 网络层(7)NAT & NAPT 网络地址转换协议

时间:2024-03-25 09:36:48

现在有很多机器都在一个局域网内,但是这些机器想要访问互联网,但是没有全球的IP地址,又该怎么办该能上网呢。由于限制IPv4的数字限制(32位,大约42亿左右),不可能分配每个人一个全球的IP地址,比如一台电脑,一部手机,或者一个联网的设备,都需要一个IP。原有的IP地址已经不够分配了。所有就会有一大部分设备公用一个IP的情况。

为了解决这个问题,当时的人们就提出了 NAT 网络地址转换协议。
从下图可以看见,主机A要和主机B进行通讯的时候,首先需要将数据报交给 NAT 路由器,路由器进行记录,并将源地址进行修改掉,改成另外一个IP地址(可能还是全球地址,也可能还是专用地址),并将数据报交给网络做相同的处理,直到数据报转发到主机B上。

网络详解 - 网络层(7)NAT & NAPT 网络地址转换协议

1.主机A发送出去的数据报,源地址为 192.168.0.3 ,目标地址为213.19.2.4。
2.NAT 路由器接受到了数据报,发现是发送给外网的,就在本地记录表记录下相关信息,并将源地址进行修改,改成申请到的某个全球IP(172.38.1.5),并发送出去。
3.当 NAT 路由器接受到了来自外网的数据报,根据查询记录表,将目标地址改成记录表中的专用地址,并转发到内网,从而完成了通信。

网络详解 - 网络层(7)NAT & NAPT 网络地址转换协议

现在为了更加有效的利用全球IP,通常NAT路由器一般会把端口号也进行加上,就可以让更多的主机同时上网。由此 NAT协议 也就变成了 NAPT协议。不过也有人认为这样做没遵守规定,本来应该工作在网络层的路由器,现在还参与传输层了。但是,现在这个协议早就成为了不可获取的一个组件,可能在今后的某一天,IPv6 普及了以后,这个协议就要消失在历史的长河中了。