Publication Data
Portable and Performant Userspace SCTP Stack
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.
