SCTP Data Transfer

The SCTP message structure facilitates packaging bundled control and data
essages in a single format. Figure 3 shows the format of an SCTP packet: A common header is followed by one or more variable- length chunks, which use a type-length-value (TLV) format. Different chunk types are used to carry control or data information inside an SCTP packet. The SCTP common header contains source and destination port addresses that are used with the source and destination IP addresses to identify the recipient of the SCTP packet.

Checksum value to assure data integrity while the packet transits an IP network; and Verification tag that holds the value of the initiation tag first exchanged during the handshake. Any SCTP packet in an association that does not include this tag will be dropped on arrival. The verification tag protects against old, stale packets arriving from a previous association, as well as various “man-in-the-middle” attacks, and it obviates the need for TCP’s timed-wait state, which consumes resources and limits the number of total connections a host can accommodate.

Every chunk type includes TLV header information that contains the chunk type,
delivery processing flags, and a length field. In addition, a DATA chunk will precede user payload information with the transport sequence number (TSN), stream identifier, stream sequence number (SSN), and payload protocol identifier. The TSN and SSN provide two separate sequence numbers on every DATA chunk. The TSN is used for per-association reliability and the SSN is for perstream ordering. The stream identifier marks individual messages within the same stream.

Figure 4 shows an example of a normal data exchange between two SCTP hosts. An SCTP host sends selective acknowledgments (SACK chunks) in response to every other SCTP packet carrying DATA chunks. The SACK fully describes the receiver’s state, so that the sender can make retransmission decisions based on what has been received. SCTP supports fast retransmit and time-out retransmission algorithms similar to those in TCP.

With few exceptions, most chunk types can be bundled together in one SCTP packet. (SACKs often get bundled during two-way exchanges of user data.) One bundling restriction is that control chunks must be placed ahead of any DATA chunks in the packet.


0 comments