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
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
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
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
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
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.
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
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
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
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
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
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
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
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)
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
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
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.
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
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
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
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
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
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