Transferring data across the Internet occurs thanks to a set of protocols that define how two or more networked elements talk to each other. The Internet Protocol (IP) suite contains the protocols that handle almost all of this data traffic. The Stream Control Transmission Protocol (SCTP) is a newer, lesser-known member of the suite.
In this tutorial, we’ll learn about the core features of SCTP and issues affecting SCTP’s broader adoption.
2. IP Transport Layer
Given that the IP suite follows the Open Systems Interconnection (OSI) model, it has a transport layer for host-to-host communication. Messages can be sent and received with SCTP on this layer. However, the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) are much better-known and supported protocols, causing SCTP to see very little usage.
2.1. TCP & UDP
Both TCP and UDP are in the IP Transport layer. They underpin the application-based communication of higher layer protocols like the Hypertext Transfer Protocol (HTTP) and the File Transfer Protocol (FTP).
Essentially, all traffic on the internet uses these two protocols. With these protocols, you can have either connection-oriented or connection-less message transmission. This, coupled with their inclusion in every major operating system networking library, has led to their dominance over the other protocols defined in the transport layer.
Conveniently, the designers of SCTP combined the best features of TCP and UDP into one protocol. As such, it includes the message-based function of UDP, along with the guaranteed data delivery concept found in TCP. This approach provides applications a means to just process messages and not have to deal with parsing the messages out from a continuous stream of bytes, like with TCP.
Unordered message delivery is another feature shared by UDP and SCTP, which is desirable in some applications. However, ordered messages, per stream, are optionally available in the protocol as well. This means SCTP can also behave like TCP.
SCTP also supports multi-streaming, a process where the protocol bundles multiple connections together and different data streams are sent at the same time.
Another feature unique to SCTP is Multi-homing. SCTP clients and hosts can have multiple IP addresses and use them for one connection. This allows the protocol to have redundant network paths.
Finally, SCTP provides stronger security by using a 4-way handshake connection creation process that protects the protocol from denial-of-service attacks. Once SCTP has established a connection, the host and clients exchange a cookie that aids in association verification and authenticity. In conjunction with multi-homing, these security features allow SCTP to maintain connections even when some routes and interfaces on the network are down.
Connection resiliency is a key feature of the Signaling System 7 (SS7) upon which SCTP is based.
The addition of SCTP to the IP Suite has not been fully supported or implemented on many operating systems. While the protocol creators aimed to solve many of the issues that plagued other Transport Layer protocols, the lack of inclusion in any of the major operating systems, like Windows and macOS, have caused this protocol to be relatively unknown and somewhat obscure.
Also, most consumer networking equipment like routers either don’t support SCTP or don’t handle Network Address Translation (NAT) with SCTP.
SCTP also has a steep learning curve, can be difficult to implement, and for most modern application’s data transfer needs, TCP is sufficient.
Ultimately, all of this has lead to almost no adoption of SCTP by operating systems or applications.
In this tutorial, we discussed SCTP, some of the features that separate it from other popular IP transport layer protocols, and why it has seen very low adoption.