Fact-checked by Grok 2 weeks ago

Stream Control Transmission Protocol

The Stream Control Transmission Protocol (SCTP) is a reliable, message-oriented protocol that operates on top of connectionless packet networks such as , providing services to applications between a pair of transport addresses or . It establishes an for connection-oriented communication, supporting acknowledged, error-free transfer of user messages while preserving message boundaries, unlike TCP's byte-stream model. Developed by the (IETF) Signaling Transport () working group, SCTP was initially motivated by the need to transport (PSTN) signaling messages, such as SS7, over IP networks with high reliability and resilience. The protocol was first specified in 2960 in October 2000, refined in 4960 in September 2007 (which obsoleted earlier versions and incorporated errata from 4460), and further updated in 9260 in June 2022 (obsoleting 4960). While rooted in signaling, SCTP's design enables broader applications requiring robust data delivery, such as in general-purpose networking where multi-homing and multi-streaming mitigate single points of failure. Key features of SCTP include multi-streaming, which allows multiple independent streams within a single association to avoid ; multi-homing, enabling endpoints to use multiple addresses for fault-tolerant path selection; and congestion and flow control mechanisms similar to , including slow-start and congestion avoidance. It also supports optional unordered delivery, data fragmentation to fit path MTU, message bundling for efficient packet use, and measures like tags and to resist flooding and masquerade attacks. These capabilities make SCTP particularly suitable for scenarios demanding , such as real-time communications and distributed systems.

Overview

Definition and Purpose

The Stream Control Transmission Protocol (SCTP) is an IETF-standardized protocol defined in 9260 (obsoleting 4960), operating on top of connectionless packet networks such as to provide reliable data transfer services. It combines the reliability mechanisms of , including acknowledged and error-free delivery with congestion control, with UDP-like preservation of message boundaries, enabling message-oriented transmission rather than a continuous byte stream. This design ensures that applications receive complete messages without fragmentation artifacts at the receiver side. The core purpose of SCTP is to support reliable and ordered delivery of messages for applications requiring , particularly in signaling over networks, such as the transport of SS7 (Signaling System No. 7) messages via the protocol suite. By facilitating sequenced delivery within streams and optional multi-path redundancy, SCTP addresses the demands of telecom environments where network failures must not disrupt signaling. It was developed specifically to overcome limitations in and , such as TCP's susceptibility to in message-based applications and UDP's lack of built-in reliability, making it suitable for broader uses beyond . At a high level, SCTP's key benefits include avoidance of through multi-streaming, which allows independent handling of message streams, and enhanced via , enabling multiple network paths for without session interruption. These features provide robust support for and mission-critical communications in IP-based infrastructures.

Comparison to TCP and UDP

The Stream Control Transmission Protocol (SCTP) combines features of both and , addressing limitations in each for specific applications. Unlike , which provides a byte-stream oriented service where message boundaries are not preserved and the receiver must parse the stream to delineate messages, SCTP is message-oriented, delivering complete messages as sent by the application, similar to . Both SCTP and offer reliable, ordered delivery with acknowledgments, retransmissions, and congestion control, but SCTP introduces multi-streaming within a single association, allowing independent ordering per stream to mitigate head-of-line (HOL) blocking that plagues 's single-stream model. In contrast to UDP's connectionless, unreliable service lacking built-in reliability, congestion control, or management, SCTP establishes akin to TCP connections but enhances them with features like multi-homing for path redundancy across multiple IP addresses. provides low-overhead, suitable for latency-sensitive applications but offers no guarantees against loss or reordering, whereas SCTP adds TCP-like reliability mechanisms, including selective acknowledgments and flow control, while preserving UDP-style message boundaries. SCTP fills a niche for use cases requiring TCP's reliability combined with UDP's flexibility, such as transporting (PSTN) signaling over IP or (VoIP) applications, where multi-streaming prevents delays in independent message flows like control and media signaling. TCP remains preferred for general-purpose transfer, such as web browsing or file downloads, due to its widespread implementation, while UDP suits real-time, loss-tolerant scenarios like video streaming or online gaming.
FeatureSCTPTCPUDP
Service ModelMessage-oriented, reliable associations with multi-streamingByte-stream oriented, reliable single streamDatagram-oriented, unreliable best-effort
Reliability & OrderingReliable, per-stream ordering; mitigates HOL blockingReliable, strict ordering; prone to HOL blockingUnreliable, no ordering
Congestion ControlYes, TCP-like with per-destination adjustmentsYes, window-basedNo
Connection ManagementAssociations with multi-homing supportConnectionsConnectionless
OverheadHigher (e.g., chunk-based headers, ~12-16 bytes minimum)Moderate (~20 bytes header)Minimal (~8 bytes header)
Performance-wise, SCTP incurs greater overhead than TCP or UDP due to its chunk-structured packets and support for multi-streaming and multi-homing, potentially doubling packet counts for large transfers in certain scenarios. SCTP may exhibit slightly lower throughput than TCP in lossless environments due to this overhead. However, under (e.g., 1-2%), SCTP outperforms TCP by reducing through multi-streaming—demonstrated in experiments where SCTP achieved 10-15% lower response times—and offers better control than both, making it advantageous in error-prone networks like or links.

History and Development

Origins and Motivation

The Stream Control Transmission Protocol (SCTP) originated in the late 1990s as part of IETF efforts to enable the transport of Signaling System No. 7 (SS7) signaling messages over networks, driven by the ongoing migration from traditional (PSTN) infrastructures to -based systems. This shift was motivated by the need to leverage the scalability and cost-efficiency of while preserving the reliability essential for operations. A primary motivation for SCTP's development stemmed from the limitations of existing protocols in handling telecom signaling traffic. TCP's strict byte-stream orientation led to head-of-line blocking, where the loss of a single message could delay the delivery of subsequent independent signaling messages, which was unacceptable for time-sensitive, multi-message interactions in telephony. Conversely, UDP's lack of built-in reliability mechanisms posed significant risks for transporting critical signaling data that required guaranteed delivery and error detection. SCTP was initially developed by the IETF's Signaling (SIGTRAN) working group to provide a solution that ensured reliable and ordered delivery of signaling messages, incorporating capabilities to maintain service continuity during network disruptions. Early challenges in this development centered on the requirement for multi-homing support, allowing endpoints to use multiple addresses and paths to achieve in carrier-grade environments where link failures could not be tolerated.

Standardization Process

