TCP_QUICKACK属性的影响分为两种情况:
对于主动连接(connect)的fd,设置TCP_QUICKACK=0,该往往说明客户端将很快有数据要发送给服务器,所以在三次握手协议中的第三步,客户端会延迟发送ACK,而是直接给服务器发送request数据,并将ACK随request包一同发给服务器。
对于被动接受(accept)的fd,设置了TCP_QUICKACK=0。
这种情况需要先明白一个过程,比如对于一个http协议,三次握手协议结束后,客户端会立即向服务器发送一个request请求,当服务器接收完这个request请求以后,会首先给客户端一个ACK确认告诉客户端已经收到了该数据包,然后当服务器完成了请求,才会再发response。
明白了这个过程,就很容易解释了,服务器端这样设置的目的就是接收完request后先不ACK,而是把这个ACK和接下来的response一同发送给客户端。