在调试 API 的延时的时候,可能有些情况下我们会遇到一个很常见的延迟时间:40ms,这个很可能时 TCP 的延迟 ACK 导致的。

TCP 的延迟 ACK 是为了减少 TCP 数据包的传输而创建的,目的是将 ACK 包随下一次的数据包发回对端,如果在一定时间内没有要发送到对端的数据包,那么才会直接 ACK,而这个时间默认就是 40ms,在 CentOS 系统中可以通过设置:

[root@liqiang.io]#  echo 15 > /proc/sys/net/ipv4/tcpdelackmin

来修改,这里是设置为 15ms。在有些系统中是没有修改选项的,默认就是 40 ms,所以如果当你遇到类似于这个时间时,不妨注意一下这个问题。

下面我就列举一下 TCP 常用的拥塞控制算法: