112
Chapter 13 Chapter 13 Upon completion you will be able to: Stream Control Stream Control Transmission Protocol 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 diagram Objectives

Chapter 13 Stream Control Transmission Protocol 13.pdf · o SCTP: Stream Control Transmission Protocol o A new reliable, message-oriented transport-layer protocol o H.323, SIP need

  • Upload
    hanhi

  • View
    244

  • Download
    4

Embed Size (px)

Citation preview

Chapter 13Chapter 13

Upon completion you will be able to:

Stream ControlStream ControlTransmission ProtocolTransmission Protocol

• 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

Objectives

Stream Control Transmission Protocolo SCTP: Stream Control Transmission Protocolo A new reliable, message-oriented transport-

layer protocolo H.323, SIP need a more sophisticated service

than TCP can providen SCTP is proposed

Figure 13.1 TCP/IP protocol suite

Comparison of UDP, TCP and SCTPo UDPn Message-oriented

o A process delivers a message to UDPo UDP conserve the message boundaries

n Each message is independent from each other

o Good for real-time or IP telephony

n Unreliablen Lack congestion control and flow control

o Bad for real-time or IP telephony

Comparison of UDP, TCP and SCTP (Cont.)o TCPn Byte-oriented protocol

o Receives a message, store them as a stream of bytes and sends them in segments

n Reliablen Has congestion control and flow control

Comparison of UDP, TCP and SCTP (Cont.)o SCTPn Combine the features of UDP and TCPn Reliable message-oriented protocol

o Preserve the message boundarieso Reliable

n Have congestion control and flow control

13.1 SCTP SERVICES

We explain the services offered by SCTP to the application layerWe explain the services offered by SCTP to the application layerprocesses.processes.

The topics discussed in this section include:The topics discussed in this section include:

ProcessProcess--toto--Process CommunicationProcess CommunicationMultiple StreamsMultiple StreamsMultihomingMultihomingFullFull--Duplex CommunicationDuplex CommunicationConnectionConnection--Oriented ServiceOriented ServiceReliable ServiceReliable Service

Process-to-Process Communicationo SCTP uses well-known ports in the TCP

Table 13.1 Table 13.1 Some SCTP applicationsSome SCTP applications

Multiple Streamso TCP is stream-oriented protocoln Each TCP connection involves one single connectionn However, a loss at any point blocks the delivery of

the rest of datao Not allow in real-time data

o SCTP allows multistream service in each connectionn Called association in SCTPn Similar to multiple lanes on a highway

Figure 13.2 Multiple-stream concept

Multihomingo Multihomed host

n Connected to more than one physical address with multiple IP addresses

o However, a TCP connection involves one source and one destinationn Only one IP address is utilized per end

o SCTP supports multihoming servicen Sending host and receiving host can define multiple IP

addresses in each end for an associationn Good for fault-tolerant

Figure 13.3 Multihoming concept

Multihoming (Cont.)o In current SCTPn Only one pair of IP addresses can be chosen for

normal communicationn The alternative is used if the main choice failsn Thus, does not support load sharing between

different paths

An association in SCTP can involve multiple streams.

Full-Duplex Communicationo Like TCP, data can flow in both directions at

the same time

o Thus, each SCTP has a sending buffer and a receiving buffer

Connection-Oriented Serviceso SCTP is a connection-oriented service

o A connection is called an association in SCTP

Reliable Serviceo SCTP is a reliable transport protocol

o Use an acknowledgment mechanism

13.2 SCTP FEATURES

We discuss the general features of SCTP and then compare them wiWe discuss the general features of SCTP and then compare them with th those of TCP. those of TCP.

The topics discussed in this section include:The topics discussed in this section include:Transmission Sequence Number (TSN) Transmission Sequence Number (TSN) Stream Identifier (SI) Stream Identifier (SI) Stream Sequence Number (SSN) Stream Sequence Number (SSN) Packets Packets Acknowledgment Number Acknowledgment Number Flow Control Flow Control Error Control Error Control Congestion Control Congestion Control

Transmission Sequence Number (TSN)o Unit of data in TCP is a byten Each byte has a sequence number

