SCTP as an Universal Multiplexing Layer

Multiplexing of multiple application streams over a single transport connection is a widely used technique in modern computer networks, HTTP/2 and SSH are well-known examples. For many use cases, multiplexing has advantages over operating multiple dedicated transport connections. However, neither of the two dominating transport protocols Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) offer multiplexing support, therefore multiplexing has to be implemented individually at application level. The Stream Control Transmission Protocol (SCTP) is an ideal candidate for being used as an universal multiplexing transport protocol. SCTP provides a rich feature set, matching many requirements of a modern transport protocol and SCTP also offers native multiplexing by using its concept of streams. A primary feature of the protocol design is the expandability with new features using SCTP protocol extensions. In addition to the FreeBSD, Linux and Solaris kernel stacks, SCTP has found a wide deployment due to the usage as the underlying transport protocol for WebRTC data channels. This thesis evaluates the impact of transport layer multiplexing for a wide range of network traffic patterns by using the SCTP protocol as an example. This includes the aspects of buffer management, error recovery as well as the process of connection establishment. The results are backed by extensive evaluations using discrete event simulations. In addition to the protocol specific improvements, a generic and transparent multiplexing API is provided. All techniques are developed by focussing on backward compatibility and deployability in real implementations. The results gained and the improved mechanisms can also be applied to other transport protocols, such as TCP or Quick UDP Internet Connections (QUIC).


Citation style:
Weinrank, F., 2021. SCTP as an Universal Multiplexing Layer.
Could not load citation form.


Use and reproduction:
This work may be used under a
CC BY-SA 4.0 LogoCreative Commons Attribution-ShareAlike 4.0 License (CC BY-SA 4.0)