Transport Layer · Computer Networks

SCTP Congestion Control

Watch lectures

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.

+--------------------------------------------------------------------------+
|                     TRANSPORT PROTOCOL COMPARISON                        |
+--------------------------+-----------------------+-----------------------+
| Feature                  | TCP                   | SCTP                  |
+--------------------------+-----------------------+-----------------------+
| Data Model               | Byte-Stream           | Message-Oriented Chunks|
| Connection Endpoint      | Single IP (Socket)    | Multiple IPs (Multi-Homing)|
| Internal Streams         | 1 Stream (HoL Block)  | Multi-Streaming (No HoL)|
| Handshake Security       | 3-Way (SYN Flood weak)| 4-Way (Cookie-Secured)|
| Framing Boundaries       | No boundaries         | Preserves boundaries  |
| Congestion Control       | Per Connection        | Independent Per Path  |
+--------------------------+-----------------------+-----------------------+

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!
  Endpoint A (Multi-Homed)                                 Endpoint B (Multi-Homed)
  IP A1 ===================== [ Primary Path ] ===================== IP B1
  IP A2 --------------------- [ Alternate Path ] ------------------- IP B2
                              (Heartbeat probe)

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!


4. Key Exam Questions & Takeaways

  1. How 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.
  2. How 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.
  3. Why 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.
Official AppAndroid App

PYQDeck for Android

Solve BEU previous-year exam papers anywhere, anytime. Fast search, offline paper viewing, and step-by-step solutions designed specifically for your phone.

← All Computer Networks modules

SCTP Congestion Control — Computer Networks — PYQDeck