o Unit of data in SCTP is data chunkn A transmission sequence number (TSN) is used

to number the data chunksn Each data chunk has a TSN in its header

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

Stream Identifier (SI)o Several streams in a SCTP associationo Each stream is identified using a stream

identifier (SI)o Each data chunk carries SI in its headern Thus it can be properly placed in its belonging

stream

To distinguish between different streams, SCTP uses a SI.

Stream Sequence Number (SSN)o SCTP defines each data chunk in each stream

with a stream sequence number (SSN)o With SI and SSNn A data chunk can be delivered to the appropriate

stream and in the proper order

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

SCTP uses SSNs.

Packetso In TCP, a segment carries data and control

informationn Data are carried as a collection of bytesn Control information is defined by six control flag in the

headero In SCTP

n Data are carried as data chunksn Control information are carried as control chunks

o However, several control chunks and data chunks can be packed in a packet

Figure 13.4 Comparison between a TCP segment and an SCTP packet

TCP has segments; SCTP has packets.

Difference Between SCTP Packets and TCP Segmentso Control information

n In TCP: part of the headern In SCTP: in the control chunks

o Data n In TCP: the data in a TCP segment treated as one entityn In SCTP: an SCTP packet can carry several data chunks

o Each chunk can belong to different streamo Option

n Part of a TCP segmentn Does not exist in an SCTP packet

o SCTP handles options by defining new chunk types

Difference Between SCTP Packets and TCP Segments (Cont.)o Header

n Mandatory part of TCP header is 20 bytesn General header in SCTP is 12 bytes, shorter since

o An SCTP sequence number (TSN) belongs to each data chunk and located in the chunk’s header

o The ack. number and window size are part of each chunko No need for a header length in SCTP (fixed at 12 bytes)

n There are no options to make the length of header variableo No need for an urgent pointer in SCTP (see later)

Difference Between SCTP Packets and TCP Segments (Cont.)o Checksumn TCP: 16 bitsn SCTP: 32 bits

o SCTP has a verification tagn Used as an association identifier to define each

associationn Does not exist in TCP

o IP address and port address define a connectionn However, SCTP support multihomeing

Difference Between SCTP Packets and TCP Segments (Cont.)o An SCTP packet includes several data chunks

n TSNs, SIs, and SSNs define each data chunkn TCP use sequence number to define the numbering of the

first byte in the datao Control chunks in SCTP never use a TSN, SI, or

SSN numbern These three identifiers belong only to data chunk

o Not to the whole packetn TCP consume one sequence number if a segment carry

control information (SYN, FIN)

Data Chunk, Stream, and Packeto An association may send many packets

n A packet may contain several chunksn Chunks may belong to different streams

o Example, in the following slidesn Process sends 11 message with 3 streams

o First four message are in the first streamo Second three message are in the first streamo Last four message are in the first stream

n Assume each message fits into one data chunkn Assume only 3 data chunks per packet

Figure 13.5 Packet, data chunks, and streams

o Data chunk in stream 0 (SI=0) are carried in first and part of second packeto Data chunk in stream 1 (SI=1) are carried in first and part of second packeto Data chunk in stream 2 (SI=2) are carried in first and part of second packet

Data Chunk, Stream, and Packet (Cont.)o Data chunks are identified by three identifiers: TSN,

SI, and SSN.o TSN is a cumulative number identifying the

associationn Used for flow control and error control

o SI defines the stream to which the chunk belongso SSN defines the chunk’s order in a particular stream.

Acknowledgment Numbero In TCP

n Acknowledgment number are byte-oriented o Refer to the sequence number

n Control information are acked using a sequence number and acknowledgment numbero E.g., SYN segment acked by an ACK segment

o SCTPn Acknowledgment number are chunk-oriented

o Refer to the TSNn Control information are carried by control chunks

o Do not need a TSNo Acked by another control chunk of the appropriate type (some need no

acknowledgment)o There is no need for a sequence number or an acknowledgment number

Acknowledgment Number (Cont.)

In SCTP, acknowledgment numbers are used to acknowledge only data

chunks; control chunks are acknowledged by other control chunks

