简单理解SNAT回流中的概念:路由器怎么知道外网返回的数据是局域网中哪台主机的
内网到外网用的是NAT技术(地址封装)外网到内网用的是端口映射(PNAT)计算机的端口又65535(0-65534),你说的那些有名气的端口大多都是0-1023之间的你说的这个问题很简单,但首先你要懂得数据是通过端口来传输的,路由器会记住机器用那个地址的那个端口发出去的信息比如: 192.168.0.2(内网主机地址)----192.168.1.1(内网网关,一般是你路由器的地址)-123.52.1.1(路由器WAN口地址,ISP给你发的一般是临时的)----123.52.1.2(目标主机IP) 这个时候你的内网主机会自动生成一个大于1023的端口连接到路由器,路由器会记住这个IP和端口,解封装以后,他会把用户IP报文里的ip和端口换成自己的ip和端口(这个端口也是随机的),再把数据转发到目标网络,这样就和目标网络建立了连接,目标网络往回传递信息的时候就会和路由器上的那个端口请求连接,然后路由器看一下自己的映射表,他会发现这个端口是和内网的 那台主机做的 映射,所以就会把数据传给你,这样你就读到了对方的信息。
参考:
https://zhidao.baidu.com/question/2073975904211508908.html
http://www.360doc.com/content/11/0419/09/2614615_110685387.shtml