In this section, we evaluate the behavior of CP using the network simulator ns-2 [4]. We focus here on our implementation of C-TCP, the coordinated counterpart to TCP.
C-TCP, like TCP, implements reliability through the use of acknowledgement packets, timeouts, and retransmission. Unlike window-based TCP, however, C-TCP is a rate-based implementation which adjusts its instantaneous send rate based on bandwidth availability information supplied by CP, and configuration information supplied by the application. Our implementation of C-TCP draws heavily from TFRC [8], except that loss and send rate calculations are handled by APs communicating over the C-to-C data path, and TCP-compatibility, as defined in [6], is achieved on an aggregate and not per-flow level.