if necessary.

13.3 PACKET FORMAT

We show the format of a packet and different types of chunks. AnWe show the format of a packet and different types of chunks. An SCTP SCTP packet has a mandatory general header and a set of blocks calledpacket has a mandatory general header and a set of blocks calledchunks. There are two types of chunks: control chunks and data cchunks. There are two types of chunks: control chunks and data chunks.hunks.

The topics discussed in this section include:The topics discussed in this section include:

General HeaderGeneral HeaderChunksChunks

Packet Formato An SCTP packetn A mandatory general headern A set of blocks called chunks

o Control chunkn Control and maintain the association

o Data chunkn Carry user data

In an SCTP packet, control chunks come before data chunks.

Figure 13.6 SCTP packet format

General Headero Goaln Define the end points of each associationn Preserve the integrity of the contents of the

packet including the headero Formatn Source port numbern Destination port number

General Header (Cont.)n Verification tag

o Match a packet to an associationso Serve an identifier for the association

n Repeat in every packet during the associationo Separate verification used for each direction in the

associationn Checksum

Chunkso Chunks have the same layout

n First three fields are commonn Information field depends on the type of chunk

o Noten Information section must be a multiple of 4 bytes or

padding bytes are added

Chunks (Cont.)o Format

n Typeo Define the type of chunk, see Table 13.2

n Flago Define special flag that a particular chunk may needo Each bit have different meaning depending on the type of chunk

n Length o Define the total size of chunk, including the first three fieldso Note, the length of padding is not included in the length fieldo E.g., if length is 17, the receiver knows three are 3 padding bytes

Table 13.2 Table 13.2 ChunksChunks

Data Chunko Type: 0o Flag

n U: unorderedo Signal unordered data and the value of stream sequence number is

ignoredo SCTP allows unordered delivery

n B: beginningn E: end

o Both define the position of a chunk in a message that is fragmentedn B=1, E=1, there is no fragmentation (first and last)

o The whole message is carried in one chunkn B=1, E=0, it is the first fragmentn B=0, E=1, it is the last fragmentn B=0, E=0, it is the middele fragment

Figure 13.9 DATA chunk

Data Chunk (Cont.)o Transmission sequence number (TSN)n Define the transmission sequence numbern Initialized in an INIT chunk for one direction and

in ININ_ACK chunk for another directiono Stream Identifier (SI)n Define each stream in an associationn All chunks in the same stream in one direction

have the same SI

Data Chunk (Cont.)o Protocol Identifier

n Used by application program to define the type of datan Ignore by the SCTP layer

o User datan Note

o No chunk can carry data belonging to more than one messagen But a message can be split into several chunks

o This field cannot be empty n It must have at least one byte of user datan The value of length field cannot be less than 17

o If the data cannot end at a 32-bit boundary, padding is added

INIT Chunko INIT chunk: initiation chunkn First chunk sent by an end point to establish an

associationn Cannot carry other control or data chunks

o Formatn Type: 1n Flag: 0 ( no flags)n Length: a minimum of 20

o More if there are optional parameters

Figure 13.10 INIT chunk

INIT Chunk (Cont.)n Initiation tag

o Define the value of the verification tag for packets sent in the opposite direction

o Example: node A starts an association with node Bn A define an initiation tag value used as the verification tag for all

packets sent from B to Ao Thus, the verification tag field in INIT packet is 0

n Since has not yet defined the tag

n Advertised receiver window credito Used in flow control o Define the initial amount of data that the INIT sender can allow

INIT Chunk (Cont.)n Outbound stream

o Define the number of streams that the initiator suggests in the outbound direction

o It may be reduced by the other end pointn Maximum inbound stream

o Define the maximum number of stream that the initiator can support in the inbound direction

o Maximum number and cannot be increased by the other end point

INIT Chunk (Cont.)n Initial TSN

o Initialized the transmission sequence number (TSN) in the outbound direction

o Each data chunk has to have one TSNn Variable-length parameters

o Optional parametersn Define the IP address of sending end pointn The number of IP addresses the end point can supportn Preservation of the cookie staten Support of explicit congestion notification (ECN)

