Open In App

SCTP Packet Structure

Last Updated : 16 Feb, 2023
Like Article

Pre-requisites: SCTP, Difference between SCTP and TCP

Stream Control Transmission Protocol (SCTP) is a connection-oriented network protocol for transmitting multiple streams of data simultaneously between two endpoints that have established a connection in a computer network.

SCTP Packet Field

1. Transmission Sequence Number: In TCP(transmission control protocol) the unit of data is a byte because it is a byte-oriented protocol. Therefore TCP controls the data transfer by numbering bytes with the sequence numbers. However, the data unit in SCTP is a Data chunk and it may or may not have a one-to-one relationship with the messages produced by the sending process. (This happens due to fragmentation) .Therefore in SCTP, the data chunks are numbered with transmission sequence number (TSN) in order to control the data transfer. Each TSN is a unique 32-bit number which is stored in the header of the data chunk. TSN has a value between (2^32 – 1).

2. Stream Identifier (SI): In SCTP there is more than one stream in each association, and each such stream should be identified using a Stream Identifier (SI). The SI is a 16-bit number which starts from 0, and it is stored in the header of the Corresponding data chunk. This will help in placing the data chunk in its stream after receiving it at the destination. Thus SCTP uses SI to distinguish between different streams.

3. Stream Sequence Number(SSN): SCTP uses the stream sequence number (SSN) to distinguish between different data chunks which belong to the same stream. The received data chunk at the destination is delivered to the appropriate stream in proper order by the destination SCTP. This becomes possible as SCTP defines each data chunk in each stream with a stream sequence number (SSN) in addition to an SI.

4. Packets: The SCTP packet design is completely different from that of TCP. In SCTP, the data is carried in the form of data chunks while control information is carried as control chunks. The below figure shows the SCTP packet.



The role of an SCTP packet is the same as that of a TCP packet. In SCTP the control information is not a part of the header, but it is included in the control chunks. The control chunks are of different types. In SCTP the data is not treated as one entity. Instead, it is in the form of several data chunks, and each chunk can belong to a different stream. There is no option section in SCTP like TCP. We have to define new chunk types to handle options in SCTP.

The length of the general header in SCTP is 12 bytes as compared to 20 bytes in TCP. The checksum length in SCTP is 32 bits as compared to 16 bits in TCP. The verification tag field in the SCTP packet is used as an association identifier. Each association is defined by a unique verification tag. We can have multihoming in SCTP by using different IP addresses. In an SCTP packet, several different data chunks will be present and each one is defined by TSN, IS and SSN. In SCTP, control information and data information are carried out in separate chunks. In SCTP the TSN, IS and SSN numbers (identifiers) are used only to identify the data chunks. The control chunks never use these three identifiers. In SCTP the data is contained in data chunks, streams and packets.

The relationship between these three is as follows :

  • An association may send many packets.
  • Each packet may contain many chunks.
  • These chunks may belong to different streams.

5.  Acknowledgement Number: In TCP the acknowledgement numbers are byte-oriented and they refer to the sequence numbers. But the acknowledgement numbers in SCTP are chunk-oriented, and they refer to the TSN. In SCTP, the control chunks carry the control information. The control chunks do not need the TSN. These control chunks are acknowledged by another appropriate type of control chunk. The sequence number or acknowledgement number is not necessary for the control chunks in SCTP. 

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads