SCTP
Back to networking page
What is SCTP
Stream Control Transmission Protocol (SCTP) is a transport-layer protocol that ensures reliable, in-sequence transport of data. SCTP provides multihoming support where one or both endpoints of a connection can consist of more than one IP address. This enables transparent failover between redundant network paths.
Benefits of both TCP and UDP.
SCTP is message oriented , reliable protocol.
Full Duplex Communication.
Multiple Stream
Unlike TCP , SCTP can have multiple streams to transfer data which is helpful as in TCP if stream is delayed or blocked then connection fails. SCTP having multiple stream can be useful to tranfer real-time data with reliability.
Multihoming in SCTP
The ability of an endpoint to support multiple IP addresses is known as multihoming, which means SCTP can transmit to an alternative IP address belonging to the endpoint in case of a network failure or adverse conditions.
- Source port address : 16-bit field that defines the port number of the process sending the packet.
- Destination port address : 16-bit field that defines the port number of the process receiving the packet.
- Verification tag : This is a number that matches a packet to an association. This prevents a packet from a previous association from being mistaken as a packet in this association. It serves as an identifier for the association; it is repeated in every packet during the association. There is a separate verification used for each direction in the association.
- Checksum : 32-bit field contains a CRC-32 checksum
For chunk header :
- Type. This 8-bit field can define up to 256 types of chunks. Only a few have been defined so far; the rest are reserved for future use.
- Flag. This 8-bit field defines special flags that a particular chunk may need. Each bit has a different meaning depending on the type of chunk.
- Length. Since the size of the information section is dependent on the type of chunk, we need to define the chunk boundaries. This 16-bit field defines the total length.
SCTP Handshake
- INIT Chunk
- INIT_ACK Chunk
- COOKIE_ECHO Chunk
- COOKIE_ACK Chunk
Source :