350 likes | 540 Views
Chapter 13. Stream Control Transmission Protocol. Objectives . Upon completion you will be able to:. Be able to name and understand the services offered by SCTP Understand SCTP’s flow and error control and congestion control Be familiar with the fields in a SCTP segment
E N D
Chapter 13 Stream ControlTransmission Protocol Objectives Upon completion you will be able to: • Be able to name and understand the services offered by SCTP • Understand SCTP’s flow and error control and congestion control • Be familiar with the fields in a SCTP segment • Understand the phases in an SCTP association • Understand the SCTP state transition diagram TCP/IP Protocol Suite
Figure 13.1TCP/IP protocol suite TCP/IP Protocol Suite
SCTP combines the better features of UDP and TCP SCTP is reliable, message-oriented (messages are not broken up indiscriminately into segments as TCP does) Table 13.1 Some SCTP applications TCP/IP Protocol Suite
Figure 13.2Multiple-stream concept In TCP, each connection between a client and a server involves a single stream and is called an association. SCTP allows multiple streams. If one stream is blocked, the other streams can still deliver data. Very useful for real-time applications. TCP/IP Protocol Suite
Figure 13.3Multihoming concept Multiple sources and multiple receivers – allows for a fault-tolerant approach TCP/IP Protocol Suite
Note: Data chunks are identified by three identifiers: TSN, SI, and SSN. TSN is a cumulative number identifying the association; SI defines the stream; SSN defines the chunk in a stream. TCP/IP Protocol Suite
Note: In SCTP, acknowledgment numbers are used to acknowledge only data chunks; control chunks are acknowledged by other control chunks if necessary. TCP/IP Protocol Suite
Figure 13.4Comparison between a TCP segment and an SCTP packet SCTP uses a transmission sequence number (TSN) to number the data chunks. Each stream in an SCTP connection needs a stream identifier (SI). Bytes within a stream are numbered using the stream sequence number (SSN). Segments / packets are formatted differently too: TCP/IP Protocol Suite
Figure 13.4Comparison between a TCP segment and an SCTP packet An association may send many packets, a packet may contain several chunks, and chunks may belong to different streams. SCTP control info is in the Control chunk. Data chunks can carry data from multiple streams! Since multiple streams possible, each stream is identified by TSNs, SIs, and SSNs. No options section. SCTP header is smaller – only 12 bytes SCTP uses a 32-bit cyclic checksum TCP/IP Protocol Suite
Figure 13.5Packet, data chunks, and streams TCP/IP Protocol Suite
Figure 13.7General header General header always comes first. TCP/IP Protocol Suite
Figure 13.8Common layout of a chunk Control chunks come before data chunks. TCP/IP Protocol Suite
Table 13.2 Different type of Chunks TCP/IP Protocol Suite
Note: A DATA chunk cannot carry data belonging to more than one message, but a message can be split into several chunks.The data field of the DATA chunk must carry at least one byte of data, which means the value of length field cannot be less than 17. TCP/IP Protocol Suite
Figure 13.9DATA chunk U bit: a 1 signals unordered data; 0 is ordered data B=1 and E=1? No fragmentation, whole msg in one chunk B=1 and E=0? First fragment B=0 and E=1? Last fragment B=0 and E=0? Middle fragment TCP/IP Protocol Suite
Figure 13.10INIT chunk TCP/IP Protocol Suite
Figure 13.11INIT ACK chunk Several more chunks (cookie echo, cookie ack, sack,…) TCP/IP Protocol Suite
Figure 13.19Four-way handshaking VT-verification tag; Init tag-used for packets from the other direction (and to prevent a blind attacker from disrupting a connection, as can happen in TCP) Notice – INIT ACK packet contains a cookie. If the sender of the first packet is an attacker, the server never receives the third packet, the cookie is lost, and no resources allocated. TCP/IP Protocol Suite
Figure 13.20Simple data transfer Note: cumTSN does not point to next TSN expected! TCP/IP Protocol Suite
Figure 13.21Association termination TCP/IP Protocol Suite
13.5 STATE TRANSITION DIAGRAM To keep track of all the different events happening during association establishment, association termination, and data transfer, the SCTP software, like TCP, is implemented as a finite state machine. The topics discussed in this section include: Scenarios Simultaneous Close TCP/IP Protocol Suite
Figure 13.23State transition diagram TCP/IP Protocol Suite
Table 13.4 States for SCTP TCP/IP Protocol Suite
Figure 13.24A common scenario of states TCP/IP Protocol Suite
Figure 13.25Simultaneous open TCP/IP Protocol Suite
Figure 13.26Simultaneous close TCP/IP Protocol Suite
13.6 FLOW CONTROL Flow control in SCTP is similar to that in TCP. In SCTP, we need to handle two units of data, the byte and the chunk. The topics discussed in this section include: Receiver Site Sender Site A Scenario TCP/IP Protocol Suite
Figure 13.27Flow control, receiver site TCP/IP Protocol Suite
Figure 13.28Flow control, sender site TCP/IP Protocol Suite
Figure 13.29Flow control scenario rwnd and winSize agreed upon during init phase to be 2000 For some reason, rwnd set to 0 TCP/IP Protocol Suite
13.7 ERROR CONTROL SCTP 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. The topics discussed in this section include: Receiver Site Sender Site Sending Data Chunks Generating SACK Chunks TCP/IP Protocol Suite
Figure 13.30Error control, receiver site TCP/IP Protocol Suite
Figure 13.31Error control, sender site TCP/IP Protocol Suite
Figure 13.32New state at the sender site after receiving a SACK chunk TCP/IP Protocol Suite
13.8 CONGESTION CONTROL SCTP uses the same strategies for congestion control as TCP. SCTP uses slow start, congestion avoidance, and congestion detection phases. SCTP also uses fast retransmission and fast recovery. The topics discussed in this section include: Congestion Control and Multihoming Explicit Congestion Notification TCP/IP Protocol Suite