Title: RFC 2960 Stream Control Transmission Protocol
1RFC 2960Stream Control Transmission Protocol
- R. Stewart and Q. Xie Motorola
- K. Morneault and C. Sharp Cisco
- H. Schwarzbauer Siemens
- T. Taylor Nortel Networks
- I. Rytina Ericsson
- M. Kalla Telcordia
- L. Zhang UCLA
- V. Paxson ACIRI
- Presented by Ming-Yen Lai
2Outline
- Motivation
- Functional View of SCTP
- Features of SCTP
- SCTP Packet Format
- SCTP Association State Diagram
3Motivation
- Problems with TCP
- TCP is vulnerable to denial of service attacks,
such as SYN attacks. - Some applications need reliable transfer without
sequence maintenance or they need only partial
ordering. - The stream-oriented nature of TCP is often an
inconvenience. - TCP doesnt support multiple interfaces.
- Transport of PSTN signaling across the IP network
is an application for which all of these
limitations of TCP are relevant.
4Functional View of SCTP (cont.)
SCTP User Application
Association startup and Takedown
Sequenced deliverywithin streams
User Data Fragmentation
Acknowledgement andCongestion Avoidance
Chunk Bundling
Packet Validation
Path Management
5Functional View of SCTP (cont.)
- Association Startup and Takedown
- Four-way handshake
- Graceful close (shutdown) and ungraceful close
(abort) - Sequenced Delivery within Streams
- The term stream is used in SCTP to refer to a
sequence of user messages that are to be
delivered to the upper-layer protocol in order
with respect to other messages within the same
stream. - This is in contrast to its usage in TCP, where it
refers to a sequence of bytes. - User Data Fragmentation
- Ensure that the SCTP packet conforms to the path
MTU.
6Functional View of SCTP (cont.)
- Acknowledgement and Congestion Avoidance
- Packet retransmission and congestion control
- Chunk Bundling
- SCTP packet is composed of a common header
followed by one or more chunks. - Each chunk may contain either user data or SCTP
control information. - The SCTP user has the option to request bundling
of more than one user messages into a single SCTP
packet. - The chunk bundling function of SCTP is
responsible for assembly of the complete SCTP
packet and its disassembly at the receiving end.
7Functional View of SCTP
- Packet Validation
- Adler-32 checksum algorithm
- Path Management
- Choose the destination transport address for each
outgoing SCTP packet based on the SCTP users
instructions and the currently perceived
reachability status of the eligible destination
set. - Monitor reachability through heartbeats when
other packet traffic is inadequate to provide
this information and advises the SCTP user when
reachability of any far-end transport address
changes. - Be responsible for reporting the eligible set of
local transport addresses to the far end during
association startup, and for reporting the
transport addresses returned from the far end to
the SCTP user.
8Features of SCTP
- Multi-homing
- Multi-streaming
9SCTP Packet Format (cont.)
- A SCTP packet is composed of a common header and
chunks. - A chunk contains either control information or
user data. - Multiple chunks can be bundled into one SCTP
packet up to the MTU size, except for the INIT,
INIT ACK, and SHUTDOWN COMPLETE chunks.
10SCTP Packet Format (cont.)
- SCTP Common Header Field Descriptions
- Source and destination ports. Together with the
IP addresses in the IP header, the port numbers
identify the association to which an SCTP packet
belongs. - Verification tags. Vtags ensure that the packet
belongs to the current incarnation of an
association. - Checksum. This computed value maintains the
entire packets data integrity.
11SCTP Packet Format (cont.)
- Chunk Field Descriptions
- Chunk Type. This field identifies the type of
information contained in the Chunk Value field. - Chunk Flags. The usage of these bits depends on
the chunk type as given by the Chunk Type. - Chunk Length. This value represents the size of
the chunk in bytes including the Chunk Type,
Chunk Flags, Chunk Length, and Chunk Value
fields. - Chunk Value. The Chunk Value field contains the
actual information to be transferred in the chunk.
12SCTP Packet Format (cont.)
ID Value Chunk Type
0 Payload Data (DATA)
1 Initiation (INIT)
2 Initiation Acknowledgement (INIT ACK)
3 Selective Acknowledgement (SACK)
4 Heartbeat Request (HEARTBEAT)
5 Heartbeat Acknowledgement (HEARTBEAT ACK)
6 Abort (ABORT)
7 Shutdown (SHUTDOWN)
13SCTP Packet Format (cont.)
ID Value Chunk Type
8 Shutdown Acknowledgement (SHUTDOWN ACK)
9 Operation Error (ERROR)
10 State Cookie (COOKIE ECHO)
11 Cookie Acknowledgement (COOKIE ACK)
12 Reserved for Explicit Congestion Notification Echo (ECNE)
13 Reserved for Congestion Window Reduced (CWR)
14 Shutdown Complete (SHUTDOWN COMPLETE)
14SCTP Association State Diagram (cont.)
(frm any state)
rcv ABORT
ABORT
rcv INIT
or
delete TCB
snd ABORT delete TCB
CLOSED
generate Cookie snd INIT ACK
ASSOCIATE
create TCBsnd INIT strt init timer
rcv valid COOKIE ECHO
COOKIE-WAIT
rcv INIT ACK
create TCB snd COOKIE ACK
snd COOKIE ECHO stop init timer strt cookie timer
COOKIE-ECHOED
rcv COOKIE ACK
stop cookie timer
ESTABLISHED
15SCTP Association State Diagram (cont.)
(From the ESTABLISHED state only)
SHUTDOWN
check outstanding DATA chunks
rcv SHUTDOWN / check outstanding DATA chunks
SHUTDOWN- PENDING
No more outstanding
snd SHUTDOWN strt shutdown timer
SHUTDOWN- RECEIVED
SHUTDOWN- RECEIVED
(A) rcv SHUTDOWN ACK
No more outstanding
(B) rcv SHUTDOWN
stop shutdown timer Send SHUTDOWN COMPLETE Delete
TCB
send SHUTDOWN ACK strt shutdown timer
SHUTDOWN-ACK-SENT
(B) rcv SHUTDOWN
Send SHUTDOWN ACK start shutdown timer move to
SHUTDOWN- ACK-SENT
16SCTP Association State Diagram (cont.)
(C) rcv SHUTDOWN COMPLETE
stop shutdown timer Delete TCB
(D) rcv SHUTDOWN ACK
stop shutdown timer send SHUTDOWN COMPLETE delete
TCB
CLOSED