The Stream Control Transmission Protocol (SCTP) is a
computer networking
A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ma ...
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 kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchr ...
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 ...
of the
Internet protocol suite
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
. Originally intended for
Signaling System 7
Signalling System No. 7 (SS7) is a set of telephony signaling protocols developed in 1975, which is used to set up and tear down telephone calls in most parts of the world-wide public switched telephone network (PSTN). The protocol also perform ...
(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 packets) to other hosts on an Internet Protocol (IP) network ...
(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 protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly ...
(TCP). Unlike UDP and TCP, the protocol supports
multihoming
Multihoming is the practice of connecting a 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 network. Connecting ...
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 and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and a ...
(IETF) in . The SCTP reference implementation was released as part of
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
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 and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and a ...
Signaling Transport (
SIGTRAN SIGTRAN is the name, derived from ''signaling transport'', of the former Internet Task Force (I) working group that produced specifications for a family of protocols that provide reliable datagram service and user layer adaptations for Signaling ...
) 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 h ...
, 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 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 line of packets is held up in a queue by a first packet. Examples include input buffered network switches, out-of-order delivery a ...
, 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 SIGTRAN is the name, derived from ''signaling transport'', of the former Internet Task Force (I) working group that produced specifications for a family of protocols that provide reliable datagram service and user layer adaptations for Signaling ...
. 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 center of the circle and whose endpoints lie on the circle. It can also be defined as the longest chord of the circle. Both definitions are also valid for ...
protocol and
Reliable Server Pooling Reliable Server Pooling (RSerPool) is a computer protocol framework for management of and access to multiple, coordinated (pooled) servers. RSerPool is an IETF standard, which has been developed by the IETF RSerPool Working Group and documented i ...
(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
Nagle's algorithm is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. It was defined by John Nagle while working for Ford Aerospace. It was published in 1984 as a Req ...
). If and when such a small delay is undesirable, the application must explicitly request undelayed transmission on a case-by-case basis using th
push facility(i.e. by setting the PSH flag in the TCP packet header). 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.
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 TCP. Each consists of two basic sections:
# The ''common header'', which occupies the first 12 bytes. In the adjacent diagram, this header is highl ...
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 like hands, in most cases accompanied by a brief up-and-down movement of the grasped hands. Customs surrounding handshakes a ...
(compared to
TCP 3-way handshake) to protect against
SYN flooding 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 SIGTRAN is the name, derived from ''signaling transport'', of the former Internet Task Force (I) working group that produced specifications for a family of protocols that provide reliable datagram service and user layer adaptations for Signaling ...
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.
SCTP is sometimes a good
fingerprinting
A fingerprint is an impression left by the friction ridges of a human finger. The recovery of partial fingerprints from a crime scene is an important method of forensic science. Moisture and grease on a finger result in fingerprints on surfac ...
candidate. Some operating systems ship with SCTP support enabled, and, as it is not as well known as TCP or UDP, it is sometimes overlooked in firewall and intrusion detection configurations, thus often permitting probing traffic.
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, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s implement SCTP:
*
AIX
Aix or AIX may refer to:
Computing
* AIX, a line of IBM computer operating systems
*An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set
* Athens Internet Exchange, a European Internet exchange point
Places Belgi ...
Version 5 and newer
*
NetBSD
NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
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. The system is a package of routing, switching, internetworking, and ...
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 Ju ...
since version 1.4, however support is being deprecated in version 4.2
*
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, version 7 and above, contains the reference SCTP implementation
*
HP-UX
HP-UX (from "Hewlett Packard Unix") is Hewlett Packard Enterprise's proprietary implementation of the Unix operating system, based on Unix System V (initially System III) and first released in 1984. Current versions support HPE Integrity Ser ...
, 11i v2 and above
*
illumos
Illumos (stylized as illumos) is a partly free and open-source Unix operating system. It is based on OpenSolaris, which was based on System V Release 4 (SVR4) and the Berkeley Software Distribution (BSD). Illumos comprises a kernel, device d ...
*
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
kernel 2.4 and above
*
QNX
QNX ( or ) is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. QNX was one of the first commercially successful microkernel operating systems.
The product was originally developed in the early ...
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
Solaris may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Solaris'' (1972 film), directed by ...
10 and above
*
VxWorks
VxWorks is a real-time operating system (or RTOS) developed as proprietary software by Wind River Systems, a wholly-owned subsidiary of Aptiv. First released in 1987, VxWorks is designed for use in embedded systems requiring real-time, determi ...
versions 6.2.x to 6.4.x, and 6.7 and newer
Third-party drivers:
*
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
:
** 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 operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
:
** SCTP Network Kernel Extension for Mac OS X
Userspace
A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour.
Kernel ...
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 upgrade to its predecessors, Windows 2000 for high-end and ...
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 to wor ...
*
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 thin ...
Tunneling over UDP
In the absence of native SCTP support in operating systems, it is possible to
tunnel
A tunnel is an underground passageway, dug through surrounding soil, earth or rock, and enclosed except for the entrance and exit, commonly at each end. A pipeline is not a tunnel, though some recent tunnels have used immersed tube cons ...
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
In computing, Internet Protocol Security (IPsec) is a secure network protocol suite that authenticates and encrypts packets of data to provide secure encrypted communication between two computers over an Internet Protocol network. It is used in ...
* 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 (SIP) – which may initiate multiple streams over SCTP, TCP, or UDP
*
Multipath TCP
Multipath TCP (MPTCP) is an ongoing effort of the Internet Engineering Task Force's (IETF) Multipath TCP working group, that aims at allowing a Transmission Control Protocol (TCP) connection to use multiple paths to maximize throughput and inc ...
– which allows a TCP connection to use multiple paths to maximize resource usage and increase redundancy
*
Happy Eyeballs
Happy Eyeballs (also called Fast Fallback) is an algorithm published by the IETF that makes dual-stack applications (those that understand both IPv4 and IPv6) more responsive to users by attempting to connect using both IPv4 and IPv6 at the same ...
– 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)Openss7.orgSCTP workgroup for LinuxMichael Tüxen's SCTP PageLode Coene's SCTP PageThomas Dreibholz's SCTP Project Page
{{Authority control
Streaming
Internet Standards
Transport layer protocols
Multihoming