Compound TCP: A New TCP Congestion Control for High-Speed and Long Distance Networks

This document proposes Compound TCP (CTCP), a modification to TCP's congestion control mechanism for use with TCP connections with large congestion windows. The key idea behind CTCP is to add a scalable delay-based component to the standard TCP's loss-based congestion control. The sending rate of CTCP is controlled by both loss and delay components. The delay-based component has a scalable window increasing rule that not only efficiently uses the link capacity, but on sensing queue build up, gracefully reduces the sending rate. We have implemented CTCP on Microsoft's Windows and we have done extensive testing on production links and in Windows Beta deployments. We also engaged with Stanford Linear Accelerator Center to evaluate the properties of CTCP. The results so far are very encouraging. This document describes the Compound TCP algorithm in detail, and solicits experimentation and feedback from the wider community. In this document, we collectively refer to any TCP congestion control algorithm that employs a linear increase function for congestion control, including TCP Reno and all its variants as Standard TCP.