Ftp

TCP 握手期間的封包遺失

  • February 23, 2012

我必須實現一個導致文件傳輸的偽 TCP 握手。我在進行文件傳輸時沒有問題:簡單的發送確認。我無法理解的是如何進行三次握手,假設在 3 個步驟之一中會有封包遺失。

例如:我的客戶端發送一個 SYN 數據包。如果等待 SYN-ACK 超時(丟包或只是慢),它會重新發送它。伺服器發送 SYN-ACK。如果等待 ACK 超時,則重新發送 SYN-ACK。現在客戶端在收到他的 ACK 之後如何?

客戶端不知道他的 ACK 已收到,但他為什麼在乎呢?無論是否接收到 ACK,都會建立連接。您永遠無法確定是否收到了最後一個發送的數據包,因此您必須設計一個不需要這樣做的協議。

引用自:https://serverfault.com/questions/362889