Chapter 16 Stream Control Transmission Protocol SCTP 1

  • Slides: 76
Download presentation
Chapter 16 Stream Control Transmission Protocol (SCTP) 1 TCP/IP Protocol Suite Copyright © The

Chapter 16 Stream Control Transmission Protocol (SCTP) 1 TCP/IP Protocol Suite Copyright © The Mc. Graw-Hill Companies, Inc. Permission required for reproduction or display.

OBJECTIVES: q To introduce SCTP as a new transport-layer protocol. q To discuss SCTP

OBJECTIVES: q To introduce SCTP as a new transport-layer protocol. q To discuss SCTP services and compare them with TCP. q To list and explain different packet types used in SCTP and discuss the purpose and of each field in each packet. q To discuss SCTP association and explain different scenarios such as association establishment, data transfer, association termination, and association abortion. q To compare and contrast the state transition diagram of SCTP with the corresponding diagram of TCP. q To explain flow control, error control, and congestion control mechanism in SCTP and compare them with the similar mechanisms in TCP/IP Protocol Suite 2

Chapter Outline TCP/IP Protocol Suite 16. 1 Introduction 16. 2 SCTP Services 16. 3

Chapter Outline TCP/IP Protocol Suite 16. 1 Introduction 16. 2 SCTP Services 16. 3 STCP Features 16. 4 Packet Format 16. 5 An SCTP Association 16. 6 State Transition Diagram 16. 7 Flow Control 16. 8 Error Control 16. 9 Congestion Control 3

16 -1 INTRODUCTION Stream Control Transmission Protocol (SCTP) is a new reliable, message-oriented transport-layer

16 -1 INTRODUCTION Stream Control Transmission Protocol (SCTP) is a new reliable, message-oriented transport-layer protocol. Figure 16. 1 shows the relationship of SCTP to the other protocols in the Internet protocol suite. SCTP lies between the application layer and the network layer and serves as the intermediary between the application programs and the network operations. TCP/IP Protocol Suite 4

Figure 16. 1 TCP/IP Protocol Suite TCP/IP Protocol suite 5

Figure 16. 1 TCP/IP Protocol Suite TCP/IP Protocol suite 5

Note SCTP is a message-oriented, reliable protocol that combines the best features of UDP

Note SCTP is a message-oriented, reliable protocol that combines the best features of UDP and TCP/IP Protocol Suite 6

16 -2 SCTP SERVICES Before discussing the operation of SCTP, let us explain the

16 -2 SCTP SERVICES Before discussing the operation of SCTP, let us explain the services offered by SCTP to the application layer processes. TCP/IP Protocol Suite 7

Topics Discussed in the Section ü Process-to-Process Communication ü Multiple Streams ü Multihoming ü

Topics Discussed in the Section ü Process-to-Process Communication ü Multiple Streams ü Multihoming ü Full-Duplex Communication ü Connection-Oriented Service ü Reliable Service TCP/IP Protocol Suite 8

TCP/IP Protocol Suite 9

TCP/IP Protocol Suite 9

Figure 16. 2 TCP/IP Protocol Suite Multiple-stream concept 10

Figure 16. 2 TCP/IP Protocol Suite Multiple-stream concept 10

Note An association in SCTP can involve multiple streams. TCP/IP Protocol Suite 11

Note An association in SCTP can involve multiple streams. TCP/IP Protocol Suite 11

Figure 16. 3 TCP/IP Protocol Suite Multihoming concept 12

Figure 16. 3 TCP/IP Protocol Suite Multihoming concept 12

Note SCTP association allows multiple IP addresses for each end. TCP/IP Protocol Suite 13

Note SCTP association allows multiple IP addresses for each end. TCP/IP Protocol Suite 13

16 -3 SCTP FEATURES Let us first discuss the general features of SCTP and

16 -3 SCTP FEATURES Let us first discuss the general features of SCTP and then compare them with those of TCP/IP Protocol Suite 14

Topics Discussed in the Section ü Transmission Sequence Number (TSN) ü Stream Identifier (SI)

