让我们举一个例子:
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 后面的多个设备,因为每个设备可能都有不同的源端口(即使没有,路由器也可以重写它以进行跟踪)