End-to-end Congestion Control for TCP-Friendly Flows with Variable Packet Size

Current TCP-friendly congestion control mechanisms adjust the packet rate in order to adapt to network conditions and obtain a throughput not exceeding that of a TCP connection operating under the same conditions. In an environment where the bottleneck resource is packet processing, this is the correct behavior. However, if the bottleneck resource is bandwidth, and flows may use packets of different sizes, resource sharing depends on packet size and is no longer fair. Now for some applications, such as Internet telephony, it is more natural to adjust the packet size, while keeping the packet rate as constant as possible. In this paper we study the impact of variations in packet size on equation-based congestion control and propose methods to remove the resulting throughput bias. We investigate in detail the design space of the approaches and propose a number of possible designs. We evaluate these designs through simulation and conclude with some concrete proposals. Our findings can be used to design a TCP-friendly congestion control mechanism for applications that adjust packet size rather than rate, or that are forced to use a small packet size.

End-to-end Congestion Control for TCP-Friendly Flows with Variable Packet Size (PDF).
Jörg Widmer, Catherine Boutremans, and Jean-Yves Le Boudec. ACM Computer Communication Review, April 2004

Related papers:

TCP Friendly Rate Control (TFRC) for Voice: VoIP Variant and Faster Restart , (draft-ietf-dccp-tfrc-voip-01.txt).
Sally Floyd and Eddie Kohler. Internet draft, work in progress, February 2005.

Variable Packet Size Congestion Control is included in the TFMCC code for the ns network simulator. It was implemented for version 2.26 but should work for 2.27/2.28 as well. For unicast simulations, simply use a TFMCC sender with a single receiver. Please read the instructions on how to add the code to an existing ns installation.


VP-TFMCC has the following parameters: All other parameters are as in normal TFRC or TFMCC.

Example scripts:

Some example code used for the CCR paper can be found here. Extract the archive, enter the directory, and start one of the simulations with ./run-scenario -sim fairness-aggloss-p100.