![路由器如何將資料包傳送到正確的位置?](https://rvso.com/image/1604648/%E8%B7%AF%E7%94%B1%E5%99%A8%E5%A6%82%E4%BD%95%E5%B0%87%E8%B3%87%E6%96%99%E5%8C%85%E5%82%B3%E9%80%81%E5%88%B0%E6%AD%A3%E7%A2%BA%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%9F.png)
讓我們舉個例子:
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)
在這種情況下,假設兩台 PC 均已通過 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 後面的多個設備,因為每個設備可能有不同的來源連接埠(即使沒有,路由器可以重寫它以便追蹤)