Networking
在應用層回複收到的消息(在 TCP 上)告訴發送者消息已成功接收是沒有用的?
任何數據失去都會被檢測到並自動糾正,這就是為什麼 TCP 也被稱為可靠協議的原因。
換句話說,
傳輸層負責從源主機到目標主機的無差錯端到端數據傳輸。
TCP確實保證是可靠的傳輸。提出一個問題,在應用層回複收到的消息(在 TCP 上傳輸)告訴發送方消息已成功接收是否多餘(或無用,對不起我的英語不好)?
它不是多餘的。TCP 只關心兩個系統之間的傳遞,而不關心兩個應用程序之間的傳遞。一旦成功接收到數據,就會發送 ACK。然後將數據包的有效負載放入接收方應用程序的套接字緩衝區中。因此,在應用程序(從套接字緩衝區)讀取有效負載之前,特別是在它處理有效負載之前發送 ACK,例如根據處理的有效負載對數據庫進行更改。
因此,如果客戶端在應用程序級別獲得某種確認,則客戶端只能知道應用程序已成功處理有效負載。不過,這不需要是明確的確認 - 簡單地發迴響應可能就足夠了。細節取決於應用協議的語義。