Stream control transmission protocol (SCTP) is also a transport layer protocol like TCP and UDP. SCTP protocol includes the best features of TCP and UDP along with this it also supports the new applications supporting voice over the internet. In this section, we will discuss the working of SCTP and we will also discuss services provided by SCTP along with its advantages.
Content: Stream Control Transmission Protocol (SCTP)
Stream control transmission protocol (SCTP) is one of the transport layer protocols. SCTP adopts most of the features of TCP protocol and it also includes the best feature of UDP protocol. Like TCP, SCTP is also a connection-orient protocol, if a process on the sender host wants to communicate with the process on the destination host then a connection has to be established between them, in SCTP we refer to it as an association.
SCTP is also a reliable protocol as the safe arrival of the data packet at the receiver host is acknowledged. SCTP also provide flow, error and congestion control mechanism. SCTP also provides advanced services such as multiple streams and multihoming, which we will discuss later.
Working of Stream control transmission protocol
Whenever a process on the client-side wants to communicate with the process on the server side it needs to establish a connection between them. This is done using the ‘four-way handshaking’ protocol.
Four-Way Handshake Protocol
- The client initially sends INIT data chunk to the server to signal the initiation of an association.
- When the INIT data chunk is received by the server it sends INIT-ACK in response to INIT. Along with the INIT-ACK, it holds a cookie that defines the current status of the server.
- When the client receives the INIT-ACK it sends a third packet COOKIE-ECHO which just echoes the cookies that were sent by the server. SCTP allow the COOKIE-ECHO packet to carry a data chunk.
- The server responds to the COOKIE-ECHO chunk with the COOKIE-ACK chunk. It is just an acknowledgement receipt of COOKIE-ACK. SCTP allow the COOKIE-ACK packet to carry a data chunk.
These are the four steps of the four-way handshake protocol that establish a connection between two SCTP. We have also seen that from the third data chunk i.e., COOKIE-ECHO SCTP allows the exchange of data.
Whenever a process gives a message to SCTP it establishes an association between the client and server. The association between the client and server let bidirectional data transfer between them.
Whenever a process gives the message to SCTP, the message becomes a data chunk or data chunks (in case it is fragmented). A data chunk header is attached to each chunk and every data chunk consumes a TSN. If the client sends n data chunks then in SCTP, the server would only provide acknowledgement for the last received chunk i.e. the nth chunk.
Services of Stream control transmission protocol
1. Process-to-Process Communication
Like TCP, SCTP also provides process-to-process communication. Process-to-process communication lets the client computer process communicate and exchange data with the process on the server computer. SCTP protocol uses all the well-known ports that are used by TCP. Along with this it also uses some extra port numbers mainly for IP telephony.
2. Multiple Streams
In our previous content transmission control protocol, we have seen that TCP protocol allows streaming bytes of data from sender to receiver, making it a stream-oriented protocol. But in TCP, there is only a single stream between sender and receiver.
If there is a loss of data at any point in the stream, it would block the rest of the data in the stream. This is fine if the data is not real-time. But if the client and server are dealing with real-time data such as audio or video stream then with a single data stream it would be a problem.
To resolve this issue SCTP has come up with the multistream service where a single connection would have multiple streams of data and we call it an association. Now even if one data stream has been blocked, the rest of the data stream would deliver the data. Each data stream can be used for a specific type of data like text, audio, video etc.
Multihoming is where the host is connected to multiple IP addresses. Unlike TCP, SCTP supports multihoming, which allows multiple IP addresses at each end of the SCTP association. This makes the SCTP protocol fault-tolerant as if one of the IP interfaces fails then another can be used to deliver the data. The fault tolerance feature of SCTP allows hosts to send and receive real-time data such as IP telephony.
4. Full Duplex Communication
In full-duplex communication, both sender and receiver are able to send and receive data at the same time. SCTP allows sender and receiver to send and receive data packet in both the direction simultaneously. To achieve this both the connected SCTP host must implement sending and receiving buffer.
5. Connection-Oriented Service
SCTP is also a connection-oriented protocol where the two SCTP hosts in the network must establish a connection before starting communication. In SCTP the connection is referred to as association.
First, an association is established between the two communicating hosts. Then data is exchanged between them in both the direction. After the communication is over the association is terminated.
6. Reliable Service
The SCTP provides reliable service. When a data packet arrives safely at the receiver host, its safe arrival is acknowledged by the receiver. If the sent data packet is not acknowledged within a certain period of time the corresponding data packet is resent.
Advantages of SCTP over TCP
- SCTP provides a full-duplex communication that let both the end of the connection send and receives the message.
- With SCTP multihoming and multistreaming is possible.
- Delivery of data in SCTP is ordered.
- SCTP has error, flow and congestion control mechanisms.
So, this is all about the stream control transport protocol which is a future generation transport layer protocol as it has many benefits over TCP and UDP protocol.