INIT ACK Chunko Second chunk sent during association

establishmento Cannot carry other control or data chunkso The fields in the main part are the same in

INIT chunko However, a mandatory parameter is requiredn Discussed later

Figure 13.11 INIT ACK chunk

COOKIE ECHO Chunko Third chunk send during association

establishmento The packet can also carry user data

Figure 13.12 COOKIE ECHO chunk

COOKIE ACK Chunko Forth and last chunk sent during association

establishmento Can only carry user data

Figure 13.13 COOKIE ACK

SACK Chunko SACK chunk: selective ACK chunk

n Acknowledge the receipt of data packetso Cumulative TSN acknowledgement

n Define the TSN of the last data chunk received in sequenceo Advertised receiver window credit

n Updated value of the receiver window sizeo Number of gap ACK blocks

n Define the number of gaps in the data chunk received after the cumulative TSN

n The gap defines the sequence of received chunkso Not the missing chunks

Figure 13.14 SACK chunk

SACK Chunk (Cont.)o Number of duplicates

n Define the number of duplicate chunks following the cumulative TSN

o Gap ACK block start offsetn For the gap block, give the starting TSN relative to the

cumulative TSNo Gap ACK block end offset

n For the gap block, give the ending TSN relative to the cumulative TSN

o Duplicate TSNn For each duplicate chunk, give the TSN of the chunk

relative to the cumulative TSN

HEARTBEAT and HEARTHEAT ACK Chunkso Used to periodically probe the condition of an

associationn An end point sends a HEARTBEAT chunkn The peer responds with a HEARTBEAT ACK if it is alive

o Formatn Sender specific information

o In HEARBEAT: include the local time and the address of the sender

o In BEARTBEAT ACK: copied from HEARTBEAT without change

Figure 13.15 HEARTBEAT and HEARTBEAT ACK chunks

SHUTDOWN, SHUTDOWN ACK, And SHUTDOWN COMPLETEo The three chunks used for closing an

association

ERRORo Sent when an end point find some error in a received

packetn See Table 13.3

o However, does not imply the aborting of the associationn This require an ABORT chunk

Table 13.3 Table 13.3 ErrorsErrors

ABORTo Sent when an end point finds a fatal error and

needs to abort the associationn The error type are the same as those for the

ERROR chunk (Table 13.3)

FORWARD TSNo Inform the receiver to adjust its cummulative

TSNo Provide partial reliable service

13.4 AN SCTP ASSOCIATION

SCTP, like TCP, is a connectionSCTP, like TCP, is a connection--oriented protocol. However, a oriented protocol. However, a connection in SCTP is called an association to emphasize connection in SCTP is called an association to emphasize multihomingmultihoming

The topics discussed in this section include:The topics discussed in this section include:Association Establishment Association Establishment Data Data TransferTransferAssociation Association TerminationTerminationAssociation Abortion Association Abortion

Associationo SCTP is connection-oriented

o However, a connection in SCTP is called an association

Association Establishmento Four-way handshakeo Similar to TCPn Server: passive open

o Be prepared to receive any association

n Client: active openo Initiate the association establishment

Figure 13.19 Four-way handshaking

Four-Way Handshakeo 1. Client sends the fist packet that contains an INIT

chunkn Verification tag (VT) in the general header is 0

o No verification tag has yet been defined for this directionn INIT tag

o An initiation tag to be used for packet from the other direction (server to client)

n Initial TSNo Define the initial TSN for this direction (client to server)

n Advertised receiver window credito Advertise a value of client’s rwndo Normally, rwnd is advertised in a SACK chunk

n It is done here because the third and fourth packet (COOKIE ECHO and COOKIE ACK) can include DATA chunk

Four-Way Handshake (Cont.)o 2. Server sends the second packet that contains an INIT ACK

chunk n Verification tag (VT)

o The initiation tag value in the INIT chunk (server to client)n INIT tag

o An initiation tag to be used for packet from the other direction (client to server)

n Initial TSNo Define the initial TSN for this direction (server to client)

n Advertised receiver window credito Set the server’s rwnd

