In this paper, we have identified a class of distributed applications known as cluster-to-cluster (C-to-C) applications. Such applications have semantically related flows that share a common intermediary path, typically between first- and last-hop routers. C-to-C applications require transport-level coordination to better put the application in control over bandwidth usage, especially during periods when network resources become limited by congestion. Without coordination, high-priority flows may contend equally with low-priority flows for bandwidth, or receive no bandwidth at all, thus preventing the application from meeting its objectives entirely.
We have proposed the Coordination Protocol (CP) as a way of coordinating semantically related flows in application-controlled ways. CP operates between the network (IP) and transport (TCP, UDP) layers, offering C-to-C flows fine-grained information about network conditions along the cluster-to-cluster data path, as well as information about application flows as an aggregate. In particular, CP makes use of equation-based rate control methods to calculate bandwidth availability for the entire C-to-C application. This results in aggregate flow rates that are highly adaptive to changing network conditions and TCP-compatible.