BroadNet
SIGTRANTransport

SCTP: Stream Control Transmission Protocol

Updated 4 min readStandards-based
Direct answer

SCTP (RFC 4960) is a reliable, message-oriented transport designed for signalling. Unlike TCP's single byte stream, it delivers discrete messages over multiple independent streams (avoiding head-of-line blocking) and supports multi-homing — several IP addresses per endpoint for automatic path failover. SIGTRAN uses it to carry SS7 over IP.

§01

Why SCTP instead of TCP

SS7 signalling needs reliable, in-sequence, low-latency delivery with fast failover — requirements TCP meets only partially. TCP is a single byte stream, so one lost segment blocks every later byte until it is retransmitted (head-of-line blocking), and a TCP connection is bound to one IP address pair, so a path failure breaks it. SCTP was designed to fix both: it delivers independent messages over multiple streams and binds an association to multiple addresses for transparent failover. It also resists SYN-flood attacks with a four-way handshake.

SCTP vs TCP
PropertyTCPSCTP
Data modelByte streamMessage-oriented (preserves boundaries)
StreamsOneMany independent streams per association
Head-of-line blockingAcross the whole connectionConfined to one stream
Endpoint addressingSingle IP pairMulti-homed (multiple IPs per endpoint)
Handshake3-way (SYN-flood exposed)4-way with signed cookie
Delivery optionsOrdered onlyOrdered or unordered per message
§02

Multi-streaming

An SCTP association carries multiple logical streams, numbered by Stream Identifier. Each stream is independently ordered using a Stream Sequence Number, while a single Transmission Sequence Number (TSN) governs reliable delivery across the whole association. The effect is that loss on one stream does not stall the others — a stuck message for one destination does not block signalling for another. Applications can also send messages unordered when sequencing is not required, cutting latency further.

§03

Multi-homing and failover

An SCTP endpoint can bind several IP addresses — typically on separate network paths. One address is the primary path; the others are alternates. SCTP continuously monitors each destination address with HEARTBEAT chunks, and if the primary path fails it retransmits on an alternate without tearing down the association. This gives signalling links carrier-grade resilience over IP that a single-homed TCP connection cannot, and it is a headline reason SIGTRAN chose SCTP.

§04

The chunk-based packet format

An SCTP packet has a 12-byte common header — source and destination ports, a 32-bit Verification Tag that guards the association, and a CRC-32c checksum — followed by one or more chunks. Chunks are self-describing (type, flags, length, value) and several can be bundled into one packet. Control chunks set up and manage the association; DATA chunks carry user messages. This structure lets SCTP acknowledge, heartbeat and carry data efficiently in the same packet.

SCTP packet structuretext
Common header (12 bytes):
  Source port (2)  Destination port (2)
  Verification Tag (4)   Checksum CRC-32c (4)
Then 1..n chunks, each:
  Type (1)  Flags (1)  Length (2)  Value (variable)
e.g.  [ DATA chunk (TSN, Stream ID, SSN, payload) ] [ SACK chunk ]
§05

Chunk types and association setup

An association is established with a four-way handshake — INIT, INIT ACK (carrying a signed state cookie), COOKIE ECHO, COOKIE ACK — which lets the server stay stateless until the cookie is returned, defeating SYN-flood attacks. Data flows in DATA chunks acknowledged by SACK. HEARTBEAT/HEARTBEAT ACK probe idle paths. The association is closed gracefully with SHUTDOWN or abruptly with ABORT.

Common SCTP chunk types
TypeChunkPurpose
0DATACarry a user message (TSN, Stream ID, SSN, payload)
1 / 2INIT / INIT ACKBegin association; INIT ACK carries the state cookie
3SACKSelective acknowledgement of received DATA
4 / 5HEARTBEAT / HEARTBEAT ACKProbe reachability of a destination address
6ABORTAbnormal, immediate close of the association
7 / 8SHUTDOWN / SHUTDOWN ACKGraceful close
10 / 11COOKIE ECHO / COOKIE ACKComplete the 4-way handshake
FAQ

Frequently asked

What is the main advantage of SCTP over TCP?

Two things: multi-streaming, so a lost packet on one stream does not block the others (no connection-wide head-of-line blocking), and multi-homing, so an endpoint can use several IP addresses and fail over automatically when a path drops. Both matter greatly for signalling reliability.

What is SCTP multi-homing?

Multi-homing lets a single SCTP association bind multiple IP addresses per endpoint. One is the primary path and the rest are alternates, monitored by heartbeats. If the primary path fails, SCTP retransmits on an alternate without dropping the association — path redundancy built into the transport.

What is an SCTP chunk?

A chunk is a self-describing unit inside an SCTP packet, with a type, flags, length and value. DATA chunks carry user messages; control chunks (INIT, SACK, HEARTBEAT, SHUTDOWN and others) manage the association. Multiple chunks can be bundled into one packet.

Why does SCTP use a four-way handshake?

The extra step lets the responder stay stateless until it receives back a signed state cookie (in COOKIE ECHO). Because no association state is allocated until the cookie returns, SCTP resists SYN-flood-style resource-exhaustion attacks that affect TCP's three-way handshake.

What is the Verification Tag in SCTP?

A 32-bit value in the common header, exchanged during association setup, that both endpoints must include on every packet. It validates that a packet belongs to the current association, protecting against stale packets and blind injection attacks.

References

Source specifications

The published standards this page is grounded in. Opens in a new tab.

BNMaintained by the BroadNet engineering team·Carrier-grade messaging since 2003
Put it on the wire

Build with a real SMPP bind and REST API.

Request test access with real test keys: send to your own verified number first, then move to production across 200+ countries once your sender identity and routes are approved.