Scaling API-first – The story of a global engineering organization
Introduction to SCTP and it's benefits over TCP and UDP
1. INTRODUCTION TO SCTP AND
IT’S BENEFITS OVER TCP &
UDP
Author : Vijay Sharma
6/29/2014
1
2. ABBREVIATIONS
SCTP- Stream Control Transmission Protocol
UDP – User Datagram Protocol
TCP – Transmission Control Protocol
RFC –Request for Comments
IETF – Internet Engineering Task Force
SACK- Selective Acknowledgement
6/29/2014
2
3. INTRODUCTION
SCTP (Stream Control Transmission Protocol)
was introduced for transporting PSTN signaling
messages over IP network. But due to its
amazing features it became an important part of
next generation network technologies i.e. IMS
and LTE.
6/29/2014
3
4. SCTP PACKET STRUCTURE FORMAT
Bits 0-7 8-15 16-23 24-31
0 Source Port Destination Port
32 Verification Tag
64 Checksum
96 Chunk 1
type
Chunk 1
flags
Chunk 1 length
128 Chunk 1 data
… …
… Chunk N type Chunk N flags Chunk N length
… Chunk 1 data
6/29/2014
4
5. SCTP PACKET STRUCTURE FORMAT
Source Port-This16 bits (unsigned integer) sender’s port number.
Port no. 0 is not used.
Destination Port- This is also16 bits (unsigned integer)
receiver’s port number. It is used by receiving host to de-multiplex to
sctp packet at receiving endpoint. Here also port no. 0 is not used.
Verification Tag- This is 32 bits (unsigned integer) used to
validate sender of the SCTP packet. For more details about this refer
RFC 4960 (page no. 16.
Checksum- This is32 bits (unsigned integer).As name indicates
this field contains checksum of sctp packets.
SCTP uses CRC32c algorithm for calculating checksum.
6/29/2014
5
6. SCTP PACKET STRUCTURE FORMAT
Chunk Type-This field indicates the type of information
contained in chunk data field.It can take values from 0 to 254
and 255 is reserved for future use.Few examples are :
6/29/2014
6
ID Chunk Type
0 Payload Data (DATA)
1 Initiation (INIT)
3 Selective Acknowledgement (SACK)
14 SHUTDOWN COMPLETE
255 Reserved
Chunk Type is coded in following manner.
High order 2 bits say what to do if type in chunk is undefined
00 = stop processing packet and discard packet
(don’t process other chunks)
01 = same as above, report unrecognized type
7. SCTP PACKET STRUCTURE FORMAT
Chunk Flag-This is 8 bit field. Its value depends on
chunk type. Unless otherwise specified its value is
considered 0 at transmitter and ignored at receiver.
Chunk Length :This is also 16 bit field. Represents the
size of chunks in bytes which includes Chunk Type, Chunk
Flags, Chunk Length, and Chunk data fields.
Chunk Data Field : This field contains actual information
to be transmitted in chunks.
6/29/2014
7
9. INITIATION
6/29/2014
9
As the figure shows SCTP uses 4 way handshake to initiate a transmission
session.
Although it can start sending information in 3rd step
The SCTP client initiates communications with an INIT packet
The server acknowledges with the INIT-ACK packet and a cookie (a unique
identifier that identifies the connection)
The client then sends the server’s cookie back to the server. Now the client
can also send additional information after the COOKIE-ECHO.
The server then acknowledges the COOKIE-ECHO with a COOKIE-ACK.
10. DATA TRANSMISSION
After the COOKIE ACK in above step, The client Send Data
chunks to server.
The server then sends SACK that is selective
Acknowledgement. Meaning of SACK will be discussed in
further slides.
6/29/2014
10
11. SHUT DOWN
As we see shut down process is 3 way handshake
in SCTP.
First the client sends shutdown request to server.
Server responds with SHUT DOWN ACK and
finally client cease the connection after sending
SHUT DOWN Complete message.
6/29/2014
11
13. IN NEXT FEW SLIDES WE SHALL DESCRIBE
BENEFITS OF SCTP OVER TCP AND UDP
6/29/2014
13
14. COMPARISON
6/29/2014
14
Services SCTP TCP UDP
Multi-homing YES NO NO
Multi-streaming YES NO NO
Ordered data delivery YES YES NO
Allow half-closed connections NO YES NA
Application PDU bundling YES YES NO
Application PDU fragmentation YES YES NO
Congestion control YES YES NO
Partial-reliable data transfer OPTIONAL NO NO
Preserve message boundaries YES NO YES
15. COMPARISON
Service SCTP TCP UDP
Protect against SYN flooding
attacks
YES NO NA
Selective acknowledgements YES OPTION
AL
NO
Unordered data delivery YES NO YES
Partial-reliable data transfer OPTIONAL NO NO
6/29/2014
15
16. MULTI-HOMING
In SCTP client and server are connected through
one primary and other secondary interfaces.
The RTT ( round trip time) is checked for all
interfaces.
When one interface goes down the other handles
the traffic.
6/29/2014
16
17. MULTI STREAMING
6/29/2014
17
TCP allow single data stream per connection but in
SCTP multiple data streams can be transmitted per
connection
This reduced overhead which was required for web
browsing.
Reduced Latency
18. PRESERVING MESSAGE BOUNDARIES
If a client sends a 150 byte and then a 100 byte
message, the information is presented to the
server with preserved message boundaries. With
SCTP and UDP the messages are sent as 150
bytes and 100 bytes. But in TCP the messages
may be sent/received as single 250 (150+100)
bytes
6/29/2014
18
19. SCTP PROTECTS AGAINST SYN FLOODING
In TCP client initiates communications with SYN.Server
respond with SYN-ACK.Then client acknowledges with ACK.
SYN Flood occurs when multiple clients send SYN packets to
server, which causes target to get overload.
But in SCTP this issue is resolved by providing 4 way
handshake communication
6/29/2014
19
21. SELECTIVE ACKNOWLEDGEMENT (SACK)
In standard TCP, every message, or packet of information
must be accounted for, resent as necessary, and processed
in the order they were sent.
SCTP has the ability to selectively acknowledge receipt of
missing, disordered, or duplicated messages.
Due to the nature of telecommunications most applications
would end up discarding any unsynchronized messages.
Therefore, the need to send and receive the information is
forgone. This would mean that a portion of a word, a
portion of a video, or a piece of the whiteboard refresh
would be skipped over.
The applications and users may notice a slight skip in the
voice, video, or refresh.
This is referred to as jitter within the telecommunications
world and a small amount of jitter is often preferred to
having the packet resent and reprocessed which would
double the amount of jitter,
6/29/2014
21
22. UNORDERED DELIVERY
In the above diagram , if we were using TCP, once
Message C was received all processing would stop,
and wait for Message B, it would be processed and
then Message C would be processed.
SCTP allows for unordered data delivery and since it
has multiple streams, only the one affected is
temporarily blocked. As in the diagram , SCTP would
process the messages in the order they arrived, not
waiting for them to be numerically ordered.
6/29/2014
22