Advances in broadband networking, the emergence of information appliances (e.g., TiVo, PDA's, HDTV, etc.), and the now ubiquitous computer provide an environment rife with possibilities for new sophisticated multimedia applications that truly incorporate multiple media streams and interactivity. We believe many of these future Internet applications will increasingly make use of multiple communication and computing devices in a distributed fashion. Examples of these applications include distributed sensor arrays, tele-immersion , computer-supported collaborative workspaces (CSCW) , ubiquitous computing environments , and complex multi-stream, multimedia presentations . In these applications, no one device or computer produces or manages all of the data streams transmitted. Instead, the endpoints of communication are collections of devices. We call applications of this type cluster-to-cluster applications, or C-to-C applications.
C-to-C applications share three important properties:
Traditional multimedia applications like streaming video generate only a few media streams (e.g., audio and video) which in general originate and terminate at the same devices (e.g., media server to media client). The applications we envision go far beyond this traditional model and include myriad flows of information of many different types communicated between clusters of devices.
Each flow of information may play a different role within the application and thus should be matched with a specific transport-level protocol which provides the appropriate end-to-end networking behavior. Furthermore, these flows will have complex semantic relationships which must be exploited by the application to appropriately adapt to changing network conditions and respond to user interaction.
In this paper, we describe and evaluate a mechanism that allows transport-level protocol coordination of separate, but semantically related, flows of data. Our approach is to introduce mechanisms at the first- and last-hop routers which make measurements of current network conditions integrated across all flows associated with a particular C-to-C application. These measurements are then communicated to the transport-level protocols on each endpoint. This enables a coordinated response to congestion across all flows that reflects application-level goals and priorities. We leverage recent work in equation-based congestion control to ensure that the aggregate bandwidth used by all of the flows is TCP-friendly while allowing the application to allocate available bandwidth to individual flows in whatever manner suits its purposes.
The main contributions of this paper are:
The rest of this paper is organized as follows: In Section 2, we present the C-to-C application model, describe a motivating example, and discuss networking requirements unique to this class of distributed applications. In Section 3, we review related work. We present our solution to the transport-level protocol coordination problem in Section 4, and provide some experimental evaluation in Section 5. Section 6 mentions future work, and Section 7 briefly summarizes the contents of this paper.