We model a generic C-to-C application as two sets of processes executing on two sets of communication or computing devices. Figure 1 illustrates this model.
A cluster is comprised of a set of endpoints distributed over a set of endpoint hosts (computers or communication devices) and a single aggregation point, or AP. Each endpoint is a process that sends and/or receives data from another endpoint belonging to a remote cluster. The AP functions as a gateway node traversed by all cluster-to-cluster flows. The common traversal path between aggregation points is known as the C-to-C data path.
The AP is typically the first-hop router connecting the cluster to the Internet and the cluster endpoints are typically on the same local area network. This configuration, however, is not strictly required by our model or our proposed mechanism. Our model is intended to capture several important characteristics of C-to-C applications. First, networking resources among endpoints of the same cluster are generally well provisioned for the needs of the application. Second, latency between endpoints of the same cluster is small compared to latency between endpoints on different clusters. Third, there exists a natural point within the network topology through which all cluster-to-cluster communication flows which can act as the AP. Finally, the C-to-C data path between AP's is the main source of dynamic network conditions such as jitter, congestion, and delay. Our overall objective is to coordinate endpoint flows across the C-to-C data path.