Portable and Performant Userspace SCTP Stack
Venue
Computer Communications and Networks (ICCCN), 2012 21st International Conference on, IEEE
Publication Year
2012
Authors
Brad Penoff, Alan Wagner, Michael Tuexen, Irene Ruengeler
BibTeX
Abstract
One of only two new transport protocols introduced in the last 30 years is the
Stream Control Transmission Protocol (SCTP). SCTP enables capabilities like
additional throughput and fault tolerance for multihomed hosts. An SCTP
implementation is included with the Linux kernel and another implementation called
sctplib functions successfully in userspace on several platforms but unfortunately
neither of these implementations have all of the latest features nor do they
perform as well as the FreeBSD kernel implementation of SCTP. We were motivated to
produce a portable implementation of the FreeBSD kernel SCTP stack that operates in
userspace of any system because of both our desires to obtain a higher performance
SCTP stack for Linux as well as to exploit recent developments in hardware
virtualization and transport protocol onloading. Unlike any other userspace
transport implementation for TCP or SCTP, our userspace SCTP stack simultaneously
achieves similar throughput and latency as the Linux kernel TCP stack, without
compromising on any of the transport's features as well as maintaining true
portability across multiple operating systems and devices. We create a callback API
and implement a threshold to control its usage; our userspace SCTP stack with these
optimizations obtains higher throughput than the Linux kernel implementation of
SCTP. We describe our userspace SCTP stack's design and demonstrate how it gives
similar throughput and latency on Linux as the kernel TCP implementation, with the
benefits of the new features of SCTP.
