STREAM CONTROL
TRANSMISSION
PROTOCOL (SCTP)
Deepa Soman
What is SCTP?
SCTP (Stream Control Transmission Protocol) is a transport protocol. SCTP was
specifically designed as a transport protocol for public telephony network signaling
message transport. However, SCTP is generic and may supersede TCP in other
applications as well.
It is a reliable transport protocol for transporting stream traffic, can operate on top of
unreliable connectionless networks, and offers acknowledged and nonduplicated
transmission data on connectionless networks (datagrams).
SCTP Services
 Process-to-Process Communication.
 Multiple Streams : 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
 Multi homing.
 Full-Duplex Communication:Each SCTP then has a sending and receiving buffer, and
packets are sent in both directions.
 Connection-Oriented Service.
Multi homing
 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.
SCTP Features
 The protocol is error free. A retransmission scheme is applied to compensate for loss or
corruption of the datagram, using checksums and sequence numbers.
 It has ordered and unordered delivery modes.
 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.
 SCTP has effective methods to avoid flooding congestion and masquerade attacks.
 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.
SCTP Packet Format
The SCTP header contains only a limited set of
fields.
More SCTP control information is contained in
control chunks that are bundled with user data
chunks into the SCTP packet payload.
Verification tag : A 32-bit random value created during
initialization to distinguish stale packets from a previous
connection.
Checksum : This 32-bit field contains a CRC-32
checksum.
SCTP Chunk Structure
Chunk type : An 8-bit value, used to identify the contents of the chunk value field.
Chunk flags : Eight flag-bits whose define what flags a chunk may need.
Chunk length : A 16-bit unsigned value specifying the total length of the chunk in bytes (excludes
any padding) that includes chunk type, flags, length, and value fields.
SCTP Connection – Four-way Handshake
1.The server must be prepared to accept an incoming association and
is called a passive open.
2.The client issues an active open by calling connect or by sending a
message, which implicitly opens the association.
3.The server acknowledges the client's INIT message with an INIT-ACK
message.
4.The client echoes the server's state cookie with a COOKIE-ECHO
message.
5. The server acknowledges that the cookie was correct and that the
association was established with a COOKIE-ACK message. This
message may also contain user data bundled within the same packet.
The minimum number of packets required for this exchange is
four; hence, this process is called SCTP's four-way handshake.
SCTP Connection – Simple Data Transfer
 Only DATA chunks consume tsns
 DATA chunks are the only chunks that are
acknowledged.
 Acknowledgment defines the cumulative tsn
 The TSN of the last data chunk received in order.
SCTP Connection – Termination
 Acknowledgment defines the cumulative
TSN
 The TSN of the last data chunk received in
order.
SCTP State Transitions
SCTP Flow Control
Flow control in SCTP is similar to TCP. In SCTP, we need to handle two units of data, the byte and
the chunk.
The values of rwnd and cwnd are expressed in bytes; the values of TSN and acknowledgments
are expressed in chunks.
Current SCTP implementations still use a byte-oriented window for flow control.
Flow Control, Receiver site
1. When the site receives a data chunk, it stores it
at the end of the buffer (queue) and subtracts the
size of the chunk from winSize.
2. When the process reads a chunk, it removes it
from the queue and adds the size of the removed
chunk to winSize (recycling).
3. When a receiver decides to send a SACK,it
checks the value of lastAck. If it is less than
cumTSN, it sends a SACK with a cumulative
TSN number equal to the cumTSN.it also include
the value of winSize size.
Flow Control, Sender site
1. A chunk pointed to by curTSN can be sent
if the size of the data is less than or equal
to the quatity rwnd-in Transit. After sending
the chunk, the value of curTSN is
incremented by the size of the data in the
transmitted chunk.
2. When a SACK is recived, the chunks with
a TSN less than or equal to the cumulative
TSN in the SACK are removed from the
queue and discarded. The value of the
Transit is reduced by the total size of the
discarded chunks. Value of rwnd is
updated with the value of the advertised
window in the SACK.
SCTP Error Control
SCTP, like TCP, is a reliable transport-layer protocol. It uses a SACK chunk to report the state of
the receiver buffer to the sender.
Each implementation uses a different set of entities and timers for the receiver and sender sites.
Error Control , Receiver Site
The receiver stores all chunks that have
arrived in its queue including the out-of-order
ones. However, it leaves spaces for any
missing chunks. It discards duplicate
messages, but keeps track of them for reports
to the sender.
Error Control , Sender Site
At the sender site, it needs two buffers
(queues): a sending queue and a
retransmission queue. We also use the three
variables rwnd, inTransit, and curTSN as
described in the previous section.
Summary
To introduce SCTP as a new transport-layer protocol.
To discuss SCTP services and compare them with TCP.
 To list and explain different packet types used in SCTP and discuss the purpose and of each field in
each packet.
To discuss SCTP association and explain different scenarios such as association establishment, data
transfer, association termination, and association abortion.
To compare and contrast the state transition diagram of SCTP with the corresponding diagram of
TCP.
To explain flow control, error control, and congestion control mechanism in SCTP and compare them
with the similar mechanisms in TCP.
Thank You

