路由器如何将数据包发送到正确的位置?

路由器如何将数据包发送到正确的位置?

让我们举一个例子:

PC 1 (1.1.1.1)
    |
    |-----  **Router 1** (IP 3.3.3.3) ------------- **Router 2** --- Google Server(8.8.8.8 for eg)
    |
PC 2 (2.2.2.2)

在这种情况下,假设两台电脑都通过了 Google 身份验证,并且分配的 cookie 分别是 Cookie1 和 Cookie2。

所以现在,这两台电脑同时打开“gmail.com”。现在,当 Google 服务器收到请求时,两个数据包的数据包源 IP 都是 3.3.3.3(这是我所知道的)。

所以当路由器 1 收到来自 Google 服务器的回复数据包时,它们的目标 IP 将是相同的(即 3.3.3.3)。那么路由器如何知道数据包是要发送给 PC1 还是 PC2?

可以将PC1的邮件发送给PC2,但是却发不出去,怎么办?

答案1

TCP 连接包括源端口和目标端口。源端口与目标端口无关,可用于(在 NAT 的情况下)跟踪 NAT 后面的多个设备,因为每个设备可能都有不同的源端口(即使没有,路由器也可以重写它以进行跟踪)

相关内容