NAT 如何跟踪连接

NAT 如何跟踪连接

假设有多个 PC 共享一个 IP 地址的 NAT,NAT 如何知道将传入数据发送到哪里。它会转换 SYN-ACK ID 吗?

答案1

当设备连接到路由器另一端的服务器时,它会使用其临时端口范围内的源端口。这通常是 49152 到 65535 之间的端口,并且是随机分配的。NAT 路由器会将此端口号以及目标 IP 地址记录在 NAT 转换表中。当数据开始从服务器返回时,它会从此表中查找数据的去向。

答案2

假设在 NAT 中多台 PC 共享一个 IP 地址,NAT 如何知道将传入数据发送到何处。

通过不以 alheimer 为模型进行编程。基本上它有一个记忆 - 关于哪些内部端口/ip 地址映射到哪个外部目标端口/ip,因此它可以进行转换。对于 TCP 来说这很简单,对于 UDP,内部程序最好定期将数据包发送到外部(以便 NAT 刷新路由表)。

它是否翻译 SYN-ACK id?

不,正确的 NAT 不遵循 TCP 协议。这是为了确保 TCP 不起作用。

玩笑归玩笑——自然,在需要时它必须进行翻译,否则会破坏实施。NAT 必须是透明的,因此它必须进行所有必要的翻译。

相关内容