SCTP has several features which make it technically interesting. It is a message-oriented protocol, unlike TCP which is a simple byte-stream. This allows applications to avoid head-of-line blocking, while still providing benefits over unreliable UDP. SCTP also provides multi-homing at the transport layer, allowing for a system with multiple IP address to form an SCTP association using both IP's, and provides a fail-over mechanism if one IP should fail. Another feature is multi-streaming, for example a single SCTP association could contain multiple download streams from a web site. Finally, in SCTP selective acknowledgment is mandatory, and the SCTP SACK is not limited to 3 or 4 gap blocks like the TCP SACK is.
Due to this interest, there are now several readily available implementations of SCTP in Unix kernels available. In this paper, we examine [lkS] the lkSCTP project, which provides an in-kernel SCTP implementation in Linux kernel, and is shipped in the released 2.6 series kernel. Using SCTP is a relatively simple matter of having the correct development headers and an application such as [ipe] which has been patched to use SCTP.
Troy Benjegerdes 2005-02-15