TCP Dynamic ACK

Onload User Guide (UG1586)

Document ID
UG1586
Release Date
2023-07-31
Revision
1.2 English

The sending of excessive TCP ACKs can impair performance and increase receive side latency. Although TCP generally aims to defer the sending of ACKs, Onload also supports a further mechanism. The EF_DYNAMIC_ACK_THRESH environment variable allows Onload to dynamically determine when it is non-detrimental to throughput and efficiency to send a TCP ACK. Onload will force an TCP ACK to be sent if the number of TCP ACKs pending reaches the threshold value.

Refer to the Parameter List for details of the Onload environment delayed TCP ACK variables.

Note: When used together with EF_DELACK_THRESH or EF_DYNAMIC_ACK_THRESH, the socket option TCP_QUICKACK will behave exactly as stated above. Both onload environment variables identify the maximum number of segments that can be received before an ACK is returned. Sending an ACK before the specified maximum is reached is allowed.
Note: TCP ACKS should be transmitted at a sufficient rate to ensure the remote end does not drop the TCP connection.