Transport Layer · Computer Networks

SCTP Congestion Control

Watch lectures
SVGVector Architecture Diagram (SVG)
COMPUTER NETWORKS · Module 4★ High PrioritySCTP Congestion ControlIT Sem 6 · Code 100602 · Multi-homing and multi-streamingMNEMONICSCTP = TCP reliability + UDP messages + multi-homing + multi-streaming.Congestion control is per path: each destination IP has its own cwnd.Core BreakdownOverviewSCTP (RFC 4960): message-oriented, reliable transport used for signalling.A connection is an association; message boundaries are preserved.Multi-homingAn endpoint can bind several IPs: one primary path, the others as backup.HEARTBEAT chunks probe the alternates; failover keeps the association alive.Multi-streamUp to 65,536 independent streams inside one association.Loss in one stream delays only that stream: no head-of-line blocking.4-way startINIT, INIT-ACK (with State Cookie), COOKIE-ECHO, COOKIE-ACK.Server allocates memory only after a valid cookie: immune to SYN flood.Per-path CCEach destination IP has its own cwnd, ssthresh and SRTT.Slow start up to ssthresh, then additive increase of about +1 MSS per RTT.SACK & RetxSACK reports a Cumulative TSN Ack plus Gap Ack blocks for out-of-order chunks.Fast retransmit after 4 SACKs report a gap; resend goes to an alternate path.Diagram: SCTP AssociationHost AIP A1 · IP A2Host BIP B1 · IP B2PrimaryAlternate path: HEARTBEAT4-way handshake (State Cookie)INITINIT-ACK + cookieCOOKIE-ECHOCOOKIE-ACKPer path: own cwnd, ssthresh, SRTTFast retx: 4 SACKs (TCP uses 3)Up to 65,536 streams, no HoL block⚠️ Exam Traps & Viva Favorites① How does SCTP avoid HoL?Many independent streams per association.Loss in stream 1 does not stall streams 2, 3,4: they reach the app at once.② Why is the 4-way start safe?INIT-ACK carries an encrypted State Cookie andthe server keeps no state. Memory is reservedonly after COOKIE-ECHO, so SYN flood fails.③ Congestion control per what?Per destination IP path, not per association:separate cwnd, ssthresh and SRTT. Fast retx at4 SACKs, sent over an alternate path.Tip: many IPs, many streamsMaster Revision Table(learn it row by row!)FeatureTCPSCTPBenefitData modelByte streamMessage chunksKeeps message boundariesEndpointsOne IPSeveral IPs (multi-homing)Survives path failureStreams1 (HoL blocking)Up to 65,536No head-of-line stallStart-up3-way handshake4-way with cookieStops SYN floodCongestion varsPer connectionPer destination pathPaths are independentFast retransmit3 duplicate ACKs4 SACK reportsUses Gap Ack blocksQUICK FACTSChunks: INIT · INIT-ACK · COOKIE-ECHO · COOKIE-ACK · DATA · SACK · HEARTBEATSlow start: cwnd += min(acked bytes, MSS) · avoidance: about +1 MSS per RTTUse: SS7 over IP, telephony signalling, WebRTC data channels · RFC 4960VERIFIED★ Golden rule: SCTP runs one congestioncontroller per path, not per connection.

Stream Control Transmission Protocol (SCTP) Congestion Control


1. Overview of SCTP Architecture

The Stream Control Transmission Protocol (SCTP) (RFC 4960) is an advanced, message-oriented transport protocol that combines the best features of UDP and TCP while introducing revolutionary features for carrier-grade telephony signaling (SS7 over IP) and mission-critical systems.

MermaidDiagram
Rendering diagram…

2. Core Breakthroughs of SCTP

A. Multi-Homing

An SCTP connection (called an Association) can bind to multiple IP addresses on each endpoint (e.g., dual ISP connections or multiple physical NICs).

  • One IP path is designated as the Primary Path for active data transmission.
  • Alternate IPs are continuously monitored via periodic HEARTBEAT chunks.
  • If the primary link fails, SCTP fails over transparently to an alternate IP path without breaking the active transport association!
MermaidDiagram
Rendering diagram…

B. Multi-Streaming (Eliminating Head-of-Line Blocking)