n Send a cookie that defines the state of the server at this moment

Four-Way Handshake (Cont.)o 3. Client sends the third packet that includes a

COOKIE ECHO chunkn Echo, without change, the cookie sent by the server in

INIT ACK chunkn Data chunks can be included in this packet

o 4. Server sends the fourth packet that includes the COOKIE ACK chunkn Acknowledge the receipt of the COOKIE ECHO chunkn Data chunks can be included in this packet

Number of Packets Exchangedo TCPn Three-way handshaking

o SCTPn Four-way handshaking

o SCTP might be less efficientn However, SCTP allow the exchange of data in the

third and fourth packetn SCTP also provide better security against SYN

denial-of-service attacks

Verification Tago In TCP

n A connection is identified by IP addresses and port numbers that contained in each segment

o Problems n A attacker can send segments to a TCP server using

randomly chosen source and destination port numbero Waste system resource, similar to SYN attack

n A delayed segment from a previous connection can show up in a new connection that uses the same source and destination port address

Verification Tag (Cont.)o Solution in SCTP:

n A verification tag that is carried in all packet traveling in one direction in an association

n Thus, two verification tags identify as associationo Thus

n A blink attacker cannot inject a random packeto Since it is not easy to carry the exact tag (1~2^32)

n A packet from an old association cannot show up in a new associationo Since verification tag would surely be different

Cookieo SYN attack in TCP

n Since a TCP and other resources are allocated when a server receive a SYN segment

o Solution in SCTPn Postpone the allocation of resource until the reception of

third packeto At this time, the IP address of the sender is verified

n However, the information received in the first packet must be saved until the third packet arriveso But it cannot save the information in memory

Cookie (Cont.)o Solution in SCTP (Cont.)

n Thus, SCTP pack the information and send it back to the addresses received in the first packet

n Called generating a cookien There are two situations

o If the sender of the first packet is an attackern Server cannot receive the third packetn Cookie is lost and no resources are allocated

o If the sender of the first packet is an honest clientn It receives and second packet with cookien Send the third packet with cookie that no changesn Server then allocate resource until receiving the third packets

Data Transfero SCTP:

n Support bidirectional data transfern Also support piggybacking

o TCPn Receive message from a process as a stream of bytes

o Without recognizing any boundary between themn A segment can carry parts of two message

o SCTPn Recognize and maintains boundariesn Each message is inserted into a DATA chunk or chunks if

fragmented

In SCTP, only DATA chunks consume TSNs;

DATA chunks are the only chunks that are acknowledged.

Note:Note:

Data Transfer (Cont.)o In Fig. 13.20n The third packet contains the SACK chunkn SCTP acknowledges the last in-order TSN

received, not the next expected

The acknowledgment defines the cumulative TSN, the TSN of the last DATA chunk received in order.

Figure 13.20 Simple data transfer

Multihoming Data Transfero SCTP allow both ends to define multiple IP

addresses for communicationo One of these address is primary address

n Defined using association establishmentn But is determined by the other end

o A source defines the primary address for a destinationn Used for data transfer

o Rest are alternative addressesn One of the alternative address is used if the primary is not

available

Multistream Deliveryo SCTP distinguish between data transfer and

data deliveryo Data transfer: movement of data chunks

between source and destinationn By TSN numbers

o Data delivery: deliver data chunks to the appropriate position in their belonging streamn Controlled by SI and SSN

Multistream Delivery (Cont.)o SCTP support two types of data delivery

n Ordered (default)o By SSN (stream sequence number) to define their order in a

stream

n Unorderedo Set U flag and ignore the SSN value

o Note: n TSN: used in a direction of an association n However, a connection may have many streams

o By SI and SSN

Fragmentationo SCTP fragment message to conform to the

maximum transmit unit (MTU) size along a particular routed pathn Avoid the performance degradation when IP

routers have to perform fragmentation

Fragmentation (Cont.)o If the total size of a message exceeds MTU, the

message needs to be fragmentedn However, the total size means the size of an IP datagramn How to estimate? (since we are in layer 4)

