Endpoint implementations of CP provide a modified socket interface to the application layer. With this interface, the application is able to associate its data flow with a particular cluster application and interact more directly with CP-related mechanisms in two ways.
First, the application may use the interface to communicate configuration information to the transport-level. For example, an application may wish to restrict the transport-level sending rate to no more than some maximum value. Or, an application may instruct the transport layer to send at only some fraction of the available bandwidth given various conditions. Such configuration is made possible by a set of system calls which allow applications to pass functions to the transport layer which operate on reported CP values in order to calculate an instantaneous sending rate.
The application may also use the interface to access CP information directly. Thus, a system call is provided which allows the application to query, for example, available bandwidth, round trip time, and the current loss rate. Obtaining this information directly is of particular importance when the application itself controls its own send rate (e.g., C-UDP) rather than relegating such control to the transport-level protocol (e.g., C-TCP).