Transparent TCP-to-SCTP translation shim layer

Date
2005
Journal Title
Journal ISSN
Volume Title
Publisher
University of Delaware
Abstract
Stream Control Transmission Protocol (SCTP) is a connection-oriented, reliable, messaged-based, general purpose transport protocol with congestion control similar to that used by TCP, supporting advanced features not available in TCP or UDP, such as multistreaming and multihoming capabilities. Because SCTP is still relatively new, it has not yet been widely deployed in the Internet despite its many advantages over TCP and UDP, particularly the fault tolerance provided by multihoming and potential for concurrent multipath transfer. The current state of SCTP deployment is essentially a “chicken and egg” type problem, where application developers are not interested in using SCTP at the transport layer because end users do not demand its services, but end users do not demand SCTP services because no current applications are written to support them. ☐ To encourage developers and end users to begin adopting SCTP and build momentum for more widespread SCTP deployment, we have developed a shim layer which translates application-level system calls to TCP into corresponding calls to SCTP, allowing legacy TCP applications to communicate using SCTP as the end-to-end transport protocol without any modifications to the applications themselves. This translation occurs transparently, so legacy TCP applications are unaware translation to SCTP is occurring. If the shim detects that translation from TCP to SCTP is not possible for a particular endpoint or service, the shim will fall back to using a normal TCP connection, ensuring backwards compatibility. ☐ The TCP-to-SCTP translation shim layer has been implemented in the FreeBSD 4.10 operating system kernel, and supports both client and server functionalities. The x shim enables communication between peers using two general architectures: a legacy-legacy configuration allowing two legacy TCP applications to communicate over SCTP, and a legacy-native configuration allowing a legacy TCP application to use the shim to communicate with a native SCTP application. The legacy-legacy mode allows TCP applications to gain use of some of SCTP’s advanced features without requiring modification of the applications themselves, while the legacy-native modes allow legacy TCP applications to interact with their native SCTP counterparts, providing a gradual migration path to increased SCTP deployment. ☐ Experimental results demonstrate the technical feasibility of this transparent TCP-to- SCTP translation scheme for several popular network applications including HTTP, SSH, Telnet, and streaming audio. Additionally, we show application performance (gauged qualitatively in terms of user perceptions and measured quantitatively in terms of throughput) using the shim and SCTP is equivalent to or better than performance when applications operate using TCP as originally designed. ☐ Using the transparent TCP-to-SCTP translation shim lets legacy TCP applications take advantage of some of SCTP’s advanced features, and allows for interoperability between legacy TCP applications and their SCTP equivalents. The shim provides a gradual migration path from TCP to SCTP and facilitates incremental deployment, encouraging developers and users to begin taking advantage of SCTP’s advanced features.
Description
Keywords
Citation