SCTP Protocol

SCTP stands for Stream Control Transmission Protocol.

It is a connection- oriented protocol in computer networks which provides a full-duplex association i.e., transmitting multiple streams of data between two end points at the same time that have established a connection in network. It is sometimes referred to as next generation TCP or TCPng, SCTP makes it easier to support telephonic conversation on Internet. A telephonic conversation requires transmitting of voice along with other data at the same time on both ends, SCTP protocol makes it easier to establish reliable connection.

SCTP is also intended to make it easier to establish connection over wireless network and managing transmission of multimedia data. SCTP is a standard protocol (RFC 2960) and is developed by Internet Engineering Task Force (IETF).

Characteristics of SCTP :

  1. Unicast with Multiple properties –
    It is a point-to-point protocol which can use different paths to reach end host.
  2. Reliable Transmission –
    It uses SACK and checksums to detect damaged, corrupted, discarded, duplicate and reordered data. It is similar to TCP but SCTP is more efficient when it comes to reordering of data.
  3. Message oriented –
    Each message can be framed and we can keep order of datastream and tabs on structure. For this, In TCP, we need a different layer for abstraction.
  4. Multi-homing –
    It can establish multiple connection paths between two end points and does not need to rely on IP layer for resilience.

Advantages of SCTP :

  1. It is a full- duplex connection i.e. users can send and receive data simultaneously.
  2. It allows half- closed connections.
  3. The message’s boundaries are maintained and application doesn’t have to split messages.
  4. It has properties of both TCP and UDP protocol.
  5. It doesn’t rely on IP layer for resilience of paths.



Disadvantages of SCTP :

  1. One of key challenges is that it requires changes in transport stack on node.
    1. Applications need to be modified to use SCTP instead of TCP/UDP.
    1. Applications need to be modified to handle multiple simultaneous streams.

SCTP services

The services offered by SCTP to the application layer processes are as follows

1. Process-to-Process Communication:

SCTP provides uses Process-to-Process Communication and also uses all well-known ports in the TCP space and also some extra port numbers.

2. Multiple Streams:

TCP is a stream-oriented protocol. Each connection between a TCP client and a TCP server involves one single stream. The problem with this approach is that a loss at any point in the stream blocks the delivery of the rest of the data. This can be acceptable when we are transferring text; it is not when we are sending real-time data such as audio or video. SCTP allows multi stream service in each connection, which is called association in SCTP terminology. If one of the streams is blocked, the other streams can still deliver their data.

3.Multi homing:

A TCP connection involves one source and one destination IP address. This means that even if the sender or receiver is a multihomed host (connected to more than one physical address with multiple IP addresses), only one of these IP addresses per end can be utilized during the connection. An SCTP association, on the other hand, supports multihoming service. The sending and receiving host can define multiple IP addresses in each end for an association. In this fault-tolerant approach, when one path fails, another interface can be used for data delivery without interruption. This fault-tolerant feature is very helpful when we are sending and receiving a real-time payload such as Internet telephony.

4. Full-Duplex Communication:

Like TCP, SCTP offers full-duplex service, in which data can flow in both directions at the same time. Each SCTP then has a sending and receiving buffer, and packets are sent in both directions.

5. Connection-Oriented Service:

Like TCP, SCTP is a connection-oriented protocol. However, in SCTP, a connection is called an association. When a process at site A wants to send and receive data from another process at site B, the following occurs:

1. The two SCTPs establish an association between each other. 

2. Data are exchanged in both directions. 

3. The association is terminated.

4. Reliable Service: SCTP, like TCP, is a reliable transport protocol. It uses an acknowledgment mechanism to check the safe and sound arrival of data.

SCTP Features:

The following are the important features of SCTP:

  • 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.
  • Delivery of data in chunks within an independent stream eliminates unnecessary head-of-line blocking.
  • Path selection and monitoring functionality to select a primary data transmission path and test the connectivity of the transmission path.
  • Validation and acknowledgment mechanisms protect against flooding attacks and provide notification of duplicated or missing data chunks.
  • Improved error detection suitable for jumbo Ethernet frames.

an SCTP association

SCTP, like TCP, is a connection-oriented protocol. Association establishment in SCTP requires a four-way handshake. In this procedure, a process, normally a client, wants to establish an association with another process, normally a server, using SCTP as the transport layer protocol.

Similar to TCP, the SCTP server needs to be prepared to receive any association (passive open). Association establishment, however, is initiated by the client (active open). SCTP association establishment is shown in the following figure.

The steps, in a normal situation, are as follows:

1. The client sends the first packet, which contains an INIT chunk.

2. The server sends the second packet, which contains an INIT ACK chunk.

3. The client sends the third packet, which includes a COOKIE ECHO chunk. This is a very simple chunk that echoes, without change, the cookie sent by the server. SCTP allows the inclusion of data chunks in this packet.

4. The server sends the fourth packet, which includes the COOKIE ACK chunk that acknowledges the receipt of the COOKIE ECHO chunk. SCTP allows the inclusion of data chunks with this packet.

Cookie:

With TCP, a malicious attacker can flood a TCP server with a huge number of phony SYN segments using different forged IP addresses. Each time the server receives a SYN segment it sets up a state table and allocates other resources while waiting for the next segment to arrive. After a while, however, the server may collapse due to the exhaustion of resources.

The SCTP have a strategy to prevent this type of attack which is to postpone the allocation of resources until the reception of the third packet, when the IP address of the sender is verified. The information received in the first packet must somehow be saved until the third packet arrives. But if the server saved the information, that would require the allocation of resources (memory); this is the dilemma. The solution is to pack the information and send it back to the client. This is called generating a cookie. The cookie is sent with the second packet to the address received in the first packet. There are two potential situations.

1. If the sender of the first packet is an attacker, the server never receives the third packet; the cookie is lost and no resources are allocated. The only effort for the server is “baking” the cookie.

2. If the sender of the first packet is an honest client that needs to make a connection, it receives the second packet, with the cookie. It sends a packet (third in the series) with the cookie, with no changes. The server receives the third packet and knows that it has come from an honest client because the cookie that the sender has sent is there. The server can now allocate resources.

Data Transfer:

The whole purpose of an association is to transfer data between two ends. After the association is established, bidirectional data transfer can take place. The client and the server can both send data. Like TCP, SCTP supports piggybacking.

There is a major difference between data transfer in TCP and SCTP.TCP receives messages from a process as a stream of bytes without recognizing any boundary between them. The process may insert some boundaries for its peer use, but TCP treats that mark as part of the text.

SCTP, on the other hand, recognizes and maintains boundaries. Each message coming from the process is treated as one unit and inserted into a DATA chunk unless it is fragmented. In this sense, SCTP is like UDP; with one big advantage is data chunks are related to each other.

A message received from a process becomes a DATA chunk, or chunks if fragmented, by adding a DATA chunk header to the message. Each DATA chunk formed by a message or a fragment of a message has one TSN.DATA chunks use TSNs and only DATA chunks are acknowledged by SACK chunks.

Consider the following simple example in the following figure. In this figure a client sends four DATA chunks and receives two DATA chunks from the server.

Share

Leave a Comment

Your email address will not be published. Required fields are marked *

This website is hosted Green - checked by thegreenwebfoundation.org