TCP Acknowledgment Prioritization - Advanced Rule Processing

Introduction

TCP streams use a special mechanism for detecting the congestion of a link. When receiving data from a remote computer, the system sends an occasional small packet back to the remote computer and records how long it takes to come back.

If the delay is large then the receiving computer will assume that the link is congested and therefore it will reduce the speed of the transfer. The system continues to send the small test packets, constantly adjusting to the delay it detects.

This mechanism works well in cases where the receiving link is truly saturated, but it fails when instead the sending link is saturated and the receive direction is fine. For instance, computer A may send a file to computer B down a large, clear connection but computer A may only have a tiny, congested connection for receiving data. In this case, the TCP acknowledgment packets arriving from computer B will be delayed by the poor receive connection of computer A. Even though 99% of the traffic is being sent down a clear, uncongested line, computer B views it as congested because the other direction is slow.

This issue is common for users of DSL modems, where the capacity of the uplink is only a fraction of the downlink. If the user is uploading a large amount of data, for example with a file sharing product, they will have very slow downloading speeds. This is due to the TCP acknowledgments being affected by the uplink (even though they are related soley to the downlink traffic).

TCP acknowledgment prioritization solves this issue by giving high priority to these test packets. Even if an uplink is congested, download traffic will operate at full speed because the acknowledgements do not compete for upload bandwidth.

Usage

We recommend the use of TCP acknowledgement prioritization for all rules, except in cases where an application may send many small packets (less than 64 bytes in size). This should be quite rare but if it occurs then the rule would inadvertantly get a higher priority than others because all of its traffic would be given prioritization rather than just the acknowledgments.

Note that this option is only available for rules that filter TCP because it is a mechanism that relates only to that protocol.

User Interface

TCP acknowledgement prioritization is configured in the advanced processing tab for a rule. Ticking the checkbox enables the method, unticking it disables it.

Specifications

Name Value
Property Name TCP acknowedgement priotization
Category Advanced Rule Processing
Values Checked (enabled), Unchecked (disabled)
Default Checked
XML file rules.xml
XML name <ackPrioritization>
XML values true, false