SCTP Programmer's Guide

Figure 1-7 illustrates how multi-streaming works in an SCTP association.
Figure 1-7 Multistreaming in an SCTP Association
NOTE: By default, SCTP contains two streams. SCTP uses stream 0 as the default
stream to transmit data. Applications can modify the number of streams through which
SCTP transmits data.
Conservation of Data Boundaries
In SCTP, a sending application can construct a message out of a block of data bytes
and instruct SCTP to transport the message to a receiving application. SCTP guarantees
the delivery of this message (data block) in its entirety. It also indicates to the receiver
about both the beginning and end of the data block. This is called conservation of
message boundaries. TCP does not conserve data boundaries. It treats all the data
passed to it from the sending application as a sequence or stream of data bytes. It
delivers all the data bytes to the receiver in the same sequential order as they were
passed from the application. TCP does not conserve data boundaries when packets
arrive out of sequence. As a result, the receiver cannot rearrange the packets. It has to
wait till the packets arrive in sequence, starting from the last unreceived packet to the
received out-of-sequence packet.
SCTP Graceful Shutdown Feature
SCTP does not support a "half-open" connection, which can occur in TCP. In a half-open
connection, even though an endpoint indicates that it has no more data to send, the
other endpoint continues to send data indefinitely. SCTP, on the other hand, assumes
that when the shutdown procedure begins, both the endpoints will stop sending new
data across the association. It also assumes that it needs only to clear up
acknowledgements of the previously sent data.
The SCTP shutdown feature uses a three-message procedure to gracefully shutdown
the association, in which each endpoint has confirmed the receipt of the DATA chunks
SCTP Features 31