o Can be determined by adding the following componentsn Size of the messagen Data chunk headern If piggybacked with SACK, add SACK chunksn SCTP general headern IP header

Fragmentation (Cont.)o Fragmentation

n Break the message into smaller fragmentsn A DATA chunk header is added to each fragment

o Each with a different but sequent TSNn All DATA chunk header carries

o The same stream identifier (SI)o The same stream sequence number (SSN)o The same protocol identifier (defined by application)o The same U flag

n Assign the appropriate B and E flagso First fragment: 10o Middle fragment: 00o End fragment: 01

Fragmentation (Cont.)o Reassemblyn If B/E = 11, no fragmentedn Else

o Find all chunks with the same SI and SSN

o Use TSN to determine their order in a messagen The number of fragment can be determined by the TSN

number of the first and last fragments

Association Terminationo Like TCP, both ends can close the association

o However, SCTP does not allow a “half-closed” association

Figure 13.21 Association termination

Association Abortion

13.5 STATE TRANSITION DIAGRAM

To keep track of all the different events happening during assocTo keep track of all the different events happening during association iation establishment, association termination, and data transfer, the Sestablishment, association termination, and data transfer, the SCTP CTP software, like TCP, is implemented as a finite state machine.software, like TCP, is implemented as a finite state machine.

The topics discussed in this section include:The topics discussed in this section include:

Scenarios Scenarios Simultaneous Close Simultaneous Close

13.6 FLOW CONTROL

Flow control in SCTP is similar to that in TCP. In SCTP, we needFlow control in SCTP is similar to that in TCP. In SCTP, we need to to handle two units of data, the byte and the chunk.handle two units of data, the byte and the chunk.

The topics discussed in this section include:The topics discussed in this section include:

Receiver Site Receiver Site Sender Site Sender Site A Scenario A Scenario

Flow Controlo In SCTP, we need to handle two unit of datan The byte and the chunkn The rwnd and cwnd are expressed in bytesn The value of TSN and acknowledgement are

expressed in chunkso SCTP also uses byte-oriented window for

flow control

Receiver Siteo Hold three variables

n cumTSN: o Hold the last TSN received

n winsizeo Hold the available buffer size

n lastACKo Hold the last accumulative acknowledgment

Receiver Site (Cont.)o 1. When the site receives a data chunk

n Subtract the size of the chunk from winSizen TSN number of the chunk is stored in the cumTSN

variableo 2. When the process reads a chunk

n Add the size of removed chunk to winSizeo 3. When the receiver sends a SACK

n Check the value of lastAckn If less than cumTSN

o Send a ACK with cumulative TSN number equal to the cumTSNo The advertised window size is set to winSize

Sender Siteo Hold three variables

n curTSNo Refer to the next chunk to be sent

n rwndo Hold the last value advertised by the receiver

n inTransito Hold the number of bytes in transit, byte sent but not yet acknowledged

Have been sent

Ready to be sent

Sender Site (Cont.)o A chunk pointed by curTSN can be sent n If its size of less than or equal to (rwnd-inTransit)

o When a SACK is receivedn The chunks with a TSN less than or equal to the

cumulative TSN in SACK are removed from queue

n inTransit is reduced by the total size of discarded chunks

n rwnd is update with the advertised window value in SACK

A Scenarioo See the Fig. 13.29, at the beginningn rwnd at sender = 2000, winSize at receiver =

2000o Advertise during association establishment

n Assume each data chunk is 1000 bytes

Figure 13.29 Flow control scenario

13.7 ERROR CONTROL

SCTP uses a SACK chunk to report the state of the receiver buffeSCTP uses a SACK chunk to report the state of the receiver buffer to the r to the sender. Each implementation uses a different set of entities andsender. Each implementation uses a different set of entities and timers timers for the receiver and sender sites.for the receiver and sender sites.

The topics discussed in this section include:The topics discussed in this section include:

Receiver Site Receiver Site Sender Site Sender Site Sending Data Chunks Sending Data Chunks Generating SACK Chunks Generating SACK Chunks

Receiver Siteo In Fig. 13.30o The last ack. was for data chunk 20o Receiver stores all arriving chunks in a queue

