tcp_delack_min的含义

当前的Linux内核(例如2.6.36)使用延迟确认(delack)。

在/include/net/tcp.h中说:

定义TCP_DELACK_MIN((unsigned)(HZ / 25))

因此,对于使用HZ值为1000的内核,ACK应该延迟至less40 ms。

但是,RFC 2581指出,TCP实现应该不再拖延地承认每一秒的全尺寸段。

是否有人知道Linux内核是否遵循“应该”或TCP_DELACK_MIN值是否意味着即使在接收到完整大小的段之后,ACK仍会被延迟直到40 ms已经过去?

我在源代码中进行了研究。 如果我正确读取它,Linux遵循RFC 2581的规定。

相关的一段代码包含在tcp_input.c中的函数__tcp_ack_snd_check()中。