SCTP Programmer's Guide

Congestion Control in SCTP
SCTP uses various congestion control algorithms to effectively handle network failures
or unexpected traffic surges, and ensures quick recovery from data congestion. SCTP
and TCP support the same set of congestion control algorithms. Following are the
congestion control algorithm supported by SCTP:
Slow Start and Congestion Control
Fast Retransmit and Fast Recovery
However, in SCTP, the congestion control algorithms are modified to suite the
protocol-specific requirements.
For information on the TCP congestion control algorithms, see RFC 2581 (TCP Congestion
Control).
This section addresses the following topics:
“Slow Start and Congestion Avoidance Algorithms”
“Fast Retransmit and Fast Recovery”
Slow Start and Congestion Avoidance Algorithms
The slow start and congestion avoidance algorithms are used to control the amount of
outstanding data being injected into the network. SCTP uses the slow start algorithm
at the beginning of the transmission, when the network condition is unknown, and
also in repairing loss detected by the retransmission timer. SCTP slowly probes the
network to determine the available capacity of the network to avoid congestion in the
network. If SCTP detects a congestion in the network, it switches to the congestion
avoidance algorithm to manage the congestion.
The slow start and congestion avoidance algorithms use the following congestion
control variables:
Congestion window (cwnd)
Specifies the limit on the amount of data the
sender can transmit through the network, before
receiving an acknowledgement. This variable is
maintained for each destination address.
Receiver window (rwnd)
Specifies the receivers limit on the amount of
outstanding data.
NOTE: The minimum value of the cwnd and
rwnd variables determine the amount of data
transmission.
Slow start threshold (ssthresh)
Determines whether the slow start or congestion
avoidance algorithm must be used to control data
transmission.
26 Introduction