Linux

tcp_delack_min 的含義

  • December 22, 2010

目前的 Linux 核心(例如 2.6.36)使用延遲確認(delack)。

/include/net/tcp.h它說:

定義 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()中。

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