Congestion control tries avoiding overload situations in network components like routers.
Congestion in network components can lead to packet loss which is handled by the error control function of SCTP (see below). The goal of congestion control is to avoid packet loss in the first place.
SCTP congestion control key facts
•SCTP congestion control is based on RFC2581 with some minor modifications.
•Congestion control is applied to the entire association, not individual streams.
•SCTP maintains a separate cwnd parameter for each peer destination address in multihomed scenarios.
•As defined in RFC2581, the transmission rate starts slowly at the beginning (slow start phase), based on feedback provided by received SACK chunks. After the slow start phase, SCTP enters the congestion avoidance phase. In case of congestion in the network, SCTP immediately reverts back to the slow start phase.
SCTP congestion control window cwnd
cwnd and rwnd (or a_rwnd = advertised receiver window size) define 2 windows where the smaller of the 2 determines the maximum amount of data that can be sent.
After the slow start phase, cwnd is large so that rwnd becomes the dominant window size.
Slow start and congestion avoidance phases
The general mechanism applied in SCTP congestion control (as per RFC2581) is to slowly increase the congestion window size cwnd, but to rapidly collapse the window when there are signs of congestion.
Packet loss is deemed a sign of congestion. Note, however, that this is not always true (e.g. on wireless links there may be packet loss due to radio signal interferences).
Congestion control is applied to the entire association, not individual streams. Nevertheless, cwnd is maintained per destination transport address (multihomed scenarios).
More details are available in the SCTP slide presentation under