Topics Discussed in the Section ü Transmission Sequence Number (TSN) ü Stream Identifier (SI) ü Stream Sequence Number (SSN) ü Packets ü Acknowledgment Number ü Flow Control ü Error Control ü Congestion Control TCP/IP Protocol Suite 15

Note In SCTP, a data chunk is numbered using a TSN. Each data chunk

Note In SCTP, a data chunk is numbered using a TSN. Each data chunk must carry the corresponding TSN in its headera TSN. TCP/IP Protocol Suite 16

Note To distinguish between different streams, SCTP uses an SI. TCP/IP Protocol Suite 17

Note To distinguish between different streams, SCTP uses an SI. TCP/IP Protocol Suite 17

Note To distinguish between different data chunks belonging to the same stream, SCTP uses

Note To distinguish between different data chunks belonging to the same stream, SCTP uses SSNs. TCP/IP Protocol Suite 18

Figure 16. 4 Comparison between a TCP segment and an SCTP packet The verification

Figure 16. 4 Comparison between a TCP segment and an SCTP packet The verification tag in SCTP is an association identifier. TSN. TCP/IP Protocol Suite 19

Note TCP has segments; SCTP has packets. TCP/IP Protocol Suite 20

Note TCP has segments; SCTP has packets. TCP/IP Protocol Suite 20