n Leave space for any missing chunksn Discard duplicate message

o SACK includesn The TSN numbers for out of order chunks

o Relative to the cumulative TSN

n The TSN number for duplicate data chunks

Figure 13.30 Error control, receiver site

Sender Siteo In Fig. 13.31o There are two queues at the sender site

n A sending queue and a retransmission queueo Assume each data chunk is 100 bytes

n 1400 bytes (TSN=23~TSN=36) are transmittedn inTranmit = 1400

o When a packet is sent, one retranmission timer start for that packet (all data chunks in that packet)

o Chunks in a packet is moved to the retransmission queuen When the retransmission timer for a packet expiresn When four duplicate SACK arrives that declare a packet as missing

o i.e., fast retransmission as discussed in TCP

Figure 13.31 Error control, sender site

Sender Site (Cont.)o The chunks in the retransmission queue have

priorityn The next time the sender sends is chunk 21 from

retransmission queue

o Assume the SACK in Fig. 13.30 arrives at the sender in Fig. 13.31n Fig. 13.32 shows the new state

Figure 13.32 New state at the sender site after receiving a SACK chunk

Should be gray

Sender Site (Cont.)o All chunks having a TSN equal to or less that the

cumTSN in the SACK n Removed from the sending queue or retransmission queue

o Check 21 and 22 are removed from the retransmission queueo Check 23 are removed from the sending queue

o Remove all chunks from the sending queue that are declared in the gap blocksn Chunks 26 to 28 and chunks 31 to 34 are removed

o The list of duplicate chunks does not have any effecto The value of rwnd is changed to 1000

n As advertised in the SACK chunk

Sender Site (Cont.)o Assume the retransmission timer for packet that

carried chunks 24 and 25 has expiredn Move to retransmission queue n A new retransmission timer is set (by the exponential

backoff in TCP)o The value of inTransit is 400

n 4 chunks are now in transmitn Note, the chunks in the retransmission queue are not

countedo They are assumed lost, not in transmit

Retransmission o SCTP, like TCP, employs two strategiesn Retransmission timers

o The RTO (retransmission time-out) and RTT are calculated as in TCP

o Note, If host is multihomingn Separate RTT and RTO must be calculated and kept for each

path

n Receiving four SACK with the same missing chunkso Receive four consecutive duplicate SACK whose gap

ack information indicate some missing chunkso Invoke fast retransmission as TCP

Generating SACK Chunkso Rules for generating SCTP SACK chunks are similar

to the rules for acknowledgment in TCPo Rules

1. When an end sends a DATA chunk to the other endo Must include a SACK chunk advertising the receipt of

unacknowledged DATA chunks

2. When an end receives a packet containing data, but has no data to sendo Need to acknowledge the receipt of the packet within a specified

time (usually 500 ms)

Generating SACK Chunks (Cont.)o Rules (Cont.)

3. An end must send at least one SACK for every other packet it receiveso The rule overrides the second rule

4. When a packet arrives with out-of-order data chunkso Need to immediately send a SACK chunk

5. When an end receive a packet with duplicate DATA chunk and no new DATA chunko The duplicate data chunks must be reported immediately with a

SACK chunk

13.8 CONGESTION CONTROL

SCTP uses the same strategies for congestion control as TCP. SCTSCTP uses the same strategies for congestion control as TCP. SCTP uses P uses slow startslow start, , congestion avoidancecongestion avoidance, and , and congestion detectioncongestion detection phases. SCTP phases. SCTP also uses also uses fast retransmissionfast retransmission and and fast recovery.fast recovery.

The topics discussed in this section include:The topics discussed in this section include:

Congestion Control and Congestion Control and MultihomingMultihomingExplicit Congestion Notification Explicit Congestion Notification

Congestion Control and Multihomingo Like TCP

o But since SCTP is multihomingn Each IP address must be maintained with a

different value of rwnd

Explicit Congestion Notificationo Explicit Congestion Notification (ECN)n Enable a receiver to explicitly inform the sender

of any congestion experience in the network

n Indication of probable congestiono A receiver encounter many delayed or lost packets

n Beyond the scope of this book