SCTP
   HOME

TheInfoList



OR:

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 ...
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 synch ...
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-e ...
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 sui ...
. 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 perf ...
(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) netwo ...
(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 commonl ...
(TCP). Unlike UDP and TCP, the protocol supports multihoming 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 an ...
(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 an ...
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. ...
, 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-idThe 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. 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 f ...
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 ...
(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 Re ...
). 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 attack A SYN flood is a form of denial-of-service attack 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, which can consume enough ...
s. 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 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 flood A SYN flood is a form of denial-of-service attack 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, which can consume enough ...
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. 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 daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
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 Belgiu ...
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 ava ...
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 ...
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 Se ...
, 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, whi ...
kernel 2.4 and above * QNX Neutrino Realtime OS, 6.3.0 to 6.3.2, deprecated since 6.4.0 * Tru64 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 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 ...
: ** 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 la ...
: ** 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. Kerne ...
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 release to manufacturing, released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Wind ...
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 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 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.org

SCTP workgroup for Linux

Michael Tüxen's SCTP Page

Lode Coene's SCTP Page

Thomas Dreibholz's SCTP Project Page
{{Authority control Streaming Internet Standards Transport layer protocols Multihoming