Note In SCTP, control information and data information are carried in separate chunks. (control

Note In SCTP, control information and data information are carried in separate chunks. (control chunk and data chunk) TCP/IP Protocol Suite 21

Figure 16. 5 TCP/IP Protocol Suite Packet, data chunks, and streams 22

Figure 16. 5 TCP/IP Protocol Suite Packet, data chunks, and streams 22

Note Data chunks are identified by three identifiers: TSN, SI, and SSN. TSN is

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 23

Note In SCTP, acknowledgment numbers are used to acknowledge only data chunks; control chunks

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 24

16 -4 PACKET FORMAT In this section, we show the format of a packet

16 -4 PACKET FORMAT In this section, we show the format of a packet and different types of chunks. Most of the information presented in this section will become clear later; this section can be skipped in the first reading or used only as the reference. An SCTP packet has a mandatory general header and a set of blocks called chunks. There are two types of chunks: control chunks and data chunks. TCP/IP Protocol Suite 25

Topics Discussed in the Section ü General Header ü Chunks TCP/IP Protocol Suite 26

Topics Discussed in the Section ü General Header ü Chunks TCP/IP Protocol Suite 26

Figure 16. 6 TCP/IP Protocol Suite SCTP packet format 27

Figure 16. 6 TCP/IP Protocol Suite SCTP packet format 27

Note In an SCTP packet, control chunks come before data chunks. TCP/IP Protocol Suite

Note In an SCTP packet, control chunks come before data chunks. TCP/IP Protocol Suite 28

Figure 16. 7 General header - The verification tag in SCTP is an association

Figure 16. 7 General header - The verification tag in SCTP is an association identifier. TCP/IP Protocol Suite 29

Figure 16. 8 Common layout of a chunk - Flag : defining the special

Figure 16. 8 Common layout of a chunk - Flag : defining the special flags that a particular chunk may need; each bit has a different meaning depending on the type of chunk - Length: in bytes. Chunks need to terminate on a 32 -bit (4 -byte) boundary (a multiple of 4 bytes) TCP/IP Protocol Suite 30

TCP/IP Protocol Suite 31

TCP/IP Protocol Suite 31

Note The number of padding bytes is not included in the value of the

Note The number of padding bytes is not included in the value of the length field. TCP/IP Protocol Suite 32

Figure 16. 9 Data chunk B(beginning) and E(end) bits together define the position of

Figure 16. 9 Data chunk B(beginning) and E(end) bits together define the position of a chunk in a message that is fragmented B=1, E=0 : the first fragment B=0, E-1 : the last fragment B=0, E: 0 : the middle fragment Protocol ID : defining the type of data; to be used by application TCP/IP Protocol Suite 33

Note A DATA chunk cannot carry data belonging to more than one message, but

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 34

n INIT Chunk is the first chunk sent by an end point to an

n INIT Chunk is the first chunk sent by an end point to an association Figure 16. 10 TCP/IP Protocol Suite INIT chunk 35

- Initiation Tag : the same for all packets traveling in one direction in

- Initiation Tag : the same for all packets traveling in one direction in an association - A defines an initiation tag value, say x, which is used as the verification tag for all packet sent from B to A. . TCP/IP Protocol Suite 36

Note No other chunk can be carried in a packet that carries an INIT

Note No other chunk can be carried in a packet that carries an INIT chunk. TCP/IP Protocol Suite 37

Figure 16. 11 TCP/IP Protocol Suite INIT ACK chunk 38

Figure 16. 11 TCP/IP Protocol Suite INIT ACK chunk 38

Note No other chunk can be carried in a packet that carries an INIT

Note No other chunk can be carried in a packet that carries an INIT ACK chunk. TCP/IP Protocol Suite 39

Figure 16. 12 TCP/IP Protocol Suite COOKIE ECHO chunk 40

Figure 16. 12 TCP/IP Protocol Suite COOKIE ECHO chunk 40

Figure 16. 13 TCP/IP Protocol Suite COOKIE ACK 41

Figure 16. 13 TCP/IP Protocol Suite COOKIE ACK 41

Figure 16. 14 TCP/IP Protocol Suite SACK chunk 42

Figure 16. 14 TCP/IP Protocol Suite SACK chunk 42

Figure 16. 15 HEARTBEAT and HEARTBEAT ACK chunk - Used for to periodically probe

Figure 16. 15 HEARTBEAT and HEARTBEAT ACK chunk - Used for to periodically probe the condition of an association TCP/IP Protocol Suite 43

Figure 16. 16 SHUTDOWN chunks - Used for closing an association TCP/IP Protocol Suite

Figure 16. 16 SHUTDOWN chunks - Used for closing an association TCP/IP Protocol Suite 44

Figure 16. 17 ERROR chunk - Sent when an end point finds some error

Figure 16. 17 ERROR chunk - Sent when an end point finds some error in received packet TCP/IP Protocol Suite 45

TCP/IP Protocol Suite 46

TCP/IP Protocol Suite 46

Figure 16. 18 ABORT chunk - Sent when an end point finds fatal error

Figure 16. 18 ABORT chunk - Sent when an end point finds fatal error and needs to abort the association TCP/IP Protocol Suite 47

16 -5 AN SCTP ASSOCIATION SCTP, like TCP, is a connection-oriented protocol. However, a

16 -5 AN SCTP ASSOCIATION SCTP, like TCP, is a connection-oriented protocol. However, a connection in SCTP is called an association to emphasize multihoming. TCP/IP Protocol Suite 48

Topics Discussed in the Section ü Association Establishment ü Data Transfer ü Association Termination

Topics Discussed in the Section ü Association Establishment ü Data Transfer ü Association Termination ü Association Abortion TCP/IP Protocol Suite 49

Note A connection in SCTP is called an association. TCP/IP Protocol Suite 50

Note A connection in SCTP is called an association. TCP/IP Protocol Suite 50

Figure 16. 19 Four-way handshaking - Pack the information and send it back to

Figure 16. 19 Four-way handshaking - Pack the information and send it back to the client TCP/IP Protocol Suite 51

Note No other chunk is allowed in a packet carrying an INIT or INIT

Note No other chunk is allowed in a packet carrying an INIT or INIT ACK chunk. A COOKIE ECHO or a COOKIE ACK chunk can carry data chunks. TCP/IP Protocol Suite 52

Note In SCTP, only data chunks consume TSNs; data chunks are the only chunks

Note In SCTP, only data chunks consume TSNs; data chunks are the only chunks that are acknowledged. TCP/IP Protocol Suite 53

Figure 16. 20 TCP/IP Protocol Suite Simple data transfer 54

Figure 16. 20 TCP/IP Protocol Suite Simple data transfer 54

Note The acknowledgment in SCTP defines the cumulative TSN, the TSN of the last

Note The acknowledgment in SCTP defines the cumulative TSN, the TSN of the last data chunk received in order. TCP/IP Protocol Suite 55

Figure 16. 21 Association termination - Unlike TCP, SCTP does not allow a “halfclosed”

Figure 16. 21 Association termination - Unlike TCP, SCTP does not allow a “halfclosed” association. TCP/IP Protocol Suite 56

Figure 16. 22 Association abortion - May with to abort the association if there

Figure 16. 22 Association abortion - May with to abort the association if there is a problem in the process itself. TCP/IP Protocol Suite 57

16 -6 STATE TRANSITION DIAGRAM To keep track of all the different events happening

16 -6 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. Figure 16. 23 shows the state transition diagram for both client and server. TCP/IP Protocol Suite 58

Topics Discussed in the Section ü Scenarios TCP/IP Protocol Suite 59

Topics Discussed in the Section ü Scenarios TCP/IP Protocol Suite 59

Figure 16. 23 TCP/IP Protocol Suite State transition diagram 60

Figure 16. 23 TCP/IP Protocol Suite State transition diagram 60

TCP/IP Protocol Suite 61

TCP/IP Protocol Suite 61

Figure 16. 24 TCP/IP Protocol Suite A common scenario of state 62

Figure 16. 24 TCP/IP Protocol Suite A common scenario of state 62

Figure 16. 25 TCP/IP Protocol Suite Simultaneous open 63

Figure 16. 25 TCP/IP Protocol Suite Simultaneous open 63

Figure 16. 26 TCP/IP Protocol Suite Simultaneous close 64

Figure 16. 26 TCP/IP Protocol Suite Simultaneous close 64

16 -7 FLOW CONTROL Flow control in SCTP is similar to that in TCP.

16 -7 FLOW CONTROL Flow control in SCTP is similar to that in TCP. In TCP, we need to deal with only one unit of data, the byte. 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. TCP/IP Protocol Suite 65

Topics Discussed in the Section ü Receiver Site ü Sender Site ü A Scenario

Topics Discussed in the Section ü Receiver Site ü Sender Site ü A Scenario TCP/IP Protocol Suite 66

Figure 16. 27 TCP/IP Protocol Suite Flow control, receiver site 67

Figure 16. 27 TCP/IP Protocol Suite Flow control, receiver site 67

Figure 16. 28 TCP/IP Protocol Suite Flow control, sender site 68

Figure 16. 28 TCP/IP Protocol Suite Flow control, sender site 68

Figure 16. 29 TCP/IP Protocol Suite Flow control scenario 69

Figure 16. 29 TCP/IP Protocol Suite Flow control scenario 69

16 -8 ERROR CONTROL SCTP, like TCP, is a reliable transport-layer protocol. It uses

16 -8 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. We use a very simple design to convey the concept to the reader. TCP/IP Protocol Suite 70

Topics Discussed in the Section ü Receiver Site ü Sending Data Chunks ü Generating

Topics Discussed in the Section ü Receiver Site ü Sending Data Chunks ü Generating SANK Chunks TCP/IP Protocol Suite 71

Figure 16. 30 TCP/IP Protocol Suite Error-control receiver site 72

Figure 16. 30 TCP/IP Protocol Suite Error-control receiver site 72

Figure 16. 31 TCP/IP Protocol Suite Error control, sender site 73

Figure 16. 31 TCP/IP Protocol Suite Error control, sender site 73

Figure 16. 32 TCP/IP Protocol Suite New state at the sender site after receiving

Figure 16. 32 TCP/IP Protocol Suite New state at the sender site after receiving a SACK chunk 74

16 -9 CONGESTION CONTROL SCTP, like TCP, is a transport layer protocol with packets

16 -9 CONGESTION CONTROL SCTP, like TCP, is a transport layer protocol with packets subject to congestion in the network. The SCTP designers have used the same strategies we described for congestion control in Chapter 15 for TCP. SCTP has slow start, congestion avoidance, and congestion detection phases. Like TCP, SCTP also uses fast retransmission and fast recovery. TCP/IP Protocol Suite 75

Topics Discussed in the Section ü Congestion Control and Multihoming ü Explicit Congestion Notification

Topics Discussed in the Section ü Congestion Control and Multihoming ü Explicit Congestion Notification TCP/IP Protocol Suite 76