The standardization of the Stream Control Transmission Protocol (SCTP) began within the (IETF) as an effort to address the transport needs of telephony signaling over IP networks. The protocol was initially developed by the Signaling Transport (SIGTRAN) Working Group, which focused on adapting traditional (PSTN) signaling protocols for IP environments. This work culminated in the publication of 2960 in October 2000, which defined SCTP as an experimental protocol under the oversight of the IETF Transport Area. The Internet Engineering Steering Group (IESG), responsible for approving IETF standards, endorsed this RFC to enable early experimentation and implementation feedback. Following years of implementation experience, interoperability testing, and community input, SCTP advanced to Proposed Standard status with the release of RFC 4960 in September 2007. This revision, produced under the Transport Area Working Group (TSVWG)—which had assumed responsibility from —included refinements to core mechanisms such as association setup, data chunk handling, and congestion control, while maintaining with the experimental version. The IESG's approval of this status reflected the protocol's maturity and demonstrated stability across diverse implementations. Further evolution occurred through targeted extensions and clarifications. In May 2004, RFC 3758 introduced the Partial Reliability Extension (PR-SCTP), allowing applications to specify reliability levels for individual messages, which was standardized by TSVWG to support time-sensitive data like media streams without full retransmission overhead. Similarly, RFC 4895, published in August 2007, added support for authenticated chunks to enhance by verifying the of control information, also under TSVWG auspices and IESG approval. These extensions were integrated into the core specification over time. The most recent update, RFC 9260 in June 2022, obsoleted RFC 4960 and updated the specification as a Proposed Standard, incorporating clarifications on protocol ambiguities, improved support, and alignments with modern network practices, ensuring robustness in contemporary environments. The IESG's ratification marked the culmination of over two decades of iterative refinement. As of 2025, the TSVWG continues to refine SCTP with drafts such as an update to authenticated chunks (draft-ietf-tsvwg-rfc4895-bis) to address implementation issues and enhance security.

Adoption and Applications

The Stream Control Transmission Protocol (SCTP) has seen its primary adoption within the telecommunications sector, particularly through the Signaling Transport (SIGTRAN) framework, where it serves as the reliable transport layer for SS7 signaling over IP networks. Protocols such as M2UA and M3UA, defined by the IETF, utilize SCTP to encapsulate and transport SS7 Message Transfer Part (MTP) layers, enabling the migration of traditional telephony signaling to IP-based infrastructures without altering upper-layer protocols. This integration has been instrumental in supporting voice and data network convergence, with SCTP providing multihoming and multi-streaming to enhance reliability in carrier-grade environments. Beyond SIGTRAN, SCTP underpins key applications in modern mobile networks, including the Diameter protocol used for authentication, authorization, and accounting (AAA) in LTE and 5G architectures. Diameter, as specified in RFC 6733, supports SCTP as a transport option alongside TCP, leveraging SCTP's congestion control and ordered delivery for signaling between network elements like the Mobility Management Entity (MME) in LTE or the Access and Mobility Management Function (AMF) in 5G. In WebRTC, SCTP enables data channels for peer-to-peer communication, with extensions like stream reconfiguration (RFC 6525) mandated for dynamic stream management over DTLS-secured connections, as outlined in RFC 8831. Additionally, SCTP shows potential in Delay-Tolerant Networking (DTN) for space communications, where convergence layers like SCTPCL adapt it for disrupted links in satellite and deep-space scenarios. SCTP's adoption gained traction in telecommunications starting in the early , following its standardization in 2960, with widespread deployment in SIGTRAN-enabled networks by the mid-decade to support IP-based SS7 transport. However, its uptake in the general has remained limited due to compatibility issues with (NAT) devices and firewalls, which often lack support for SCTP's multi-homing and port multiplexing features, hindering traversal in residential and enterprise environments. Native OS support is primarily confined to and kernels, with userspace implementations available for other platforms like Windows and macOS, further constraining broader deployment. Despite these challenges, SCTP's role is expanding in and (IoT) ecosystems, where its multi-path capabilities align with requirements for resilient signaling in high-mobility and low-latency scenarios, such as between base stations and core network functions. In , SCTP facilitates Diameter-based interfaces and supports the growing demands of massive connectivity by providing efficient, message-oriented transport over IP. This resurgence underscores SCTP's value in specialized, reliability-critical domains, even as it constitutes a small fraction of overall .

Core Features

Message-Oriented Transmission

The Stream Control Transmission Protocol (SCTP) operates in a message-oriented manner, delivering complete user messages as individual chunks to the receiving application, thereby preserving the original message boundaries without requiring application-level framing or mechanisms. This contrasts sharply with byte-stream protocols like , which transmit data as a continuous octet stream and necessitate additional application-layer logic to delineate message boundaries, potentially introducing complexity and overhead. In SCTP, each chunk encapsulates an entire user message or a fragment thereof; if fragmentation occurs due to the path's (MTU), the protocol reassembles the fragments into the complete message before delivery to the upper layer, using the Beginning (B) and Ending (E) bits in the chunk flags to indicate fragment positions. This message-oriented design simplifies application development, particularly for protocols with fixed-size or self-delimiting messages, such as Signaling System No. 7 (SS7) used in (PSTN) signaling over networks, where maintaining message integrity is critical to avoid misinterpretation of signaling data. By preserving boundaries natively, SCTP reduces the need for buffering and demultiplexing at the application level, minimizing latency and resource consumption compared to byte-stream alternatives that may require buffering entire streams to extract messages. For instance, in telephony signaling applications, this feature ensures that discrete SS7 messages are handled as atomic units, preventing the issues inherent in when messages of varying lengths are concatenated. To facilitate upper-layer processing, each SCTP DATA chunk includes a 32-bit Payload Protocol Identifier (PPID) field, which specifies the type of or application encapsulated within the , allowing the receiver to route or interpret the payload appropriately without prior . The PPID is set by the sender based on the upper-layer (e.g., a value indicating SS7 or another signaling ) and remains unchanged even if the is fragmented, ensuring consistent identification upon reassembly. SCTP further supports message integrity in scenarios involving unordered delivery by allowing individual messages within a stream to be marked as unordered via the U (Unordered) bit in the DATA chunk flags; such messages are delivered to the application as soon as they arrive, bypassing transmission sequence number (TSN) ordering while still ensuring the message remains intact and complete. This mechanism preserves the boundaries and wholeness of each user message, even when interleaved with ordered deliveries, without compromising the overall reliability provided by SCTP's acknowledgments and retransmissions.

Multi-Streaming

