D. Katabi, M. Handley, C. Rohrs, “Congestion Control for High Bandwidth-Delay Product Networks,” ACM SIGCOMM Conference, (August 2002). [PDF]
Regardless of gateway queueing schemes, TCP becomes inefficient and suffers from instability as per-flow product of bandwidth and delay increases. The main reason is that the existing TCP queueing mechanisms are not fast enough to respond to changing conditions in high bandwidth-delay product networks. This paper presents XCP (eXplicit Control Protocol) that outperforms TCP in conventional and high bandwidth-delay product networks in terms of efficiency, fairness, scalability, and stability. XCP extends the concept of ECN (Explicit Congestion Notification) by using richer notifications and builds upon CSFQ’s core-state less routers concept (no per-flow state).
XCP is based on the following design rationales:
- Congestion should have explicit notifications instead of using packet drops as a signal. Moreover, such explicit notifications should be rich (carrying the degree of congestion).
- Aggressiveness of the sources should be adjusted according to the delay in the feedback-loop; the system must slow down as feedback delay increases.
- Dynamics of aggregate traffic should be independent from the number of flows to ensure robustness to congestion.
The biggest contribution of XCP is the separation of the efficiency control mechanism from the fairness control mechanism, thus providing a flexible analytical framework as well as support for service differentiation (i.e., inherent QoS support). Every XCP router has a efficiency controller (EC) and a fairness controller (FC). Both these controllers estimate average RTT, and a single control decision is taken in each RTT step. This paper uses special congestion headers that are sent in each control loop from the congested link to the source updated by other congested links throughout the path resulting in a congestion signal carrying the highest amount of congestion. The EC sends aggregate feedback signal proportional to the spare bandwidth of the link with an aim to provide fast responses to maximize link utilization (using MIMD), but it leaves the fair allocation of the aggregated bandwidth to the FC. The FC apportions the feedback between individual packets to achieve min-max fairness using AIMD (as in TCP) and bandwidth shuffling mechanism. The authors ensure that XCP is robust to estimation errors and is parameter-insensitive. A proof of stability is also presented.
Through extensive packet-level ns-2 simulation, this paper shows that XCP outperforms TCP using any queueing mechanism in conventional and high bandwidth-delay product networks in terms of bottleneck utilization, average queue size, bottleneck packet drops in different scenarios (e.g., changing capacity; delay; and number, length, type of flows). They also consider short- and long-term dynamics of XCP, response to burstiness, and its feasibility as a QoS enabler mechanism. The authors also point out that the broad range of operation of XCP makes it suitable for many unconventional networks including wireless, satellite, DTN etc.
This paper is an excellent read, very well thought-out and delivered. The evaluation section is specially nice covering a huge array of questions that might arise (the topologies are pretty simple though). It also provides a proof for the stability of the protocol that solidifies the claims made in the paper. The concept of using extra information to take smarter decision is not novel, but the way it differentiates between the EC and the FC, and how they interact on aggregate and individual flow level to ensure efficiency and fairness is ingenious.
However, there are some aspects of the paper that are questionable. To make it secure, per-flow state is required on the edge routers; there is no evaluation on how expensive that might be. Some of the results are described in the paper in a different way than they appear in the plots or in some other cases some results are not discussed at all. For example, the average bottleneck queue is seen to be growing linearly with increasing bottleneck capacity but not discussed at all. Also, there is a trend of blaming most discrepancies on the shuffling mechanism, even though it is an integral part of the XCP design.