Debian12如何关闭TCP的Delayed ACK(ACK延迟确认)

Debian12默认启用了Nagle‘s Algorithm,我的net 7 c# 程序在采用httpclient请求httplisstener 的服务器的时候,总是发送大约40ms 的延时。经过几天的排查,确认是linux系统存在 TCP 的 ACK延迟确认。网络资料显示:/proc/sys/net/ipv4 下 有 tcp_no_delay 的设定,而我确认了Debian12 不存在此文件。

想求助,我还可以通过其他方式关闭 ACK确认吗?

设置 TCP_NODELAYTCP_QUICKACK 选项啦。

1 个赞

TCP_NO_DELAY 是一个 sockopt,通过调用setsockopt()设置一下就好了。

1 个赞

因为某些原因,我不能从代码里面改 Socket 相关参数。有没有 从系统层面 统一设置的可能性?

我在网络上百度寻找的答案基本也是设置 TCP_NODELAYTCP_QUICKACK ,但是我不确定这2个选项是否是针对Sokcet的设定?还是debian12 的系统上的设定?这点我有些不清楚

setsockopt 啦。文档见 man 7 tcp

大概没有,除非你改内核。代码的 bug 就该改代码解决啦(

我理解了。感谢了。