Multi-streaming in the Stream Control Transmission Protocol (SCTP) enables the transmission of multiple independent logical streams of data within a single association, allowing for parallel handling of user messages while preserving message boundaries from the . This feature addresses limitations in protocols like , where a single byte-stream can cause across all data, by ensuring that delays or losses in one stream do not impede delivery in others. During association establishment, endpoints negotiate the number of streams to support dynamic allocation tailored to application needs. The initiating endpoint specifies the number of outbound streams (OS) it requires and the maximum inbound streams (MIS) it can accept in the INIT chunk, using 16-bit unsigned integer parameters with a minimum value of 1. The responding endpoint replies with its own OS and MIS in the INIT ACK chunk, and the effective counts are determined by taking the minimum of the requested and offered values for each direction, resulting in up to streams per (though practical limits are often lower). Each stream is uniquely identified by a 16-bit Stream Identifier (SID) ranging from 0 to the negotiated count minus one, and every DATA chunk must include a valid SID; invalid SIDs trigger an ERROR chunk. The upper layer is notified of the inbound stream count via the COMMUNICATION UP primitive upon completion. Delivery within each stream follows sequenced semantics using a 16-bit Stream Sequence Number (SSN) for ordered messages (U-bit = 0 in the DATA chunk), ensuring in-order presentation to the application per stream. However, streams remain independent, so messages from different streams can be delivered out of order relative to one another, mitigating — for instance, a delayed message on stream 0 does not prevent timely delivery of messages on stream 1. Unordered delivery (U-bit = 1) is also supported within a stream for time-sensitive data, bypassing SSN sequencing entirely. In telephony signaling applications, such as transporting (PSTN) messages over , multi-streaming allows strict ordering for messages affecting the same call resource while permitting independent delivery of loosely coupled alerts or status updates on separate streams, enhancing overall efficiency. Similarly, in mobile network interfaces like S1-MME or X2, multiple signaling streams can carry parallel control and user plane messages without interference. For delivery, such as web pages over a single association, components like text and images can use distinct streams to avoid blocking smaller elements by larger ones. The stream reset extension, defined in RFC 6525, provides dynamic reconfiguration capabilities post-association, allowing endpoints to add, delete, or reset streams without terminating the association. This is achieved via the RE-CONFIG chunk (Type 130), which carries parameters such as Outgoing SSN Reset Request (Type 13) to reset the sender's stream sequence numbers to zero, or Add Outgoing Streams Request (Type 17) to increase the stream count. The receiver acknowledges with a Re-configuration Response Parameter (Type 16), indicating success or denial, enabling applications to adapt to changing requirements, like reallocating streams for varying message priorities in signaling protocols.

Multihoming and Multi-Path Support

SCTP supports , allowing an to be associated with multiple addresses, which enhances reliability by providing redundant paths for data transmission. During association establishment, endpoints declare their transport addresses—combinations of addresses and the SCTP port—via the and chunks using IPv4 Address or parameters. One of these addresses is selected as the primary path for initial outbound data transmission, while alternate paths serve as backups. Path management in multihomed SCTP associations involves independent monitoring and maintenance of each destination . (HB) chunks are periodically sent to idle paths to verify , with responses via HEARTBEAT ACK chunks; successful acknowledgments reset path error counters, while failures trigger retransmission timeouts (RTOs). Each destination maintains its own RTO, calculated using smoothed round-trip time (SRTT) and round-trip time variation (RTTVAR) measurements specific to that , enabling adaptive handling of varying conditions. Upon detecting primary —typically after exceeding the maximum retransmission —SCTP initiates by switching to an active alternate without interrupting the association. Extensions to SCTP enable concurrent multipath transfer (CMT), allowing simultaneous use of multiple paths for load balancing and increased throughput. In CMT, new data chunks are distributed across available paths based on congestion window sizes, while retransmissions may use the same or different paths to avoid head-of-line blocking. This approach aggregates bandwidth from disjoint paths, yielding throughput gains proportional to the number of independent paths, as demonstrated in early evaluations. Multihoming and multipath support provide significant benefits for reliability in environments like and networks, where path failures due to handovers or link instability are common. By enabling seamless and potential aggregation, SCTP maintains session continuity without application-layer intervention, making it suitable for signaling and LTE roaming scenarios.

Protocol Operation

Association Establishment

