动态网络地址转换
Dynamic Network Address Translation
我问的问题可能很初级,但是
它是关于网络中 DNAT 的主题。
想象一下,我们有一个包含 2 台计算机的 LAN,它们都想连接到 LAN(Internet)之外的单个服务器。
我的问题是,如果两台计算机在转换 IP 地址时从同一台服务器请求,我们的家庭路由器或 NAT 服务器如何区分两台计算机从该服务器接收的数据包。
哪些信息有助于 DNAT 将数据包转发到正确的 PC?
这是因为我们在路由器或NAT设备中有table
连接由五项指定:源 IP、源端口、协议、目标 IP 和目标端口。这两台本地PC会有不同的ip/port,由路由器分配。所以通过使用table,我们可以很容易地选择数据包到正确的PC。
NAT 设备使用第 4 层标识符将答案映射回 LAN 中的主机。对于 TCP/UDP 它使用端口号,虽然不同类型的 NAT will use these port numbers differently.
维基百科有一张很好的 NAT table 外观图:
注意 NAT 转换中的端口号 table。
对于 TCP/UDP 以外的协议(即没有第 4 层端口号的协议),其他标识符用于映射。例如,对于 ICMP ping,使用 identifier field。
我问的问题可能很初级,但是 它是关于网络中 DNAT 的主题。 想象一下,我们有一个包含 2 台计算机的 LAN,它们都想连接到 LAN(Internet)之外的单个服务器。 我的问题是,如果两台计算机在转换 IP 地址时从同一台服务器请求,我们的家庭路由器或 NAT 服务器如何区分两台计算机从该服务器接收的数据包。 哪些信息有助于 DNAT 将数据包转发到正确的 PC?
这是因为我们在路由器或NAT设备中有table
连接由五项指定:源 IP、源端口、协议、目标 IP 和目标端口。这两台本地PC会有不同的ip/port,由路由器分配。所以通过使用table,我们可以很容易地选择数据包到正确的PC。
NAT 设备使用第 4 层标识符将答案映射回 LAN 中的主机。对于 TCP/UDP 它使用端口号,虽然不同类型的 NAT will use these port numbers differently.
维基百科有一张很好的 NAT table 外观图:
注意 NAT 转换中的端口号 table。
对于 TCP/UDP 以外的协议(即没有第 4 层端口号的协议),其他标识符用于映射。例如,对于 ICMP ping,使用 identifier field。