TCP tries to send as quickly as possible, yet react to congestion in the network by reducing its send rate when a packet is dropped. Thisfunction, however, only concerns one out of the two directions that TCP is operating on: from the data sender to the data receiver. The receiver acknowledges data packets, and if these acknowledgements (ACKs) create congestion along the backward path, this is not normally noticed and reacted upon.
This thesis presents the first real-life implementationof RFC 5690 – an experimental mechanism that addresses this problem by performing “ACK congestion control”. Validations of this Linux kernel implementation against previously published simulations show that the mechanism performs correctly; various tests indicate under which conditions it is useful but also identify a few shortcomings in the original specification.