Linux
tcp_delack_min 的含義
目前的 Linux 核心(例如 2.6.36)使用延遲確認(delack)。
定義 TCP_DELACK_MIN ((無符號)(HZ/25))
因此,對於使用 HZ 值為 1000 的核心,ACK 應至少延遲 40 毫秒。
然而,RFC 2581 說 TCP 實現應該在沒有進一步延遲的情況下確認每隔一個完整大小的段。
有誰知道 Linux 核心是否遵循“應該”或者 TCP_DELACK_MIN 值是否意味著即使在收到完整大小的段之後,ACK 也會繼續延遲直到 40 毫秒過去?
我研究了原始碼。如果我沒看錯的話,Linux 應該遵循 RFC 2581。
相關程式碼包含在 tcp_input.c 中的函式__tcp_ack_snd_check()中。