In TCP, all data shares a single stream; if packet #2 is lost, packets #3, #4, #5 are stalled in buffers (Head-of-Line Blocking).

  • SCTP supports up to 65,53665{,}536 independent Streams within a single association.
  • If data in Stream 1 experiences packet loss, data in Streams 2, 3, and 4 is delivered immediately to the application without any delay!

C. Four-Way Handshake with State Cookie (Anti-SYN Flood)

  • INIT →\rightarrow INIT-ACK (contains an encrypted State Cookie; the server allocates zero memory buffers at this stage!) →\rightarrow COOKIE-ECHO (client returns cookie) →\rightarrow COOKIE-ACK (server verifies cryptographic cookie and allocates association memory).
  • Completely immune to denial-of-service SYN Flood attacks.

3. SCTP Congestion Control Mechanics

SCTP implements congestion control algorithms mathematically modeled after TCP (Slow Start, Congestion Avoidance, Fast Retransmit), but heavily adapted for multi-homing and chunked transmission:

1. Independent Tracking Per Destination IP Address:

Because a multi-homed endpoint sends data across different physical routes with distinct bottlenecks, SCTP maintains an independent set of congestion variables for every destination IP address:

  • cwnd\text{cwnd} (Congestion Window per path).
  • ssthresh\text{ssthresh} (Slow Start Threshold per path).
  • SRTT\text{SRTT} (Smoothed Round-Trip Time per path).

2. Slow Start:

  • Governs initial transmission or recovery after idle periods.
  • cwnd\text{cwnd} increases by the number of previously unacknowledged bytes confirmed by each new SACK:
cwnd←cwnd+min⁡(acknowledged bytes,MSS)\text{cwnd} \leftarrow \text{cwnd} + \min(\text{acknowledged bytes}, \text{MSS})
  • Generates exponential window growth (2n2^n) per RTT until cwnd≥ssthresh\text{cwnd} \geq \text{ssthresh}.

3. Congestion Avoidance (Additive Increase):

  • Once cwnd≥ssthresh\text{cwnd} \geq \text{ssthresh}, the algorithm switches to linear growth:
cwnd←cwnd+MSS×MSScwnd\text{cwnd} \leftarrow \text{cwnd} + \text{MSS} \times \frac{\text{MSS}}{\text{cwnd}}
  • Increases cwnd\text{cwnd} by approximately +1 MSS+1\text{ MSS} per entire RTT.

4. SACK (Selective Acknowledgment) & Fast Retransmit:

  • SCTP uses Selective Acknowledgment (SACK) Chunks that report:
    • Cumulative TSN Ack: Transmission Sequence Number up to which all chunks arrived.
    • Gap Ack Blocks: Explicit start and end ranges of out-of-order chunks received.
  • Fast Retransmit: If a missing Transmission Sequence Number (TSN) is reported missing in 4 consecutive SACK chunks (compared to 3 in TCP), SCTP immediately retransmits the missing chunk without waiting for the retransmission timer.

5. Multi-Homed Retransmission Policy:

When a chunk must be retransmitted due to timeout or fast retransmit, SCTP routes the retransmission to an alternate destination IP address rather than the failed primary path, maximizing the probability of successful delivery through an uncontested network path!


Frequently Asked Questions

QHow does SCTP solve the Head-of-Line (HoL) blocking problem of TCP?

By dividing an association into multiple independent logical streams. Packet loss within one stream only delays that specific stream; all other streams continue delivering data packets to the application layer without interruption.

QHow does SCTP handle congestion control on multi-homed endpoints?

It maintains distinct, independent values for cwnd, ssthresh, and RTT for each remote destination IP address, ensuring congestion on one network path does not distort transmission metrics on an alternate path.

QWhy is the 4-way SCTP handshake immune to SYN flood attacks?

In response to the initial INIT chunk, the server generates an encrypted state cookie and sends it back in INIT-ACK without allocating any kernel state or buffer memory. Memory is only allocated after the client returns the valid COOKIE-ECHO.

QWhat is multi-homing in SCTP?

An SCTP association can use several IP addresses on each endpoint. One path is primary and the others are monitored with HEARTBEAT chunks, so if the primary path fails traffic fails over without breaking the association.

Free AppAndroid App

Coursify Android App

Generate AI courses, take quick quizzes between classes, and master complex engineering concepts on the go.

← All Computer Networks modules