Stream Control Transmission Protocol (SCTP) Group 2: HARRISON cLIFFORD, fRANK kIMANI & nAWAL aHMED
What is SCTP? Stream Control Transmission Protocol Transport layer protocol Message-oriented Reliable Relatively new
RFC 4960 Describes SCTP Acknowledged error-free non-duplicated transfer of user data; Data fragmentation to conform to discovered path MTU size; Sequenced delivery of user messages within multiple streams, with option for order-of-arrival delivery of individual user messages; Optional bundling of multiple user messages into single SCTP packet; Network-level fault tolerance by supporting multi-homing at either or both ends of an association.
Basic SCTP terminology Chunk – A unit of data within an SCTP packet, similar to UDP Datagram Path – A connection between two IPs Association – The set of paths between two endpoints on a network Transmission Sequence Number (TSN) – A number assigned to each data chunk to keep track of it
Multihoming Sending and receiving hosts can have multiple IP addresses. TCP connection can only handle one IP per end. An SCTP association can handle multiple IP addresses at each end. Fault-tolerant
Creating an SCTP Association SCTP requires a four-way step process also called a handshake: 1. INIT – Request sent by client to server 2. INIT ACK – Response to INIT, provides a Verification Tag and a Cookie which defines the current server state 3. COOKIE ECHO – Client echoes the Cookie 4. COOKIE ACK – Final acknowledgement of the connection Difficult to perform a DoS attack
SCTP Packet Structure Multiple chunks can be held together in the same packet. Control information is carried in chunks Verification Tag – Unique identifier for the current Association
SCTP Chunk Structure Type field – Data, Association requests, Acknowledgements, etc. Flag field – Defines what flags a chunk may need Length – Total size of the chunk in bytes
Multistream Delivery SCTP can support multiple different streams for data transfer Each stream is assigned a Stream Identifier (SI) Each stream can have either ordered or unordered delivery Ordered delivery – Data chunks are assigned Stream Sequence Numbers (SSNs) Unordered delivery – Data can be sent in any order, so long as all chunks are eventually received
Error Control Whenever a data chunk is received, an acknowledgement is returned to the transmitter. If the transmitter does not receive an acknowledgement within a certain time frame (RTO), the chunk is retransmitted. If a receiver notices missing data chunks, it sends a selective acknowledgement to the transmitter.
TCP and UDP compared to SCTP Attribute TCP UDP SCTP Reliability Reliable Unreliable Connection Management Connection Oriented Connectionless Transmission Byte Oriented Message Oriented Flow Control Yes No Congestion Control Fault Tolerance Data Delivery Strictly Ordered Unordered Partially Ordered Security Improved
Popularity Issues TCP/IP is very widespread and integrated. Lacks native support with Windows and Mac OS. Does not cross NAT very well. Less than 1% of home or enterprise routers do NAT on SCTP. SCTP fills peculiar needs that are not needed by many applications like multistream and ordered reliable datagrams.
References Forouzan, Behrouz A. TCP/IP Protocol Suite. 4th ed., McGraw-Hill, 2010 https://www.rfc-editor.org/rfc/rfc4960.txt https://www.youtube.com/watch?v=9YBRNOTRHV0 http://www.technology- training.co.uk/signallingtransportsigtranusingsctp_41.php