SCTP Programmer's Guide

that provides congestion signal to the sender. This is because ECN does not contain
mechanisms to avoid network elements from clearing the ECNE flag. Moreover, ECN
requires the cooperation of the receiver to return congestion experienced signals to the
sender. If the receiver erases the congestion signals to conceal congestion and does not
send these signals to the sender, the sender gains a performance advantage at the
expense of competing connections that do not experience congestion.
SCTP supports the ECN method and is exposed to misbehaving receivers that conceal
congestion signals. The misbehavior includes concealment of ECNE signals that may
cause an SCTP sender to be aggressive and unfair to compliant flows. SCTP supports
ECN-nonce to avoid misbehaving receivers from concealing congestion signals.
ECN-nonce also protects senders from other forms of misbehavior, such as optimistic
acknowledgements and false duplicate TSN notifications.
The ECN-nonce is a modification of the ECN signaling mechanism. It improves the
congestion control by preventing receivers from exploiting ECN to gain an unfair share
of network bandwidth. ECN-nonce improves the robustness of ECN by preventing
receivers from concealing marked or dropped packets. Like ECN, ECN-nonce uses the
ECT(0) and ECT(1) code points, the IP header flag, the cwr, and the ECNE bits.
The ECN-nonce uses two bits of the IP header called the ECT bits. The sender randomly
generates a single bit nonce and encodes it in the ECT codepoints, ECT(0) or ECT(1).
To indicate congestion in the network, routers overwrite the ECT codepoints with the
CE bit. The nonce sum (NS) is a cumulative one bit addition of the nonces received
from the receiver. The receiver calculates the nonce sum and returns it in the NS flag
of the SACK chunk. The sender verifies the value of the NS flag in the SACK chunk.
An incorrect nonce sum implies that one or more nonces are missing at the receiver,
because all the nonces are required to calculate the correct nonce sum. If an incorrect
nonce sum is received by the sender without ECNE signals, the sender can infer that
the receiver is concealing congestion notifications.
The ECN-nonce support in SCTP includes the following:
A single nonce-supported parameter in the INIT or INIT-ACK chunk that is
exchanged during the association establishment, to indicate to the peer whether
ECN-nonce is supported at both endpoints.
A single bit flag in the SACK chunk called the Nonce Sum (NS).
SCTP Support for Partially Reliable Data Transmission
SCTP supports partially reliable data transmission service (PR-SCTP) that enables an
SCTP sender to signal the receiver that it must not expect data from the SCTP sender.
PR-SCTP enables ordered and unreliable data transfer service between endpoints, in
addition to unordered and unreliable data transfer (similar to UDP). PR-SCTP employs
similar congestion control and congestion avoidance algorithms as SCTP, for both
reliable or partially reliable data traffic.
SCTP Features 35