Sctp

  • 1.
  • 2.
    What is SCTP? SCTP(Stream Control Transmission Protocol) is a transport protocol. SCTP was specifically designed as a transport protocol for public telephony network signaling message transport. However, SCTP is generic and may supersede TCP in other applications as well. It is a reliable transport protocol for transporting stream traffic, can operate on top of unreliable connectionless networks, and offers acknowledged and nonduplicated transmission data on connectionless networks (datagrams).
  • 3.
    SCTP Services  Process-to-ProcessCommunication.  Multiple Streams : 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  Multi homing.  Full-Duplex Communication:Each SCTP then has a sending and receiving buffer, and packets are sent in both directions.  Connection-Oriented Service.
  • 4.
    Multi homing  Thesending 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.
  • 5.
    SCTP Features  Theprotocol is error free. A retransmission scheme is applied to compensate for loss or corruption of the datagram, using checksums and sequence numbers.  It has ordered and unordered delivery modes.  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.  SCTP has effective methods to avoid flooding congestion and masquerade attacks.  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.
  • 6.
    SCTP Packet Format TheSCTP header contains only a limited set of fields. More SCTP control information is contained in control chunks that are bundled with user data chunks into the SCTP packet payload. Verification tag : A 32-bit random value created during initialization to distinguish stale packets from a previous connection. Checksum : This 32-bit field contains a CRC-32 checksum.
  • 7.
    SCTP Chunk Structure Chunktype : An 8-bit value, used to identify the contents of the chunk value field. Chunk flags : Eight flag-bits whose define what flags a chunk may need. Chunk length : A 16-bit unsigned value specifying the total length of the chunk in bytes (excludes any padding) that includes chunk type, flags, length, and value fields.
  • 8.
    SCTP Connection –Four-way Handshake 1.The server must be prepared to accept an incoming association and is called a passive open. 2.The client issues an active open by calling connect or by sending a message, which implicitly opens the association. 3.The server acknowledges the client's INIT message with an INIT-ACK message. 4.The client echoes the server's state cookie with a COOKIE-ECHO message. 5. The server acknowledges that the cookie was correct and that the association was established with a COOKIE-ACK message. This message may also contain user data bundled within the same packet. The minimum number of packets required for this exchange is four; hence, this process is called SCTP's four-way handshake.
  • 9.
    SCTP Connection –Simple Data Transfer  Only DATA chunks consume tsns  DATA chunks are the only chunks that are acknowledged.  Acknowledgment defines the cumulative tsn  The TSN of the last data chunk received in order.
  • 10.
    SCTP Connection –Termination  Acknowledgment defines the cumulative TSN  The TSN of the last data chunk received in order.
  • 11.
  • 12.
    SCTP Flow Control Flowcontrol in SCTP is similar to TCP. In SCTP, we need to handle two units of data, the byte and the chunk. The values of rwnd and cwnd are expressed in bytes; the values of TSN and acknowledgments are expressed in chunks. Current SCTP implementations still use a byte-oriented window for flow control.
  • 13.
    Flow Control, Receiversite 1. When the site receives a data chunk, it stores it at the end of the buffer (queue) and subtracts the size of the chunk from winSize. 2. When the process reads a chunk, it removes it from the queue and adds the size of the removed chunk to winSize (recycling). 3. When a receiver decides to send a SACK,it checks the value of lastAck. If it is less than cumTSN, it sends a SACK with a cumulative TSN number equal to the cumTSN.it also include the value of winSize size.
  • 14.
    Flow Control, Sendersite 1. A chunk pointed to by curTSN can be sent if the size of the data is less than or equal to the quatity rwnd-in Transit. After sending the chunk, the value of curTSN is incremented by the size of the data in the transmitted chunk. 2. When a SACK is recived, the chunks with a TSN less than or equal to the cumulative TSN in the SACK are removed from the queue and discarded. The value of the Transit is reduced by the total size of the discarded chunks. Value of rwnd is updated with the value of the advertised window in the SACK.
  • 15.
    SCTP Error Control SCTP,like TCP, is a reliable transport-layer protocol. It uses a SACK chunk to report the state of the receiver buffer to the sender. Each implementation uses a different set of entities and timers for the receiver and sender sites.
  • 16.
    Error Control ,Receiver Site The receiver stores all chunks that have arrived in its queue including the out-of-order ones. However, it leaves spaces for any missing chunks. It discards duplicate messages, but keeps track of them for reports to the sender.
  • 17.
    Error Control ,Sender Site At the sender site, it needs two buffers (queues): a sending queue and a retransmission queue. We also use the three variables rwnd, inTransit, and curTSN as described in the previous section.
  • 19.
    Summary To introduce SCTPas a new transport-layer protocol. To discuss SCTP services and compare them with TCP.  To list and explain different packet types used in SCTP and discuss the purpose and of each field in each packet. To discuss SCTP association and explain different scenarios such as association establishment, data transfer, association termination, and association abortion. To compare and contrast the state transition diagram of SCTP with the corresponding diagram of TCP. To explain flow control, error control, and congestion control mechanism in SCTP and compare them with the similar mechanisms in TCP.
  • 20.