PAT 内幕。它是如何解复用的?

mat*_*ens 2 routing nat

问题:假设在我的家庭互联网路由器上启用了 PAT,当我的路由器从互联网接收数据包时,它如何知道将数据包解复用到哪些主机?

示例:在我的 LAN 上有 2 台主机。每个都向同一服务器发送请求以获取相同信息。每个主机都使用相同的端口。路由器如何知道哪些数据包应该去哪里?每个数据包应具有相同的源地址和目标地址。除非有一些我不知道的端口魔法,否则端口应该是相同的。

我的猜测:我将猜测有一些我不知道的元数据附加到数据包中,这些数据包以某种方式标识了专用网络上的每个主机。但这在下一个示例中似乎不起作用。

示例:不同网络上的某些主机(其他)想要向我的 LAN 上的主机(我的)发送数据包。另一台主机将数据包发送到我网络的公共 IP 地址。但是由于我的主机不期待数据包,因此它无法为我的路由器提供有关如何解复用数据包的任何元数据。除了我的网络的公共 IP 地址之外,另一台主机不知道元数据。

小智 8

执行网络地址转换的设备维护一个转换表,其中包括有关源和目标 IP 地址以及端口号的信息。源 IP 地址和端口号以及目标 IP 地址和端口号的组合为每个会话创建唯一标识符。