text: TCP延遲確認是傳輸控制協議所使用的技術，用於改善網路效能。該技術可以將若干ACK報文組合在一起成為單個報文，從而減少協議開銷。 但是在某些情況下，該技術可能會降低應用程式效能。方法和優點.如RFC1122所說，一個主機可以延遲傳送ACK報文高達500毫秒。 此外，以每完整的資料包為一段，ACK報文必須每兩段傳送一次。延遲的ACK可以使應用程式有機會更新TCP接收視窗 ，也可以立即傳送ACK報文。對於某些協議，透過將ACK、視窗更新和響應資料組合到一個段中，可以將伺服器傳送的響應數量減少3倍。問題.延遲ACK引入的額外等待時間在與某些應用程式和配置互動時可能導致進一步的延遲。如果傳送方正在使用Nagle的演算法，則資料將由傳送方排隊，直到收到ACK。如果傳送方未傳送足夠的資料來填充最大分段大小，則傳輸將暫停到ACK延遲超時。Linux核心從版本2.4.4開始支援禁用延遲ACK的codice_1套接字選項。 由此可以得知，如果傳送方的套接字層的資料少於一個完整資料包，根據Nagle的演算法，在收到已傳送資料的ACK之前，是不會發送這段資料的。 與此同時，接收方方的應用層在獲取所有資料之前不會發送響應；如果接收方啟用了延遲的ACK，則它的套接字層將不會發送ACK，直到達到超時。如果應用程式以較小的塊傳送資料並期望定期ACK，則可能發生這種負面互動。 為防止此延遲，應用程式層需要連續傳送資料而無需等待ACK，或者Nagle的演算法可能被髮送方的應用程式禁用。
metadata: erhwenkuo/wikipedia-zhtw
metadata: TCP延遲確認
metadata: https://zh.wikipedia.org/wiki?curid=6456674