我们先来讲一种情况
现在有设备A在一个局域网内
内网地址 192.168.0.2:9527
局域网外部的设备若要与A通信就需要‘打洞’了。
假设A通过路由器R上网。
R的外网IP:183.247.161.25 网关IP:192.168.0.1
A请求外网服务器时发送的源地址就是192.168.0.2:9527
数据先会经过默认网关 192.168.0.1
这时路由器R会做NAT映射,
40157 —192.168.0.2:9527
同时把之前的源地址192.168.0.2换成外网IP:183.247.161.25.
那么外网服务器检测到请求IP为183.247.161.25:40157
之后外网服务器把源IP换成目标IP发送数据。
最终数据会传到路由器R. 路由器开始根据端口号40157查NAT表。如果这个端口号在表中存在,那么就会把地址解析回来192.168.0.2:9527。 A就收到了服务器的数据。