同一网络内的数据包转发

同一网络内的数据包转发

我知道端口转发是如何工作的。但是,如果同一网络中的两个设备运行相同的进程,例如假设两个设备正在请求 HTTP 响应。由于两个服务都将在同一个端口上运行,路由器如何识别正确的设备来转发数据包

答案1

服务器识别数据包如下:

Level 2: Mac Addr:
Level 3: IP Addr
Level 4: Port 

因此,为了演示,假设您的网络中有 3 个主机:ClientA、ClientB 和 ServerC。您在 ServerC 的端口 80 上运行了一个 Web 服务。

当 ClientA 发出请求时,会话如下:

ClientA (IPa, Porta) <-> ServerC(IPc, Portc)

可以是:

ClientA (192.168.1.51,10001) <-> ServerC(192.168.1.10,80)

当ClientB发出请求时,会话如下:

ClientB (IPb, Portb) <-> ServerC(IPc, Portc)

可以是:

ClientB (192.168.1.52,10001) <-> ServerC(192.168.1.10,80)

因此在服务器上,它有 2 个 uniq 会话:

192.168.1.51,10001-192.168.1.10,80
192.168.1.52,10001-192.168.1.10,80

如果 ClientA 向 ServerC 发出第二个请求,则:

ClientA (IPa, Porta2) <-> ServerC(IPc, Portc)

可以是:

ClientA (192.168.1.51,10002) <-> ServerC(192.168.1.10,80)

因此在服务器上,它有 3 个 uniq 会话:

192.168.1.51,10001-192.168.1.10,80
192.168.1.51,10002-192.168.1.10,80
192.168.1.52,10001-192.168.1.10,80

我希望我已经表达得足够清楚了。

菲利普。

答案2

简单来说,每个互联网数据包都有:源 IP、目标 IP、源端口和目标端口。源端口或多或少是随机的,这是关键。

您的路由器会构建一个表映射表,该表会考虑以上所有因素,并使用源和目标重写往返于其 IP 的数据包 - 因此,如果 2 个设备同时访问同一个 IP,则可以使用源端口。

相关内容