The Stream Control Transmission Protocol (SCTP) is a
computer networking
A computer network is a collection of communicating computers and other devices, such as printers and smart phones. In order to communicate, the computers and devices must be connected by wired media like copper cables, optical fibers, or b ...
communications protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
in the
transport layer
In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end c ...
of the
Internet protocol suite
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
. Originally intended for
Signaling System 7
Signalling System No. 7 (SS7) is a set of telephony signaling protocols developed in the 1970s that is used to setup and teardown telephone calls on most parts of the global public switched telephone network (PSTN). The protocol also performs ...
(SS7) message transport in telecommunication, the protocol provides the message-oriented feature of the
User Datagram Protocol
In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages (transported as datagrams in Network packet, packets) to other hosts on an Internet Protoco ...
(UDP), while ensuring reliable, in-sequence transport of messages with
congestion control
Network congestion in data networking and queueing theory is the reduced quality of service that occurs when a network node or link is carrying more data than it can handle. Typical effects include queueing delay, packet loss or the blocking of ...
like the
Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main communications protocol, protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, th ...
(TCP). Unlike UDP and TCP, the protocol supports
multihoming
Multihoming is the practice of connecting a Host (network), host or a computer network to more than one network. This can be done in order to increase reliability or performance.
A typical host or end-user network is connected to just one networ ...
and redundant paths to increase resilience and reliability.
SCTP is standardized by the
Internet Engineering Task Force
The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
(IETF) in . The SCTP reference implementation was released as part of
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
version 7, and has since been widely ported to other platforms.
Formal oversight
The
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
Signaling Transport (
SIGTRAN) working group defined the protocol (number 132) in October 2000, and the IETF Transport Area (TSVWG) working group maintains it. defines the protocol. provides an introduction.
Message-based multi-streaming
SCTP applications submit data for transmission in messages (groups of bytes) to the SCTP transport layer. SCTP places messages and control information into separate ''chunks'' (data chunks and control chunks), each identified by a ''chunk header''. The protocol can fragment a message into multiple data chunks, but each data chunk contains data from only one user message. SCTP bundles the chunks into SCTP packets. The SCTP packet, which is submitted to the
Internet Protocol
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP ...
, consists of a packet header, SCTP control chunks (when necessary), followed by SCTP data chunks (when available).
SCTP may be characterized as message-oriented, meaning it transports a sequence of messages (each being a group of bytes), rather than transporting an unbroken stream of bytes as in TCP. As in UDP, in SCTP a sender sends a message in one operation, and that exact message is passed to the receiving application process in one operation. In contrast, TCP is a stream-oriented protocol, transporting
streams of bytes reliably and in order. However TCP does not allow the receiver to know how many times the sender application called on the TCP transport passing it groups of bytes to be sent out. At the sender, TCP simply appends more bytes to a queue of bytes waiting to go out over the network, rather than having to keep a queue of individual separate outbound messages which must be preserved as such.
The term ''multi-streaming'' refers to the capability of SCTP to transmit several independent streams of chunks in parallel, for example transmitting
web page
A web page (or webpage) is a World Wide Web, Web document that is accessed in a web browser. A website typically consists of many web pages hyperlink, linked together under a common domain name. The term "web page" is therefore a metaphor of pap ...
images simultaneously with the web page text. In essence, it involves bundling several connections into a single SCTP association, operating on messages (or chunks) rather than bytes.
TCP preserves byte order in the stream by including a byte sequence number with each
segment. SCTP, on the other hand, assigns a sequence number or a message-id
[The DATA chunk uses a sequence number for ordered messages, the I-DATA chunk, which solves some problems with the original DATA chunk, uses a message-id for all messages] to each ''message'' sent in a stream. This allows independent ordering of messages in different streams. However, message ordering is optional in SCTP; a receiving application may choose to process messages in the order of receipt instead of in the order of sending.
Features
Features of SCTP include:
* Reliable transmission of both ordered and unordered data streams
* Multihoming support in which one or both endpoints of a connection can consist of more than one IP address, enabling transparent fail-over between redundant network paths
* Delivery of chunks within independent streams eliminates unnecessary
head-of-line blocking
Head-of-line blocking (HOL blocking) in computer networking is a performance-limiting phenomenon that occurs when a queue of packets is held up by the first packet in the queue. This occurs, for example, in input-buffered network switches, out-o ...
, as opposed to TCP byte-stream delivery.
* Explicit partial reliability
* Path selection and monitoring to select a primary data transmission path and test the connectivity of the transmission path
* Validation and acknowledgment mechanisms protect against
flooding attacks and provide notification of duplicated or missing data chunks.
* Improved error detection suitable for
Ethernet jumbo frames
The designers of SCTP originally intended it for the transport of telephony (i.e. Signaling System 7) over Internet Protocol, with the goal of duplicating some of the reliability attributes of the SS7 signaling network in IP. This IETF effort is known as
SIGTRAN. In the meantime, other uses have been proposed, for example, the
Diameter
In geometry, a diameter of a circle is any straight line segment that passes through the centre of the circle and whose endpoints lie on the circle. It can also be defined as the longest Chord (geometry), chord of the circle. Both definitions a ...
protocol and
Reliable Server Pooling (RSerPool).
Motivation and adoption
TCP has provided the primary means to transfer data reliably across the Internet. However, TCP has imposed limitations on several applications. From :
* TCP provides both reliable data transfer and strict order-of-transmission delivery of data. Some applications need reliable transfer without sequence maintenance, while others would be satisfied with partial ordering of the data. In both of these cases, the head-of-line blocking property of TCP causes unnecessary delay.
* For applications exchanging distinct records or messages, the stream-oriented nature of TCP requires the addition of explicit markers or other encoding to delineate the individual records.
* In order to avoid sending many small IP packets where one single larger packet would have sufficed, the TCP implementation may delay transmitting data while waiting for possibly more data being queued by the application (
Nagle's algorithm). Although many TCP implementations allow the disabling of Nagle's algorithm, this is not required by the specification. SCTP on the other hand allows undelayed transmission to be configured as a default for an association, eliminating any undesired delays, but at the cost of higher transfer overhead.
* The limited scope of TCP sockets complicates the task of providing highly-available data transfer capability using multihomed hosts.
* TCP is relatively vulnerable to denial-of-service attacks, such as
SYN attacks.
Adoption has been slowed by lack of awareness, lack of implementations (particularly in Microsoft Windows), lack of application support and lack of network support.
SCTP has seen adoption in the
mobile telephony
Mobile telephony is the provision of wireless telephone services to mobile phones, distinguishing it from fixed-location telephony provided via landline phones. Traditionally, telephony specifically refers to voice communication, though th ...
space as the transport protocol for several
core network interfaces.
Multihoming
SCTP provides redundant paths to increase reliability.
Each SCTP end point needs to check reachability of the primary and redundant addresses of the remote end point using a
heartbeat. Each SCTP end point needs to acknowledge the heartbeats it receives from the remote end point.
When SCTP sends a message to a remote address, the source interface will only be decided by the routing table of the host (and not by SCTP).
In asymmetric multihoming, one of the two endpoints does not support multihoming.
In local multihoming and remote single homing, if the remote primary address is not reachable, the SCTP association fails even if an alternate path is possible.
Packet structure
An SCTP packet consists of two basic sections:
# The ''common header'', which occupies the first 12 bytes and is highlighted in blue.
# The ''data chunks'', which occupy the remaining portion of the packet. The first chunk is highlighted in green, and the last of ''N'' chunks (Chunk N) is highlighted in red.
Each chunk starts with a one-byte type identifier, with 15 chunk types defined by , and at least 5 more defined by additional RFCs.
[See ]SCTP packet structure
The Stream Control Transmission Protocol (SCTP) has a simpler basic packet structure than Transmission Control Protocol, TCP. Each consists of two basic sections:
# The ''common header'', which occupies the first 12 bytes. In the adjacent ...
for more details. Eight flag bits, a two-byte length field, and the data compose the remainder of the chunk. If the chunk does not form a multiple of 4 bytes (i.e., the length is not a multiple of 4), then it is padded with zeros, which are not included in the chunk length. The two-byte length field limits each chunk to a 65,535-byte length (including the type, flags and length fields).
Security
Although encryption was not part of the original SCTP design, SCTP was designed with features for improved security, such as 4-way
handshake
A handshake is a globally widespread, brief greeting or parting tradition in which two people grasp one of each other's hands, and in most cases, it is accompanied by a brief up-and-down movement of the grasped hands. Customs surrounding hands ...
(compared to
TCP 3-way handshake) to protect against
SYN flood
A SYN flood is a form of denial-of-service attack on data communications in which an attacker rapidly initiates a connection to a server without finalizing the connection. The server has to spend resources waiting for half-opened connections, wh ...
ing attacks, and large "cookies" for association verification and authenticity.
Reliability was also a key part of the security design of SCTP. Multihoming enables an association to stay open even when some routes and interfaces are down. This is of particular importance for
SIGTRAN as it carries
SS7 over an IP network using SCTP, and requires strong resilience during link outages to maintain telecommunication service even when enduring network anomalies.
Implementations
The SCTP reference implementation runs on FreeBSD, Mac OS X, Microsoft Windows, and Linux.
The following
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s implement SCTP:
*
AIX Version 5 and newer
*
NetBSD
NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
since 8.0
*
Cisco IOS
The Internetworking Operating System (IOS) is a family of proprietary network operating systems used on several router and network switch models manufactured by Cisco Systems
Cisco Systems, Inc. (using the trademark Cisco) is an American ...
12 and above
*
DragonFly BSD
DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in ...
since version 1.4, however support is being deprecated in version 4.2
*
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
, version 7 and above, contains the reference SCTP implementation
*
HP-UX
HP-UX (from "Hewlett Packard Unix") is a proprietary software, proprietary implementation of the Unix operating system developed by Hewlett Packard Enterprise; current versions support HPE Integrity Servers, based on Intel's Itanium architect ...
, 11i v2 and above
*
illumos
Illumos (stylized as "illumos") is a partly free and open-source Unix operating system. It has been developed since 2010 and is based on OpenSolaris, after the discontinuation of that product by Oracle. It comprises a kernel, device driver ...
*
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
kernel 2.4 and above
*
QNX Neutrino Realtime OS, 6.3.0 to 6.3.2, deprecated since 6.4.0
*
Tru64
Tru64 UNIX is a discontinued 64-bit UNIX operating system for the Alpha instruction set architecture (ISA), currently owned by Hewlett-Packard (HP). Previously, Tru64 UNIX was a product of Compaq, and before that, Digital Equipment Corporation (DE ...
with the Compaq SCTP add-on package
* Sun
Solaris 10 and above
*
VxWorks
VxWorks is a real-time operating system (or RTOS) developed as proprietary software by Wind River Systems, a subsidiary of Aptiv. First released in 1987, VxWorks is designed for use in embedded systems requiring real-time, Deterministic system, ...
versions 6.2.x to 6.4.x, and 6.7 and newer
Third-party drivers:
*
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
:
** The SctpDrv kernel driver is a port of the BSD SCTP stack to Windows (Abandoned after 2012)
*
MacOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
:
** SCTP Network Kernel Extension for Mac OS X
Userspace
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
library:
* Portable SCTP userland stack
* The SCTP library
**
Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct successor to Windows 2000 for high-end and business users a ...
port
*
Oracle Java SE 7
*
Erlang/OTP
The following applications implement SCTP:
*
WebRTC
WebRTC (Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication and ...
*
NetFlow
NetFlow is a feature that was introduced on Cisco routers around 1996 that provides the ability to collect IP network traffic as it enters or exits an interface. By analyzing the data provided by NetFlow, a network administrator can determine thing ...
Tunneling over UDP
In the absence of native SCTP support in operating systems, it is possible to
tunnel
A tunnel is an underground or undersea passageway. It is dug through surrounding soil, earth or rock, or laid under water, and is usually completely enclosed except for the two portals common at each end, though there may be access and ve ...
SCTP over UDP, as well as to map TCP API calls to SCTP calls so existing applications can use SCTP without modification.
RFCs
* Stream Control Transmission Protocol
* Stream Control Transmission Protocol: Errata and Issues in RFC 4960 (obsoleted by RFC 9260)
* SCTP-PF: A Quick Failover Algorithm for the Stream Control Transmission Protocol
* TCP and Stream Control Transmission Protocol (SCTP) RTO Restart
* Additional Policies for the Partially Reliable Stream Control Transmission Protocol Extension
* SACK-IMMEDIATELY Extension for the Stream Control Transmission Protocol (obsoleted by RFC 9260)
* UDP Encapsulation of Stream Control Transmission Protocol (SCTP) Packets for End-Host to End-Host Communication
* Stream Control Transmission Protocol (SCTP) Stream Reconfiguration
* Sockets API Extensions for the Stream Control Transmission Protocol (SCTP)
* Stream Control Transmission Protocol (SCTP) Chunk Flags Registration (obsoleted by RFC 9260)
* Security Attacks Found Against the Stream Control Transmission Protocol (SCTP) and Current Countermeasures
* Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration
* Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation
* Stream Control Transmission Protocol (obsoleted by RFC 9260)
* Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)
* Padding Chunk and Parameter for the Stream Control Transmission Protocol (SCTP)
* Stream Control Transmission Protocol (SCTP) Specification Errata and Issues (obsoleted by RFC 9260)
* Stream Control Transmission Protocol (SCTP)
Management Information Base
A management information base (MIB) is a database used for managing the entities in a communication network. Most often associated with the Simple Network Management Protocol (SNMP), the term is also used more generically in contexts such as in ...
(MIB)
* Stream Control Transmission Protocol (SCTP) Partial Reliability Extension
* On the Use of Stream Control Transmission Protocol (SCTP) with
IPsec
* Transport Layer Security over Stream Control Transmission Protocol
* Stream Control Transmission Protocol (SCTP) Checksum Change (obsoleted by RFC 4960)
* An Introduction to the Stream Control Transmission Protocol
* Stream Control Transmission Protocol Applicability Statement
* Stream Control Transmission Protocol (updated by RFC 3309 and obsoleted by RFC 4960)
See also
*
*
Session Initiation Protocol
The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating communication sessions that include voice, video and messaging applications. SIP is used in Internet telephony, in private IP telepho ...
(SIP) – which may initiate multiple streams over SCTP, TCP, or UDP
*
Multipath TCP – which allows a TCP connection to use multiple paths to maximize resource usage and increase redundancy
*
Happy Eyeballs – originally designed for efficient selection of IPv4 or IPv6 for a connection; could also be adapted to select from different transport protocols such as TCP and SCTP
Notes
References
External links
sigtran (archived)*
*
*
SCTP workgroup for Linux*
*
*
{{Authority control
Computer-related introductions in 2000
Streaming
Internet Standards
Transport layer protocols
Multihoming