ITR: Protocol Coordination for Multistream Applications
University Of North Carolina At Chapel Hill, Chapel Hill NC
Investigators
Abstract
The world is rapidly being populated by a wide array of information appliances such as computers, personal digital assistants, video cameras, digital light projectors, and cable set-top boxes. These appliances are no longer simply islands of technology, but have the ability to communicate with other devices in their environment. Future Internet applications will increasingly make use of these devices by organizing them in a distributed fashion. Examples of these applications include distributed sensor arrays, tele-immersion, computer-supported collaborative workspaces (CSCW), ubiquitous computing environments, and complex multistream, multimedia presentations. In these applications, no one device or computational resource produces or manages all of the data streams transmitted. Instead, these applications will be distributed over a collection of devices in an environment. These types of applications are called "cluster-to-cluster" (C-to-C) applications. In a C-to-C application, a set of processes distributed on a cluster of devices or computers communicates with another set of processes on a remote cluster of devices or computers. Processes are distributed on the device clusters at either end to manage the data streams and control the application. Unfortunately, traditional network technologies and protocols are ill-equipped to support these kinds of applications. The fundamental problem is that current transport-level protocols operate in isolation from other traffic flows and within a strict understanding of "end-to-end." The transport-level protocols used by multiple, related, data streams that share a common path have no coordination mechanism. As a result, each process in a C-to-C application competes with other processes within the same application for network resources. Also, each transport-level protocol must make independent assessments of current network conditions (e.g., delay, congestion, etc.) which can lead to inconsistent and adversarial protocol dynamics. Furthermore, the numerous data streams produced by a C-to-C application will have semantic relationships known only to the application. These relationships affect how the data should be transmitted and the operation of transport-level protocols. A C-to-C application needs a global view of performance across all of its flows in order to make adaptations to dynamic network conditions. Independent adaptation of the separate flows uninformed of aggregate application performance is insufficient. A key characteristic of C-to-C applications is that a large portion of the communication path is shared among all data flows. Although no two data flows may share an entire end-to-end path, all data flows share the path between the two clusters. Furthermore, this shared common path is likely to be where network conditions vary the most and the source of congestion due to outside traffic. Exploiting this characteristic, our general approach to the problem is to introduce mechanisms at the points of aggregation for data streams in a cluster application that determine network conditions along the shared common path and provide a consistent and coordinated view of available network resources. Specifically, a major contribution of our work will be to introduce an additional protocol between the network level (IP) and the transport level (TCP, UDP, etc.). We call this protocol the "Coordination Protocol" (CP). This additional protocol will be used to communicate information between forwarding mechanisms within the cluster infrastructure on either end of the application. The information exchanged by these mechanisms is used to estimate the dynamic network conditions along the shared path (i.e., congestion, latency, jitter, etc.). Because a single mechanism is charged with estimating network conditions across all flows of a multistream application, all individual transport-level protocols involved in a C-to-C application receive a consistent and coordinated view of current network conditions. The application can then react to congestion, loss, and other network events in a manner that incorporates application-level knowledge and achieves global objectives. The major features of the researchers approach are: - Provides a consistent measurement of network conditions across all application flows. - Preserves end-to-end semantics of transport-level protocols. - Locally deployable. - Independence from application architecture. - Serves as a framework for other types of coordination. As a whole, the aggregate network behavior of all the flows of a C-to-C application should respond appropriately to congestion and other network conditions. How each individual stream responds, however, can only be determined at the application level because only the application has an understanding of how the streams are related. The coordination protocol we will develop provides cluster applications with the ability to apply application-level knowledge about these interstream semantic relationships and coordinate the use of network resources. The protocol will help us explore coordination mechanisms and make possible a wide range of new application types that do not currently exist, but are envisioned by researchers and industry as the future of the Internet.
View original record on NSF Award Search →