Explicit Congestion Protocol (XCP)

Explicit Congestion Protocol (XCP) is a new congestion control protocol developed by Dina Katabi from MIT Computer Science & Artificial Intelligence Lab. It extracts information about congestion from routers along the path between endpoints. It is more complicated to implement than other proposed Internet congestion control protocols.

The XCP-capable routers make a fair per-flow bandwidth allocation without carrying per-flow congestion state in packets. In order to request for the desired throughput, the sender sends a congestion header (XCP packet) located between the IP and transport headers. It enables the sender to learn about the bottleneck on the path from the sender to the receiver in a single round trip.

In order to increase congestion window size for TCP connection, the sender require feedback from the network, informing about the maximum, available throughput along the path for injecting data into the network. The routers update such information in the congestion header as it moves from the sender to the receiver. The main task for the receiver is to copy the network feedback into outgoing packets belonging to the same bidirectional flow.

The congestion header consists of four fields as follows:

The router with implemented XCP maintains two control algorithms, executed periodically. First of them, implemented in the congestion controller is responsible for specifying maximum use of the outbound port. The fairness controller is responsible for fairly distribution of throughput to flows sharing the link.

Benefits of XCP

Deployment issues and issues with XCP

References

– Main.WojtekSronek - 08 Jul 2005