The Stream Control Transmission Protocol (SCTP) establishes an association between two endpoints using a four-way , which provides enhanced compared to TCP's three-way handshake by incorporating a state cookie mechanism to mitigate denial-of-service attacks such as SYN-flooding. This process ensures that resources are not allocated until the initiator's legitimacy is verified, allowing SCTP to support reliable, message-oriented communication over potentially multiple network paths. The handshake begins when the initiator (client) sends an INIT chunk to the responder (), containing key parameters to negotiate the association. The INIT chunk includes an Initiate Tag (a random 32-bit value chosen by the initiator, excluding 0), the advertised receiver window credit (a_rwnd), the number of outbound streams the initiator wishes to use, the maximum number of inbound streams it can handle, the Initial Transmission Sequence Number (TSN, also a random 32-bit value), and a list of transport addresses (, , or host names) to support . The Verification Tag in the INIT chunk is set to 0, and upon sending, the initiator starts a T1-init and enters the COOKIE-WAIT . These parameters allow the endpoints to agree on stream counts (with the effective range being 0 to the minimum of the negotiated values minus one) and initialize sequence numbering for future data transfer. Upon receiving the INIT, the responder replies with an INIT-ACK chunk, which echoes the initiator's Initiate Tag as its Verification Tag and includes its own Initiate Tag (random 32-bit value), a_rwnd, stream numbers, Initial TSN, and a State Cookie. The State Cookie is a critical security feature: it encapsulates the association state information (including the INIT parameters and a ) along with a (MAC) computed using a secret key known only to the responder, but defers actual (such as creating a Transmission Control Block, or ) to avoid resource exhaustion from spoofed INITs. The cookie has a limited lifespan (default 60 seconds, configurable via Valid.Cookie.Life) to prevent replay attacks. The responder does not start a timer here but remains in a provisional state until cookie validation. The initiator then sends a COOKIE-ECHO chunk containing the unchanged State Cookie from the INIT-ACK, starting a T1-cookie and transitioning to the COOKIE-ECHOED state. This step demonstrates the initiator's continued interest and ability to reach . Upon receiving the COOKIE-ECHO, validates the cookie by recomputing the and checking the timestamp; if valid, it creates the , initializes the Cumulative TSN Ack Point to one less than its Initial TSN, assigns the initiator's Initiate Tag as the peer's Verification Tag, and sends a COOKIE-ACK chunk to confirm. The initiator, upon receiving the COOKIE-ACK, stops its T1-cookie and enters the ESTABLISHED state, completing the association. If the cookie is invalid or stale, sends an chunk with a "Stale Cookie" cause and may retransmit the INIT-ACK. Verification Tags play a pivotal role throughout the and lifetime: they are 32-bit values that remain constant per (initiator uses the responder's Initiate Tag, and vice versa) to validate incoming packets and prevent . TSNs are initialized separately for each endpoint in the and INIT-ACK chunks, providing independent spaces for outbound data chunks and ensuring ordered delivery within streams once established. SCTP also handles simultaneous initiation, where both endpoints send INIT chunks to each other concurrently, by relying on unique Initiate Tags for collision detection. In this case, each endpoint treats the incoming INIT as a response, generates an INIT-ACK with its original parameters and a State Cookie that includes Tie-Tags (derived from the tags), and proceeds through the cookie exchange to resolve the overlap without aborting. This mechanism ensures robust establishment even in symmetric scenarios, using the distinct tags to differentiate and validate the association state.

Data Transfer Mechanisms

In SCTP, data transfer occurs through the exchange of chunks within packets, enabling reliable message-oriented communication between endpoints. User is encapsulated in DATA chunks, each assigned a unique Transmission Sequence Number (TSN) to facilitate ordering, acknowledgment, and duplicate detection across the association. These chunks also include a to direct the to one of up to 65536 independent , preventing by allowing parallel processing of messages from different streams. Within a stream, a Stream Sequence Number (SSN) tracks the order of delivery, with an optional unordered flag permitting out-of-sequence delivery for time-sensitive when intra-stream ordering is not required. Acknowledgments are provided via Selective Acknowledgment (SACK) chunks, which report the highest consecutive TSN received (Cumulative TSN ACK) and identify additional received TSNs beyond that point using Gap Ack Blocks to handle non-contiguous arrivals efficiently. This selective mechanism allows the receiver to acknowledge multiple chunks without retransmitting the entire sequence, reducing overhead compared to cumulative-only acknowledgments. SACKs may also include a Forward TSN parameter in certain extensions, but in standard operation, they trigger retransmissions for unacknowledged TSNs. Reliability is ensured by associating a retransmission timer with each outstanding TSN; if no corresponding acknowledgment arrives before the timer expires, the DATA chunk is retransmitted to the appropriate destination address. To optimize bandwidth, SCTP supports bundling multiple chunks—both DATA and —into a single packet, provided they do not exceed the path's and respect stream ordering constraints. This bundling enhances throughput by amortizing header overhead, while the per-TSN tracking maintains end-to-end reliability without relying on lower-layer segmentation. Congestion integrates with these mechanisms to adjust transmission rates, but the core transfer process remains chunk-based. For applications requiring partial reliability, the PR-SCTP extension (RFC 3758) introduces timed reliability, where expires after a specified lifetime. The sender uses FORWARD-TSN chunks to advance the receiver's Cumulative TSN , instructing it to discard stale, unacknowledged chunks and release associated resources, thus preventing indefinite retransmissions of non-critical . This optional feature supports policies like "timed reliability" for discarding after a or "counted reliability" for a fixed number of retransmissions, balancing reliability with timeliness in scenarios such as media streaming.

Congestion Control and Reliability

SCTP employs a congestion control mechanism that is mandatory for all implementations and closely mirrors 's algorithms, including slow-start, congestion avoidance, and fast retransmit/fast recovery, but operates independently per destination transport address to support . This per-path approach maintains separate congestion windows (cwnd) and slow-start thresholds (ssthresh) for each destination, allowing the protocol to adapt to varying network conditions across multiple paths without a global loss recovery state, unlike which uses a single-path model. In the slow-start phase, the initial (cwnd) SHOULD NOT be set larger than 4 times the path MTU (PMTU) and MUST NOT be larger than 10 times PMTU unless prior path characteristics are known [RFC4821]. It grows exponentially upon receipt of successful s: for each acknowledging new data, cwnd increases by the minimum of the newly acknowledged bytes or the PMTU; alternatively, when the path is fully utilized, it increases by up to one MTU per round-trip time (RTT). Once cwnd reaches ssthresh—initially set arbitrarily high, such as the largest permitted receive value—the transitions to avoidance, where cwnd grows linearly by adding \frac{N \times PMTU}{cwnd} bytes for each acknowledgment of N new bytes, or by one MTU per RTT when fully utilized. Fast retransmit is triggered by the receipt of 4 consecutive SACKs containing the same Gap Ack Block indicating missing TSNs, prompting immediate retransmission of the lost data. During fast , ssthresh is set to the maximum of half the current flightsize or 4 times the MTU, and cwnd is temporarily set to ssthresh plus 3 times the MTU to allow limited new transmissions while recovering lost packets. Upon a timeout expiration of the retransmission (T3-rtx), ssthresh is set to the maximum of half the flightsize or 4 times the MTU (or half cwnd or 4 times MTU if flightsize is unavailable), and cwnd is reset to its initial value to restart slow-start. Retransmission timeouts are calculated per path using the formula RTO = SRTT + 4 \times RTTVAR, where SRTT (smoothed RTT) is updated as SRTT \leftarrow (1 - \alpha) \times SRTT + \alpha \times RTT with \alpha = 0.125, and RTTVAR (RTT variance) as RTTVAR \leftarrow (1 - \beta) \times RTTVAR + \beta \times |SRTT - RTT| with \beta = 0.25. Initial values are RTO.Initial = 3 seconds, SRTT unset (leading to initial RTO), and RTTVAR set to RTO.Initial / 2; the RTO doubles upon each expiry up to a maximum of 60 seconds and collapses to the calculated value after a new RTT sample. For reliability, SCTP enhances data integrity through duplicate Transmission Sequence Number (TSN) detection, where Selective ACKnowledgment (SACK) chunks include a field reporting the number of duplicate TSNs received, listed after gap acknowledgment blocks to inform the sender of potential losses without relying solely on gaps. This aids in precise loss detection and retransmission, complementing the four-SACK threshold for fast recovery. Additionally, path MTU discovery is performed dynamically per destination address, fragmenting user messages to fit the smallest PMTU across paths and adjusting based on ICMP "Packet Too Big" messages as per RFC 4821, ensuring packets conform to network limits without optional PMTU chunks in core SCTP. These mechanisms distinguish SCTP from TCP by maintaining independent congestion and reliability state per destination, enabling resilient operation over multiple paths without the head-of-line blocking or global state dependencies seen in TCP.
AspectSCTP CharacteristicsTCP Characteristics
Congestion Window (cwnd)Per-destination addressSingle for the connection
Slow-Start Threshold (ssthresh)Per-path, initial arbitrarily high (e.g., max rwnd)Single, initial unlimited
Loss RecoveryIndependent per-path, no global coordinationGlobal for the connection
RTO ManagementPer-path, doubles on expiry up to 60sSingle, similar doubling behavior

Association Termination

The Stream Control Transmission Protocol (SCTP) supports two primary methods for terminating an association: graceful shutdown, which ensures all outstanding data is delivered before closure, and abortive termination, which immediately ends the association without guaranteeing delivery. These procedures are defined to maintain reliability while allowing for orderly or emergency discontinuation of communication between endpoints. Graceful shutdown begins when an endpoint has no unacknowledged data and enters the SHUTDOWN-PENDING state, after which it sends a SHUTDOWN chunk to its peer containing the highest acknowledged Cumulative TSN. Upon receiving the SHUTDOWN chunk, the peer enters the SHUTDOWN-RECEIVED state, stops accepting new data from its upper layer, and sends a SHUTDOWN-ACK chunk in response, including its own Cumulative TSN Ack to confirm receipt of all prior data. The original endpoint then acknowledges the SHUTDOWN-ACK with a standalone ACK chunk and sends a SHUTDOWN COMPLETE chunk to signal the end of the procedure, at which point both endpoints transition to the CLOSED state and release association resources. To handle potential packet loss, the sender of the SHUTDOWN or SHUTDOWN-ACK starts the T2-shutdown timer upon transmission; if no response is received within the current RTO (initially 3 seconds), the chunk is retransmitted until a response arrives or the timer expires multiple times. Additionally, after sending the SHUTDOWN COMPLETE, the endpoint starts the T5-shutdown-guard timer (set to 5 times the maximum RTO value) to protect against delayed or stray packets before fully closing the association. Abortive termination is used for immediate closure, such as in response to errors or user requests, and is initiated by sending an ABORT chunk to the peer without bundling any chunks. The ABORT chunk includes the peer's Verification Tag in the outbound packet header; if sent in response to an out-of-the-blue (OOTB) packet, the T-bit in the chunk flags is set to indicate no exists, but for established associations, the tag is reflected to ensure proper . Upon receipt, the receiving immediately discards the association, stops all timers, and notifies its upper layer of the termination without attempting to acknowledge any pending data. This method provides no guarantee of data delivery but allows rapid resource cleanup. In cases of simultaneous shutdown, where both endpoints initiate the procedure concurrently by sending SHUTDOWN chunks, the association proceeds by each endpoint responding to the other's SHUTDOWN with a SHUTDOWN-ACK, entering the SHUTDOWN-ACK-SENT state, and then exchanging final ACKs and SHUTDOWN COMPLETE chunks to reach closure. Throughout all termination procedures, SCTP ensures that the association only fully closes after confirmation that all sent data has been acknowledged, preventing loss of in-flight messages during the transition from the ESTABLISHED state to CLOSED. State diagrams in the specification outline these transitions, including intermediate states like SHUTDOWN-SENT and SHUTDOWN-RECEIVED, to manage the ordered release of transport addresses and transmission control blocks.

Packet Format

Overall Structure

The Stream Control Transmission Protocol (SCTP) organizes its data into packets that consist of a single common header followed by one or more chunks, enabling the bundling of multiple pieces of control or user data within a single transmission unit. This structure supports efficient of streams and associations over networks, with the overall packet size limited by the path (MTU), typically up to 65,535 bytes including the header and all chunks. Note that 9260 (2022) is the current specification, obsoleting 4960 (2007), with the packet format remaining consistent but including clarifications such as the chunk flags registry ( 6096). The common header, which is 12 bytes in length, begins with a 16-bit field identifying the sending and a 16-bit destination port field specifying the receiving , allowing SCTP to demultiplex packets at the similar to or . Following these are a 32-bit verification tag, used to validate the association context and prevent misdelivery, and a 32-bit field computed using the CRC32c to ensure across the entire packet. Each chunk within the packet follows a standardized layout starting with an 8-bit chunk type field that indicates its purpose, an 8-bit flags field for chunk-specific s, and a 16-bit field denoting the total size of the chunk header and value in bytes. The variable-length value field carries the actual chunk data, which is padded with zero to three bytes at the end if necessary to align the chunk to a 4-byte , ensuring consistent processing without including the in the calculation. Specific chunk usages, such as data transfer or control signaling, are detailed in subsequent sections. The CRC32c encompasses the complete packet, including the common header, all chunks, and any bytes, and is computed after initializing the field to zero and setting the verification tag; receivers must validate this to accept the packet. This comprehensive coverage protects against transmission errors in multihomed environments where SCTP operates.

Chunk Types and Parameters

SCTP packets consist of one or more chunks, each serving as a unit of that can carry either or user data. Chunks are the fundamental building blocks of the protocol, allowing for multi-streaming and bundling of multiple message types within a single packet. The chunk header is common to all types and comprises three fields: an 8-bit Type field identifying the chunk, an 8-bit Flags field for chunk-specific options, and a 16-bit field specifying the total size in bytes, including the header and any to a 4-byte boundary. Parameters within chunks follow a Type-Length-Value (TLV) format, providing a flexible structure for optional or variable-length data. Each parameter includes a 16-bit Type field, a 16-bit Length field (encompassing the Type and Length fields), and a variable-length Value field. For example, the (Type 0x8008) lists additional chunk types or features supported by the , enabling of optional capabilities.

Control Chunks

Control chunks manage association setup, maintenance, and teardown. The INIT chunk (Type 1) initiates an and includes mandatory parameters such as the Initiate Tag (32 bits), advertised receiver credit (a_rwnd, 32 bits), number of outbound and inbound streams (16 bits each), and Initial TSN (32 bits). It may also contain optional TLV parameters like IPv4 (Type 5, with a 32-bit value) for specifying transport addresses or the Cookie parameter (Type 7) in responses, which includes a cookie with a (), , and lifespan for security during initialization. The chunk (Type 3) provides selective acknowledgment of received , containing a Cumulative TSN (32 bits) indicating the highest sequentially acknowledged TSN, a_rwnd (32 bits) updating the receiver's space, and optional Gap Ack Blocks and Duplicate TSNs to report gaps or duplicates in the TSN sequence for efficient retransmission. The chunk (Type 4) probes path reachability in multihomed associations, carrying a TLV-based Heartbeat Information parameter with a 64-bit and arbitrary path-specific , which the peer echoes back in a HEARTBEAT (Type 5) to confirm liveness.

Data Chunks

Data chunks transport user messages across . The DATA chunk (Type 0) includes a 32-bit Transmission Sequence Number (TSN) for ordering and , a 16-bit Stream Identifier () to route the data to the correct , a 16-bit Stream Sequence Number (SSN) for intra-stream ordering, a 32-bit Protocol Identifier (PPID) to indicate the encapsulated , and the variable-length User field. The chunk supports fragmentation via two-bit Begin (B) and End (E) flags (10 for begin fragment, 01 for end, 00 for middle), with padding to align to 4-byte boundaries if needed. DATA chunks can be ordered or unordered based on the U bit in the Flags : when U=0, delivery follows SSN sequence per ; when U=1, the chunk bypasses ordering and is delivered immediately upon reassembly. Multiple DATA chunks may be bundled into a single packet for efficient transfer.

Other Chunks

Several chunks handle errors, shutdown, and optional extensions. The ABORT chunk (Type 6) terminates an abruptly, optionally including TLV-based Error Cause parameters, such as Invalid Stream Identifier (Cause Code 1), to indicate the reason. The SHUTDOWN chunk (Type 7) begins graceful termination, specifying a Cumulative TSN (32 bits) to confirm received data, followed by SHUTDOWN (Type 8) and SHUTDOWN COMPLETE (Type 14, with a T bit for tag reflection) to finalize the process. The chunk (Type 9) reports protocol violations without aborting, carrying one or more TLV Cause parameters, such as Unrecognized Chunk Type (Cause Code 8) or Invalid Mandatory Parameter (Cause Code 5), each with a 16-bit code, 16-bit length, and specific information. For dynamic address reconfiguration in multihomed setups, the optional ASCONF chunk (Type 193) allows adding or deleting addresses during an association, as defined in a TLV-extended format with serial numbers and address parameters; it requires peer support via the Supported Extensions parameter.
Chunk TypeNameType ValueMandatory/Optional
DATAPayload Data0Mandatory
Initiation1Mandatory
INIT ACKInitiation Acknowledgement2Mandatory
Selective Acknowledgement3Mandatory
Heartbeat Request4Mandatory
HEARTBEAT ACKHeartbeat Acknowledgement5Mandatory
ABORTAbort6Mandatory
SHUTDOWNShutdown7Mandatory
SHUTDOWN ACKShutdown Acknowledgement8Mandatory
Error9Mandatory
COOKIE ECHOCookie Echo10Mandatory
COOKIE ACKCookie Acknowledgement11Mandatory
SHUTDOWN COMPLETEShutdown Complete14Mandatory
ASCONFAddress Configuration Change193Optional (RFC 5061)

Security Aspects

Built-in Protection Mechanisms

The Stream Control Transmission Protocol (SCTP) incorporates several inherent mechanisms to enhance security and protect against common network threats, distinguishing it from protocols like TCP by addressing vulnerabilities at the protocol level. These features focus on preventing resource exhaustion, ensuring packet authenticity, maintaining data integrity, and securing multi-homed connections without relying on external layers. One primary protection is the four-way handshake, which uses cookies to mitigate denial-of-service attacks such as SYN-flooding. Unlike TCP's three-way handshake, SCTP's process begins with an INIT chunk from the initiator, followed by an INIT ACK from the responder containing a State Cookie—a cryptographically protected structure including a message authentication code (MAC), timestamp, and limited lifespan. The initiator then echoes the cookie in a COOKIE ECHO chunk, and only upon successful validation does the responder allocate resources and send a COOKIE ACK, completing the association. This defers state commitment until the peer's identity is verified, reducing the risk of resource exhaustion from spoofed initiations. Verification tags provide another layer of defense against and replay attacks once an is established. Each assigns a 32-bit random verification tag (ranging from 1 to 2^32-1) during the , which remains unchanged for the association's lifetime. Incoming packets must carry the receiver's own verification tag in the common header; mismatches result in silent discards, preventing the injection of old, forged, or out-of-context packets. Specific rules handle exceptions, such as during association restarts, but the tag's consistency ensures that only legitimate continuations of the session are processed. For , SCTP mandates the use of a CRC32c , a 32-bit computed over the entire packet, including headers and . Positioned in the common header, this —stronger and more efficient than TCP's 16-bit one's complement —detects transmission errors or tampering with high reliability, as the algorithm processes the packet as a of bytes using a basis. Endpoints must compute and validate this for all received packets, discarding those that fail verification. In multi-homed scenarios, SCTP's address binding and mechanisms secure selection against spoofing. During setup, endpoints exchange lists of transport addresses, which are validated through exchanges using HEARTBEAT and HEARTBEAT ACK chunks containing 64-bit random nonces to confirm reachability and authenticity. Only verified addresses are bound for data transfer, with ongoing heartbeats monitoring viability via error counters; failed paths are demoted or failed over without disrupting the . This ties into broader but specifically prevents unauthorized address insertion or exploitation of alternate paths.

Known Vulnerabilities and Best Practices

One notable in early implementations of SCTP, prior to the updates in RFC 4960, involved off-path attacks where an attacker could hijack an by guessing the 32-bit verification tags used in SCTP packets, particularly in scenarios involving dynamic changes like DHCP reassignment. This risk was exacerbated by the predictability of tags in RFC 2960, allowing blind injection of packets to disrupt or impersonate communications. A more recent vulnerability, CVE-2021-3772, enabled an off-path denial-of-service (DoS) attack by sending INIT chunks with a zero-valued Initiate Tag, causing the victim to close valid associations. This was addressed in RFC 9260, which requires implementations to silently discard such packets. Additionally, a 2024 formal analysis of SCTP (per RFC 9260) identified ambiguities in verification tag handling and INIT_ACK responses that could enable further off-path DoS attacks if misinterpreted by implementations; proposed errata clarifications have been accepted by the SCTP working group to resolve these. Another identified threat is heartbeat flooding denial-of-service (DoS), where an attacker sends forged INIT chunks using the victim's IP addresses as source, prompting the target to issue multiple HEARTBEAT chunks (up to HB.Max.Burst) to verify paths, potentially overwhelming network resources. Without limits, this could lead to excessive bandwidth consumption and processing load on the victim endpoint. The ADD-IP extension defined in RFC 5061 introduces risks of association hijacking if not paired with , as unauthenticated Address Configuration Chunks (ASCONF) allow an attacker to dynamically add or delete addresses, redirecting traffic or disrupting multi-homed associations. This stems from the lack of built-in verification for address changes in the base protocol. To mitigate off-path tag guessing, RFC 9260 (obsoleting RFC 4960) mandates random initialization of verification tags and replaces real tags with 32-bit nonces in the State Cookie during association setup, significantly increasing the entropy and difficulty of blind attacks. For heartbeat flooding, implementations should adhere to RFC 9260's limits on cookie lifetimes (no more than 500 ms) and HB.Max.Burst (default 4), along with using smaller, randomized HEARTBEAT intervals to reduce amplification effects. ADD-IP risks are addressed by requiring the extension from 4895, which uses endpoint-pair shared keys to validate ASCONF chunks, preventing unauthorized modifications. Broader protections include deploying for network-layer confidentiality and integrity or DTLS over SCTP (as specified in 6083) to encrypt user data and control chunks, safeguarding against eavesdropping and tampering in untrusted environments. Rate limiting on incoming chunks at endpoints or firewalls helps counter flooding attempts during establishment. Best practices for secure SCTP deployment emphasize UDP encapsulation (per RFC 6951) to facilitate traversal through firewalls and devices that may block raw SCTP packets, ensuring compatibility without compromising the protocol's multi-homing features. Administrators should maintain regular updates to SCTP implementations to incorporate fixes from RFC errata and advisories, such as those in RFC 9260 (which obsoletes RFC 8540). Additionally, monitoring for anomalous Transmission Sequence Numbers (TSNs), such as unexpected gaps or duplicates, enables early detection of injection or replay attacks. Historical incidents involving SCTP in telecom networks have been rare but notable, particularly in deployments during the 2010s, where exploits targeted SS7 over interconnections to enable location tracking and call interception through unauthenticated signaling. These reports, primarily from security analyses of mobile operator interconnects, underscore the importance of isolating signaling traffic and applying the aforementioned mitigations in production environments.

Implementations

Open-Source and Commercial Libraries

The Linux kernel includes native support for SCTP starting from version 2.6, with ongoing updates to align with the current specification in RFC 9260. This implementation provides a socket-based API compatible with the standard Berkeley sockets interface, enabling applications to use SCTP via functions like socket(), bind(), and connect(), while offering extensions for multi-streaming and multi-homing features. FreeBSD offers native SCTP socket support since version 7.0, serving as the reference implementation for the protocol. As of FreeBSD 13.3 (2024), SCTP is provided as a loadable kernel module for reliable, message-oriented transport. For userland portability, the usrsctp library provides a cross-platform SCTP stack that operates without kernel modifications, supporting , , macOS, Windows, and other systems based on RFC 6458 for user-space sockets. It includes functions such as sctp_sendmsg() and sctp_recvmsg(), which extend the TCP-like by allowing specification of payload protocol identifiers (PPID) to preserve message boundaries and enable multi-streaming for ordered delivery within independent streams. Commercial implementations integrate SCTP into enterprise networking stacks, particularly for . Cisco IOS and related platforms support SCTP for SIGTRAN protocols in SS7-over-IP , leveraging its multi-homing for reliable signaling in routers and gateways. Similarly, Juniper Junos OS includes SCTP as a option for GPRS tunneling and signaling, with built-in and multi-streaming to enhance in mobile networks. Oracle Solaris provides a kernel-integrated SCTP stack compliant with the current 9260 specification, featuring advanced options like sctp_bindx() for dynamic address binding in multi-homed scenarios. Microsoft Research has analyzed the security effects of mobility and on SCTP, proposing enhancements to mitigate risks such as denial-of-service and connection . Performance benchmarks indicate that SCTP implementations, such as the usrsctp userland stack, achieve throughput comparable to kernel on for large messages, with slightly higher latency for small payloads due to chunk-based formatting and association management, but superior resilience in multi-homed environments where path failover reduces downtime. These characteristics make SCTP suitable for applications requiring reliability beyond , such as in telecom signaling, while the socket API extensions facilitate adoption without major code changes.

Encapsulation Techniques

The Stream Control Transmission Protocol (SCTP) can be deployed over networks that lack native support through various encapsulation techniques, which wrap SCTP packets in more widely supported protocols to facilitate traversal of NATs, firewalls, and infrastructure. These methods address deployment barriers while preserving SCTP's core features like and multi-streaming, though they introduce additional processing and header overhead. One primary technique is UDP encapsulation, specified in RFC 6951, which embeds SCTP packets within datagrams to enable communication in environments with legacy NATs or hosts without direct IP-level SCTP access. In this approach, an SCTP packet is prefixed with a header between the IP and SCTP layers, using the IANA-assigned port 9899 for tunneling on both endpoints. This allows SCTP associations to be established using wildcard addresses initially, with subsequent reconfiguration via dynamic address mechanisms defined in 5061. Implementations must handle port management per destination address to accommodate NAT port remapping, ensuring compatibility without native SCTP modifications. Tools like the tsctp test utility support this encapsulation via command-line options for port specification, aiding in testing and deployment. For secure deployments, particularly in real-time applications, (DTLS) over SCTP provides encryption and integrity protection as outlined in 6083. This method layers DTLS records atop SCTP, with each SCTP user message carrying a single DTLS record, leveraging SCTP's stream and reliability features for and application data. DTLS messages such as handshakes use a dedicated reliable stream (stream 0), while application data utilizes multiple streams supporting ordered or unordered delivery. This encapsulation is integral to data channels, where SCTP over DTLS enables secure, multiplexed transport for media, often further tunneled over for . The approach limits maximum message sizes to 2^14 bytes due to fragmentation constraints but benefits from SCTP's built-in congestion control and partial reliability options. In enterprise settings, more general tunneling protocols like IP-in-IP or (GRE) can encapsulate SCTP packets to bypass network restrictions, treating SCTP as within an outer IP or GRE header. These methods point-to-point tunnels across incompatible infrastructures, allowing SCTP traffic to traverse firewalls that block unrecognized protocols, though they require endpoint configuration for decapsulation. Such techniques are commonly applied in controlled environments like VPNs or private networks to enable SCTP without altering core routing. These encapsulation strategies incur trade-offs, including added header overhead that reduces effective path MTU and introduces minor processing delays, yet they significantly broaden SCTP adoption by leveraging ubiquitous protocols like . For instance, encapsulation adds an 8-byte header, potentially impacting throughput in bandwidth-constrained links, while DTLS introduces cryptographic computation without dedicated replay protection, relying on SCTP for reliability. Overall, these approaches prioritize compatibility over native performance, with implementations like usrsctp library demonstrating practical use in user-space scenarios.

References

  1. [1]
    RFC 4960: Stream Control Transmission Protocol
    SCTP is a reliable transport protocol operating on top of a connectionless packet network such as IP. It offers the following services to its users.
  2. [2]
    RFC 4166 - Telephony Signalling Transport over - IETF Datatracker
    This document is intended to describe how to transport telephony signalling protocols, used in classic telephony systems, over IP networks.
  3. [3]
    RFC 3286 - An Introduction to the Stream Control Transmission ...
    This document provides a high level introduction to the capabilities supported by the Stream Control Transmission Protocol (SCTP).
  4. [4]
  5. [5]
    [PDF] SCTP versus TCP: Comparing the Performance of Transport ...
    May 13, 2002 · Most applications prefer TCP over UDP and applications using TCP include file transfer applications, electronic mail and the world- wide web ...
  6. [6]
  7. [7]
    SCTP: A Proposed Standard for Robust Internet Data Transport
    Aug 5, 2025 · We discuss why using TCP to avoid such overheads puts a burden on the application. Unlike TCP, SCTP allows transport layer multistreaming within ...
  8. [8]
  9. [9]
  10. [10]
  11. [11]
  12. [12]
    Signaling Transport (sigtran) - IETF Datatracker
    The primary purpose of this working group will be to address the transport of packet-based PSTN signaling over IP Networks.Missing: origins | Show results with:origins
  13. [13]
    RFC 4960 - Stream Control Transmission Protocol - IETF Datatracker
    SCTP is a reliable transport protocol operating on top of a connectionless packet network such as IP. It offers the following services to its users.
  14. [14]
    Transport and Services Working Group (tsvwg) - IETF Datatracker
    The Transport and Services Working Group (TSVWG) is the forum for development and publication of RFCs dealing with transport-layer topics.Missing: SIGTRAN | Show results with:SIGTRAN
  15. [15]
    [PDF] SIGTRAN Protocol Analysis and Simulation - GL Communications Inc.
    It directly replaces MTP3, and it provides support for the transfer of all SS7 MTP3-User Part messages, such as ISUP or SCCP over IP using SCTP. M2UA (MTP2-User ...
  16. [16]
    RFC 8831 - WebRTC Data Channels - IETF Datatracker
    The following SCTP protocol extensions are required:¶. The stream reconfiguration extension defined in [RFC6525] MUST be supported. It is used for closing ...
  17. [17]
    SCTPCL: an SCTP convergence layer protocol for DTN
    The Stream Control Transmission Protocol (SCTP) offers several distinct features which can be leveraged for Disruption or Delay Tolerant Networking (DTN).
  18. [18]
    Issues with Network Address Translation for SCTP - ResearchGate
    Aug 7, 2025 · A Stream Control Transmission Protocol (SCTP) capable Network Address Translation (NAT) device is necessary to support the wider deployment of the SCTP ...
  19. [19]
    SCTP in 4G/5G Network Architecture - ShareTechnote
    SCTP is the protocol being used in the communication between eNB and MME(4G) and the protocol being used between gNB and AMF as illustrated below.
  20. [20]
  21. [21]
  22. [22]
  23. [23]
  24. [24]
  25. [25]
  26. [26]
  27. [27]
  28. [28]
  29. [29]
  30. [30]
  31. [31]
  32. [32]
    Stream Control Transmission Protocol (SCTP) - Palo Alto Networks
    Stream Control Transmission Protocol (SCTP), defined in RFC 4960, is a reliable, message-based transport protocol. Mobile networks widely use SCTP ...
  33. [33]
    An Introduction to the Stream Control Transmission Protocol (SCTP)
    Oct 14, 2015 · Another example of possible use of multi-streaming is the delivery of multimedia documents, such as a web page, when done over a single session.
  34. [34]
    RFC 6525: Stream Control Transmission Protocol (SCTP) Stream ...
    This document also includes methods for resetting the transmission sequence numbers, adding additional streams, and resetting all stream sequence numbers.
  35. [35]
  36. [36]
  37. [37]
  38. [38]
  39. [39]
  40. [40]
  41. [41]
  42. [42]
    draft-tuexen-tsvwg-sctp-multipath-30 - Load Sharing for the Stream ...
    Sep 14, 2025 · Load Sharing for the Stream Control Transmission Protocol (SCTP) draft-tuexen-tsvwg-sctp-multipath-30. Versions: This document is an Internet- ...
  43. [43]
    RFC 3257 - Stream Control Transmission Protocol Applicability ...
    This document describes the applicability of the Stream Control Transmission Protocol (SCTP). It also contrasts SCTP with the two dominant transport protocols.Missing: diagnostics | Show results with:diagnostics
  44. [44]
  45. [45]
  46. [46]
  47. [47]
  48. [48]
  49. [49]
  50. [50]
    RFC 3758 - Stream Control Transmission Protocol (SCTP) Partial ...
    This memo describes an extension to the Stream Control Transmission Protocol (SCTP) that allows an SCTP endpoint to signal to its peer that it should move the ...
  51. [51]
  52. [52]
  53. [53]
  54. [54]
  55. [55]
  56. [56]
  57. [57]
  58. [58]
  59. [59]
  60. [60]
  61. [61]
  62. [62]
  63. [63]
  64. [64]
  65. [65]
  66. [66]
  67. [67]
  68. [68]
  69. [69]
  70. [70]
  71. [71]
  72. [72]
  73. [73]
  74. [74]
  75. [75]
  76. [76]
  77. [77]
  78. [78]
    RFC 5061 - Stream Control Transmission Protocol (SCTP) Dynamic ...
    RFC 5061 extends SCTP to dynamically add/delete IP addresses and set primary addresses, addressing issues with hot-pluggable interfaces and renumbering.Missing: reset | Show results with:reset
  79. [79]
  80. [80]
  81. [81]
  82. [82]
  83. [83]
  84. [84]
  85. [85]
  86. [86]
    SCTP firewall | FortiGate / FortiOS 7.2.0 - Fortinet Document Library
    Four-way handshake checking. Heartbeat mechanism. NAT over SCTP. DoS protection against INIT/ACK flood DoS attacks and long-INIT flooding.
  87. [87]
  88. [88]
    [PDF] Linux SCTP is catching up and going above
    The Partially Reliable SCTP (PR-SCTP) extension defined in RFC 3758 [6] is another important feature, which provides a generic method for senders to abandon ...
  89. [89]
    Regarding support of SCTP in Fedora 14 - users
    ... SCTP Protocol (EXPERIMENTAL) module present in the kernel-2.6.35.6-45.fc14.i686 is in full compliant with RFC 4960. Also, I have compiled and built the kernel ...
  90. [90]
    sctp(7) - Linux manual page - man7.org
    This is an implementation of the SCTP protocol as defined in RFC4960. It is a message oriented, reliable transport protocol with direct support for multihoming ...
  91. [91]
    sctplab/usrsctp: A portable SCTP userland stack - GitHub
    This is a userland SCTP stack supporting FreeBSD, OpenBSD, Linux, Mac OS X and Windows. See manual for more information. The status of continuous ...
  92. [92]
    SCTP Overview | Junos OS - Juniper Networks
    SCTP provides multihoming support where one or both endpoints of a connection can consist of more than one IP address. This enables transparent failover between ...Sctp Overview · Sctp Limitations And... · Sctp Packet Structure...
  93. [93]
    SCTP Stack Implementation - Oracle Help Center
    This section lists the details of the Oracle Solaris implementation of the IETF standard for the Stream Control Transmission Protocol, RFC 4960.
  94. [94]
    Effects of Mobility and Multihoming on Transport-Protocol Security
    The Stream Control Transmission Protocol (SCTP) is a reliable message-based transport protocol developed by the IETF that could replace TCP in some ...Missing: prototype | Show results with:prototype
  95. [95]
    [PDF] Portable and Performant Userspace SCTP Stack - Google Research
    Our current implementation gives a very flexible implementation of a full-featured SCTP that can execute at the user-level on Linux, FreeBSD, Windows, Mac OS X ...
  96. [96]
    RFC 6951 - UDP Encapsulation of Stream Control Transmission ...
    This document describes encapsulating SCTP packets into UDP packets, allowing SCTP in networks with legacy NATs or on hosts without direct IP access.
  97. [97]
    tsctp — SCTP Test Tool - Ubuntu Manpage
    -u Set use of unordered messages. -U udp_port Use UDP encapsulation with given port. -v Enable verbose output. -V Enable very verbose output. -4 Use IPv4 only.
  98. [98]
    RFC 6083 - Datagram Transport Layer Security (DTLS) for Stream ...
    This document describes the usage of the Datagram Transport Layer Security (DTLS) protocol over the Stream Control Transmission Protocol (SCTP).
  99. [99]
  100. [100]
    RFC 2784 - Generic Routing Encapsulation (GRE) - IETF Datatracker
    This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol.Missing: SCTP | Show results with:SCTP