NAT协议
NAT 是将 IP 数据报报头中的 IP 地址转换为另一个 IP 地址的过程,主要用于内部网到外部网转换的过程中。具体来讲,在一个子网(局域网,LAN)内,各主机使用的是同一个LAN下的IP,但在广域网(WAN)中,需要一个统一的IP标识该LAN在整个互联网中的位置。 IP地址的数量是有限的,为了能够使得有限的IP为更多的用户提供服务,IP地址保留了部分地址作为私网IP地址,任何组织都可以使用私网地址在其内部进行组网,通过这种方式实现IP地址的复用,除此之外的公网地址则是全球唯一的。而私网地址是不可以直接访问互联网的,这就需要使用NAT协议,将私网地址转换成公网地址。
工作原理
-
主机向路由器发送的数据包中包含源IP和目的IP
-
路由器拿到数据包时,需要进行源地址转换,将源IP转换成路由器的WAN端口IP,再发送出去
-
服务器处理完数据包之后,则将原来数据包中的源IP和目的IP互换,并发送给路由器
-
路由器接收到之后,执行反向SNAT,将目标IP改成主机IP,发送给内网中的主机
特殊情况
假设同一个内网中的两台主机同时访问同一个网站,发送了两组数据包到路由器上,路由器在执行地址转换之后,服务器处理完返回的数据包中,目标地址(发送时的源地址)都会是路由器的WAN端口地址,这时就需要区分两个数据包分别属于内网中的哪个主机,此时,只关注IP地址是不行的,需要传输层的相关处理:
以TCP协议举例
TCP协议中有两个关键属性:源端口和目标端口。
那么,在进行源地址转换时,就需要同时修改源地IP址和源端口,并将修改后的IP和端口号形成映射关系,在返回包中,根据目标端口号的映射关系,就可以区分出是哪个主机的包了
1552

被折叠的 条评论
为什么被折叠?



