SCTP (Stream Control Transmission Protocol) is a transport layer protocol (layer 4 in the OSI stack) that corrects some of the shortcomings of TCP and provides additional features like multihoming and data streams.
SCTP has its origins in telecommunication network signalling transport. The protocol has been in existence for some time, but is gaining popularity in recent years in other applications as well. It is also an integral part of the SDN (Software Defined Network) standard, so packet flows can be specified based on SCTP port numbers too.
Summarizing, SCTP provides the following key features:
- No head-of-line blocking
- Message-based data transfer
- Protection against connection flooding
- Fragmentation in the transport layer
- Flow control, congestion control, error control (like TCP does)
The following figure depicts the conceptual model of SCTP.
Basically, SCTP sits on top of the IP layer and offers a message passing interface to the application (ULP – Upper Layer Protocol). The messages pertain to a logical stream and the different streams are independent of each other. This means that a packet loss in one stream does not negatively affect other streams.
SCTP offers a wealth of additional functionality. An overview presentation of SCTP can be found under