A framework for interactive multicast data transport in the internet (2000)

The remarkable growth of the Internet as a data transmission medium has in part been enabled by the simplicity and scalability of the core Internet Protocol (IP), which is used for addressing and routing unicast data packets through the network. The IP service model does not provide any packet delivery guarantees, but rather provides a "best-effort" contract, and leaves it to higher layers to provide enhanced services using this basic service. Today, the de facto transport protocol on the Internet is the Transmission Control Protocol (TCP). TCP was designed primarily for applications such as telnet, a remote terminal application, and ftp, a file transfer application, which require data to be delivered reliably and in an ordered manner. While the TCP abstraction and protocol are indeed invaluable for transporting simple data types in telnet and ftp, as well as other applications with straightforward reliability requirements, two notable changes make the TCP approach inappropriate both with respect to its restrictive delivery semantics as well as its internal algorithms for loss recovery. First, TCP is not compatible with extensions to the basic IP service model for providing network-layer multicast. Second, the emergence of rich media types and applications creates a need for transport protocol requirements that are not satisfied by TCP's restricted semantics. The newer applications are interactive and handle these special media types in special ways. For example, an image viewer that does not rely on TCP may handle JPEG image data delivered out of order and reconstruct missing portions using interpolation techniques, thereby enhancing the interactivity to the end user. Such applications require sophisticated delivery semantics and are not best served by an overly restrictive protocol such as TCP. What is required here is a transport protocol whose semantics can be tailored by the application for efficient network transmission. &lt;p&gt;Our approach to solving these issues is a soft state-based interactive multicast data transport protocol framework. We present a model for "soft state" as an end-to-end construct that enables loose state synchronization between sender and receivers. We treat protocol control state at the end points as "soft" by not requiring that it be perfectly consistent at all instants. This allows us to avoid tight sender-receiver synchronization, as in TCP-like instantaneous receiver acknowledgements. Our soft state-based transport protocol provides a relaxed reliability, instead of TCP-like deterministic reliability. &lt;p&gt;Second, to accommodate heterogeneity among receivers and network paths, we allow receivers to tailor the semantics of reliability. Hence, a receiver incapable of or uninterested in processing portions of the data stream may refrain from receiving it reliably. We do not rely on the transport-level sequence space, but rather, use application-specific namespaces to express receiver preferences while requesting retransmissions. This application-level namespace is exposed to the transport protocol and is used by the receiver to selectively retrieve specific data items. The use of such a common "vocabulary" to describe data puts the application in control of loss recovery. &lt;p&gt;Finally, since many new data types including certain image formats can be processed and rendered out of order at the receiver, we do not enforce a TCP-like delivery order on the data stream. Instead, we provide out-of-order delivery to the receiving application and demonstrate its benefits for image delivery. This specific technique is also applicable to unicast transmission and we design and implement an interactive image transmission protocol for use in the World Wide Web. &lt;p&gt;These techniques form the bases of the new transport protocol framework for interactive multicast data transport. Our transport protocol is layered on top of UDP in the protocol stack, and we have implemented it as a user-level library called libsstp, a library for soft state-based transport protocol. We also present probabilistic analyses of the performance of our protocol in terms of the performance of the basic algorithms for loss recovery, using "slotting and damping," as well as the tradeoffs involving consistency and bandwidth consumption