TcpAckFrequency is a new registry entry in Microsoft Windows XP and Microsoft Windows Server 2003 that determines the number of TCP acknowledgments (ACKs) that will be outstanding before the delayed ACK timer is ignored.
As specified in RFC 1122, TCP uses delayed acknowledgments
to reduce the number of packets that are sent on the media. Instead of sending
an acknowledgment for each TCP segment received, TCP in Windows 2000 and later
takes a common approach to implementing delayed acknowledgments. As data is
received by TCP on a particular connection, it sends an acknowledgment back
only if one of the following conditions is true:
- No acknowledgment was sent for the previous segment
- A segment is received, but no other segment arrives within
200 milliseconds for that connection.
Typically, an acknowledgment is sent for every other TCP
segment that is received on a connection unless the delayed ACK timer (200
milliseconds) expires. You can adjust the delayed ACK timer by editing the
following registry entry.Important
Before you edit this registry entry, you must first install the hotfix that is described in the following article:
Changing the TcpAckFrequency value to 1 does not have any effect
This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
How to back up and restore the registry in Windows
Subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<Interface GUID>
Specifies the number of ACKs that will be outstanding before the delayed ACK timer is ignored. Microsoft does not recommend changing the default value without careful study of the environment. For more information, visit the following Microsoft Web page:
If you set the value to 1, every packet is acknowledged
immediately because there is only one outstanding TCP ACK as a segment is just
received. The value of 0 (zero) is not valid and is treated as the default, 2.
The only time the ACK number is 0 is when a segment is not received and the
host is not going to acknowledge the data.