Top Banner

of 65

Chap 13 Modified PP2003

Mar 08, 2016

Download

Documents

YazanAlomari

internet protocol forozan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • TCP/IP Protocol Suite*Chapter 13Upon completion you will be able to:Stream Control Transmission Protocol Be able to name and understand the services offered by SCTP Understand SCTPs 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 diagramObjectives

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.1 TCP/IP protocol suite

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Table 13.1 Some SCTP applicationsSCTP combines the better features of UDP and TCPSCTP is reliable, message-oriented (preserves the message boundaries and at the same time detects lost data, duplicatedata and out of order data)It also has congestion control and flow control mechanisms.

    SCTP uses all well-known ports in the TCP space. Table 13.1 lists some extra port numbers used by SCTP.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.2 Multiple-stream conceptIn TCP, each connection between a client and a server involvesa single stream and is called an association in SCTP.SCTP allows multiple streams. If one stream is blocked, theother streams can still deliver data. Very useful for real-timeapplications.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*SCTP association allows multiple IP addresses for each end.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.3 Multihoming conceptMultiple sources and multiple receivers allowsfor a fault-tolerant approach

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*In SCTP, a data chunk is numbered using a TSN.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*To distinguish between different streams, SCTP uses a SI.Note:

    TCP/IP Protocol Suite

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

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.4 Comparison between a TCP segment and an SCTP packet

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.4 Comparison between a TCP segment and an SCTP packetAn association may send many packets, a packet may containseveral chunks, and chunks may belong to different streams.SCTP control info is in the Control chunk.Data chunks can carry data from multiple streams.No options section. Options in SCTP are handled by defining newChunk types.SCTP header is smaller only 12 bytesSCTP uses a 32-bit checksum

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*TCP has segments; SCTP has packets.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*In SCTP, control information and data information are carried in separate chunks.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.5 Packet, data chunks, and streams

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*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.Note:Transmission Sequence Number (TSN) Stream Identifier (SI) Stream Sequence Number (SSN)

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*In SCTP, acknowledgment numbers are used to acknowledge only data chunks; control chunks are acknowledged by other control chunks if necessary.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*13.3 PACKET FORMATWe show the format of a packet and different types of chunks. 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.The topics discussed in this section include:General HeaderChunks

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.6 SCTP packet format

    TCP/IP Protocol Suite

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

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.7 General headerGeneral header always comes first.Verification tag: a number that matches a packet to an association. There is a verification used for each direction in the association.CRC-32 checksum.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.8 Common layout of a chunkControl chunks come before data chunks.Type: can define up to 256 types of chunks (only a few have been defined so far; the rest are reserved for future use.Flag: define special flags that a particular chunk may need. Each bit has a different meaning depending on the type of the chunk.Length: is needed because the size of the information section is dependent on the type of the chunk.Defines the total size of the chunk, in bytes, including the type, flag, and length fields.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Chunks need to terminate on a 32-bit (4 byte) boundary.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Table 13.2 Different type of Chunks

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*The number of padding bytes are not included in the value of the length field.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.9 DATA chunkU bit: a 1 signals unordered data(SSN is ignored); 0 is ordered data (default)The message carrying the chunk is delivered to the applicationwithout waiting for the other messages (even if it is out of order)B=1 and E=1? No fragmentation, whole message in one chunkB=1 and E=0? First fragment, B=0 and E=1? Last fragmentB=0 and E=0? Middle fragmentTo indicate which protocol the SCTP is carrying

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*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.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.10 INIT chunk (initiation chunk)INIT chunk is the first chunk sent by an end point to establish an association.

    TCP/IP Protocol Suite

  • Initiation tagDefines the value of the verification tag for packets travelling in the opposite direction.This tag is the same for all packets travelling in one direction in an association.Is determined during association establishment.random number -> (1 and 232 1).0 -> no association -> permitted only by the general header of the INIT chunk.Advertised receiver window creditUsed in flow control and defines the initial amount of data in bytes the sender of INIT chunk can allow.In SCTP, sequence numbers are in terms of chunks.TCP/IP Protocol Suite*

    TCP/IP Protocol Suite

  • Outbound streamDefines the number of streams that the initiator of the association suggests for streams in the outbound direction.Maximum inbound streamDefines the maximum number of streams that the initiator of the association can support in the inbound direction.Cant be increased by the other end.Initial TSNInitializes the TSN in the outbound direction.< 232.Variable length parametersOptional parameters that may be added to define the IP address of sending end point, the number of IP addresses the end point can support (multihome) and other parameters.For example, Parameter type = 5. This parameter lists all the IPV4 addresses used at the sending endpoint.TCP/IP Protocol Suite*

    TCP/IP Protocol Suite

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

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.11 INIT ACK chunkParameter type: defines the state cookie sent by the sender of this chunk.The INIT ACK chunk is the second packetsent during association establishment.

    TCP/IP Protocol Suite

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

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.12 COOKIE ECHO chunkThe COOKIE ECHO chunk is the third chunk sent during association establishment.It is sent by the end point that receives an INIT ACK chunk.Can also carry user data.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.13 COOKIE ACKThe COOKIE ACK chunk is the fourth and last chunk sent during association establishment.It is sent by the end point that receives a COOKIE ECHO chunk.Can also carry user data.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.14 SACK chunk

    TCP/IP Protocol Suite

  • Cumulative TSN acknowledgementDefines the TSN of the last data chunk received in sequence.Advertised receiver window creditIs the updated value for the receiver window size.Number of gap ACK blocksDefines the number of gaps in the data chunk received after the cumulative TSN.The gap defines the sequence of received chunks, not the missing chunks.Number of duplicatesDefines the number of duplicate chunks following the cumulative TSN.TCP/IP Protocol Suite*

    TCP/IP Protocol Suite

  • Gap ACK block start offsetFor each gap block, it gives the starting TSN relative to the cumulative TSN.Gap ACK block end offsetFor each gap block, it gives the ending TSN relative to the cumulative TSN.Duplicate TSNFor each duplicate chunk, it gives the TSN of the chunk.

    TCP/IP Protocol Suite*

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.15 HEARTBEAT and HEARTBEAT ACK chunksHeartbeat: probes the peer for liveliness.Heartbeat ACK: Acknowledges heartbeat chunk.Sender-specific information: includes the local time and the IP address of the sender.

    It is copied without change into the heartbeat ACK chunk.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.16 SHUTDOWN, SHUTDOWN ACK, and SHUTDOWN COMPLETE chunksThe T flag shows that the sender does not have Transmission control block (TCB) table which holds info about each connection.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.17 ERROR chunkThe error chunk is sent when an end point finds some error in a received packet.The sending of an error chunk does not imply the aborting of the association.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Table 13.3 Errors

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.18 ABORT chunkThe abort chunk is sent when an end point finds a fatal error and needs to abort the association.

    One or more error cause: 1-Invalid Stream Identifier, 2-Missing Mandatory Parameter, 9- No User Data

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*13.4 AN SCTP ASSOCIATIONSCTP, like TCP, is a connection-oriented protocol. However, a connection in SCTP is called an association to emphasize multihomingThe topics discussed in this section include:Association Establishment Data Transfer Association Termination Association Abortion

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.19 Four-way handshaking

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*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.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*In SCTP, only DATA chunks consume TSNs;DATA chunks are the only chunks that are acknowledged.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.20 Simple data transferNote: cumTSNdoes not pointto next TSNexpected!

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*The acknowledgment in SCTP defines the cumulative TSN, the TSN of the last DATA chunk received in order.Note:

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.21 Association terminationSCTP does not allow a half-closed association.

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.22 Association abortion

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*13.5 STATE TRANSITION DIAGRAMTo 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

  • TCP/IP Protocol Suite*Figure 13.23 State transition diagram

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Table 13.4 States for SCTP

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.24 A common scenario of states

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.25 Simultaneous open

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.26 Simultaneous close

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*13.6 FLOW CONTROLFlow 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

  • TCP/IP Protocol Suite*Figure 13.27 Flow control, receiver site

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.28 Flow control, sender site

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.29 Flow control scenariorwnd and winSize agreed upon during init phase to be 2000

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*13.7 ERROR CONTROLSCTP 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

  • TCP/IP Protocol Suite*Figure 13.30 Error control, receiver site

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.31 Error control, sender site

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*Figure 13.32 New state at the sender site after receiving a SACK chunk

    TCP/IP Protocol Suite

  • TCP/IP Protocol Suite*13.8 CONGESTION CONTROLSCTP uses the same strategies for congestion control as TCP. SCTP uses slow start, congestion avoidance, and congestion detection phases.

    TCP/IP Protocol Suite