我有一个关于 NAT 的问题,这个问题已经回答了大部分问题:NAT / PortForwarding / TCP/IP 如何工作?
我感到困惑的是问题的这一部分:
为什么这行得通?现在当一个数据包回来时,路由器只需检查目标端口号,并根据前面提到的映射更改目标IP地址和目标端口号,数据包就可以成功传递。
我的问题如下:如果随机计算机(计算机 A)尝试使用 NAT 在路由器后面的 LAN(计算机 B)上的计算机的随机端口上连接会发生什么?例如,如果计算机 A 想通过计算机 B 上端口 42534 上的 TCP 连接会发生什么?发送到 LAN 的数据包如下:
source_address:计算机A的公共地址
source_port:计算机A的端口
destination_address:局域网的公共地址
目的地端口:42534
路由器如何知道它应该将数据包发送到哪台计算机?是否有一个映射可以让路由器知道将它发送到 LAN 上的哪台计算机?