The Connection Control Protocol:
Eve M. Schooler
USC/Information Sciences Institute
January 29, 1992
The Connection Control Protocol (CCP) is an experimental application layer protocol intended for use across packet-switched computer communication networks. CCP orchestrates multiple-user, multiple-media sessions in a distributed manner. It provides a flexible group transaction service, robustness mechanisms for WAN operation, negotiation for heterogeneous site configurations, conference pre-arrangement, remote control capabilities and an interface across which synchronization information may be passed. The original goal was to create a protocol to support multimedia teleconferencing over the Internet, but CCP actually provides a general enough solution for other group-oriented applications requiring the management of multiple data flows. It is our hope that the CCP specification will encourage interoperation of different implementations of such applications over the Internet.
This document specifies the functions supported by the Connection Control Protocol, the requirements of the applications that implement it, and its interfaces both to the programs that use it and to underlying services. The model within which it was framed and the motivation for this work are discussed in a companion document, "The Connection Control Protocol: Architecture Overview"  and in earlier documents [3, 15, 16]. This document provides information for the Internet community. It does not specify an Internet standard and is considered work in progress.
2. Transport Requirements
The development of CCP has revealed as much about application level requirements as it has about those at the transport level. Because there is no central conference coordinator, peer connection managers orchestrate and manage multisite conferences in a distributed manner through use of the CCP. Typically one connection manager sends another connection manager a request, then waits for a reply to determine the next course of action. To support multisite conferences, connection managers also need to query or submit requests to an entire group of remote sites at once. In those instances, a connection manager may need to collect responses from all group members before evaluating the success of the request. Therefore, CCP's transport must be transaction-oriented and provide reliable, group communication. It must also accommodate variability due to WAN operation and heterogeneous configurations that are inevitable as groups scale up. Thus, CCP is built on top of a flexible datagram message passing implementation outlined below.
By transaction-oriented it is meant that communication between sender and receiver is of a request-reply nature. The end system doing the requesting is considered the client end of the transaction, while the recipient of the request is the server. Each connection manager is equipped to play the role of both client and server. For optimal performance, the transport service is connectionless (based on UDP sockets [12, 18]), since control information is exchanged infrequently by comparison to the duration of an average conference and does not warrant the overhead associated with dedicated connections. In addition, the connectionless model makes transient use of resources. This presents a large savings for n-way connectivity. Furthermore, in our experience  dedicated transport level connections (e.g., TCP ) do not survive intermittent Internet network outages.