89
Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

  • Upload
    lamkiet

  • View
    230

  • Download
    7

Embed Size (px)

Citation preview

Page 1: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Chapter 23

Process-to-Process Delivery:UDP, TCP, and SCTP

23.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Page 2: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

2323--1 1 PROCESSPROCESS--TOTO--PROCESS DELIVERYPROCESS DELIVERY

TheThe transporttransport layerlayer isis responsibleresponsible forfor processprocess--toto--processprocess deliverydelivery——thethe deliverydelivery ofof aa packet,packet, partpart ofof aamessage,message, fromfrom oneone processprocess toto anotheranother.. TwoTwo processesprocessescommunicatecommunicate inin aa client/serverclient/server relationship,relationship, asas wewe willwillseesee laterlater..

Topics discussed in this section:Topics discussed in this section:Client/Server ParadigmMultiplexing and Demultiplexing

Topics discussed in this section:Topics discussed in this section:

Multiplexing and DemultiplexingConnectionless Versus Connection-Oriented ServiceReliable Versus Unreliable

23.2Three Protocols

Page 3: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The transport layer is responsible for t d liprocess-to-process delivery.

23.3

Page 4: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.1 Types of data deliveries

23.4

Page 5: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.2 Port numbers

23.5

Page 6: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.3 IP addresses versus port numbers

23.6

Page 7: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.4 IANA ranges

23.7

Page 8: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.5 Socket address

23.8

Page 9: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.6 Multiplexing and demultiplexing

23.9

Page 10: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.7 Error control

23.10

Page 11: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.8 Position of UDP, TCP, and SCTP in TCP/IP suite

23.11

Page 12: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

2323--2 2 USER DATAGRAM PROTOCOL (UDP)USER DATAGRAM PROTOCOL (UDP)( )( )

TheThe UserUser DatagramDatagram ProtocolProtocol (UDP)(UDP) isis calledcalled aaconnectionless,connectionless, unreliableunreliable transporttransport protocolprotocol.. ItIt doesdoesnotnot addadd anythinganything toto thethe servicesservices ofof IPIP exceptexcept toto provideprovideprocessprocess--toto--processprocess communicationcommunication insteadinstead ofof hosthost--toto--hosthost communicationcommunication..Topics discussed in this section:Topics discussed in this section:Well-Known Ports for UDPUser Datagram

Topics discussed in this section:Topics discussed in this section:

User DatagramChecksumUDP Operation

23.12

Use of UDP

Page 13: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Table 23.1 Well-known ports used with UDP

23.13

Page 14: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Example 23.1

In UNIX, the well-known ports are stored in a file called/etc/services Each line in this file gives the name of the/etc/services. Each line in this file gives the name of theserver and the well-known port number. We can use thegrep utility to extract the line corresponding to the desiredgrep utility to extract the line corresponding to the desiredapplication. The following shows the port for FTP. Notethat FTP can use port 21 with either UDP or TCPthat FTP can use port 21 with either UDP or TCP.

23.14

Page 15: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Example 23.1 (continued)

SNMP uses two port numbers (161 and 162), each for aSNMP uses two port numbers (161 and 162), each for adifferent purpose, as we will see in Chapter 28.

23.15

Page 16: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.9 User datagram format

23.16

Page 17: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

UDP length IP l th IP h d ’ l th= IP length – IP header’s length

23.17

Page 18: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.10 Pseudoheader for checksum calculation

23.18

Page 19: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Example 23.2

Figure 23.11 shows the checksum calculation for a verysmall user datagram with only 7 bytes of data. Becausethe number of bytes of data is odd, padding is added forh k l l i h d h d ll hchecksum calculation. The pseudoheader as well as the

padding will be dropped when the user datagram isd li ddelivered to IP.

23.19

Page 20: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.11 Checksum calculation of a simple UDP user datagram

23.20

Page 21: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.12 Queues in UDP

23.21

Page 22: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

2323--3 3 TCPTCP

TCPTCP ii titi i t di t d t lt l itit ttTCPTCP isis aa connectionconnection--orientedoriented protocolprotocol;; itit createscreates aavirtualvirtual connectionconnection betweenbetween twotwo TCPsTCPs toto sendsend datadata.. InIn

dditidditi TCPTCP flfl dd t lt l h ih iaddition,addition, TCPTCP usesuses flowflow andand errorerror controlcontrol mechanismsmechanismsatat thethe transporttransport levellevel..

TCP S iTopics discussed in this section:Topics discussed in this section:TCP ServicesTCP FeaturesSegmentSegmentA TCP ConnectionFlow Control

23.22

Error Control

Page 23: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Table 23.2 Well-known ports used by TCP

23.23

Page 24: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.13 Stream delivery

23.24

Page 25: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.14 Sending and receiving buffers

23.25

Page 26: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.15 TCP segments

23.26

Page 27: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The bytes of data being transferred in h ti b d b TCPeach connection are numbered by TCP.

The numbering starts with a randomly generated number.

23.27

Page 28: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Example 23.3

The following shows the sequence number for eachsegment:

23.28

Page 29: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The value in the sequence number field of a segment defines theg

number of the first data byte contained in that segmentcontained in that segment.

23.29

Page 30: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The value of the acknowledgment field in a segment defines

the number of the next byte a party y p yexpects to receive.

The acknowledgment number isThe acknowledgment number is cumulative.

23.30

Page 31: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.16 TCP segment format

23.31

Page 32: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.17 Control field

23.32

Page 33: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Table 23.3 Description of flags in the control field

23.33

Page 34: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.18 Connection establishment using three-way handshaking

23.34

Page 35: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

A SYN segment cannot carry data, but it bconsumes one sequence number.

23.35

Page 36: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

A SYN + ACK segment cannot d t b t dcarry data, but does consume one

sequence number.

23.36

Page 37: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

An ACK segment, if carrying no data, bconsumes no sequence number.

23.37

Page 38: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.19 Data transfer

23.38

Page 39: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.20 Connection termination using three-way handshaking

23.39

Page 40: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The FIN segment consumes one b if it dsequence number if it does

not carry data.

23.40

Page 41: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The FIN + ACK segment consumes b if itone sequence number if it

does not carry data.

23.41

Page 42: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.21 Half-close

23.42

Page 43: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.22 Sliding window

23.43

Page 44: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

A sliding window is used to make

Note

A sliding window is used to make transmission more efficient as well asto control the flo of data so that theto control the flow of data so that the

destination does not becomeoverwhelmed with data.

TCP sliding windows are byte-oriented.g y

23.44

Page 45: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Example 23.4

What is the value of the receiver window (rwnd) for hostA if the receiver, host B, has a buffer size of 5000 bytesand 1000 bytes of received and unprocessed data?

SolutionThe value of rwnd = 5000 1000 = 4000 Host B canThe value of rwnd = 5000 − 1000 = 4000. Host B canreceive only 4000 bytes of data before overflowing itsbuffer Host B advertises this value in its next segment tobuffer. Host B advertises this value in its next segment toA.

23.45

Page 46: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Example 23.5

What is the size of the window for host A if the value ofrwnd is 3000 bytes and the value of cwnd is 3500 bytes?

SolutionSolutionThe size of the window is the smaller of rwnd and cwnd,which is 3000 bytes.which is 3000 bytes.

23.46

Page 47: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Example 23.6

Figure 23.23 shows an unrealistic example of a slidingwindow. The sender has sent bytes up to 202. We assumethat cwnd is 20 (in reality this value is thousands ofb ) h i h k l d bbytes). The receiver has sent an acknowledgment numberof 200 with an rwnd of 9 bytes (in reality this value ish d f b ) h i f h d i d i hthousands of bytes). The size of the sender window is the

minimum of rwnd and cwnd, or 9 bytes. Bytes 200 to 202b k l d d B 203 208 bare sent, but not acknowledged. Bytes 203 to 208 can be

sent without worrying about acknowledgment. Bytes 209d b band above cannot be sent.

23.47

Page 48: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.23 Example 23.6

23.48

Page 49: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

Some points about TCP sliding windows:

Note

Some points about TCP sliding windows:❏ The size of the window is the lesser of rwnd and

cwnd.❏ The source does not have to send a full window’s

worth of data.❏ The window can be opened or closed by the❏ The window can be opened or closed by the

receiver, but should not be shrunk.❏ The destination can send an acknowledgment at❏ The destination can send an acknowledgment at

any time as long as it does not result in a shrinkingwindow.

❏ The receiver can temporarily shut down thewindow; the sender, however, can always send asegment of 1 byte after the window is shut down

23.49

segment of 1 byte after the window is shut down.

Page 50: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

ACK segments do not consume b d tsequence numbers and are not

acknowledged.

23.50

Page 51: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

In modern implementations, a t i i if thretransmission occurs if the

retransmission timer expires or three duplicate ACK segments have arrived.

23.51

Page 52: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

No retransmission timer is set for an ACK tACK segment.

23.52

Page 53: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

Data may arrive out of order and be t il t d b th i i TCPtemporarily stored by the receiving TCP,but TCP guarantees that no out-of-order

segment is delivered to the process.

23.53

Page 54: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.24 Normal operation

23.54

Page 55: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.25 Lost segment

23.55

Page 56: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The receiver TCP delivers only ordered d t t thdata to the process.

23.56

Page 57: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.26 Fast retransmission

23.57

Page 58: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

2323--4 4 SCTPSCTP

StreamStream ControlControl TransmissionTransmission ProtocolProtocol (SCTP)(SCTP) isis aaStreamStream ControlControl TransmissionTransmission ProtocolProtocol (SCTP)(SCTP) isis aanewnew reliable,reliable, messagemessage--orientedoriented transporttransport layerlayerprotocolprotocol SCTPSCTP howeverhowever isis mostlymostly designeddesigned forforprotocolprotocol.. SCTP,SCTP, however,however, isis mostlymostly designeddesigned forforInternetInternet applicationsapplications thatthat havehave recentlyrecently beenbeenintroducedintroduced TheseThese newnew applicationsapplications needneed aa moremoreintroducedintroduced.. TheseThese newnew applicationsapplications needneed aa moremoresophisticatedsophisticated serviceservice thanthan TCPTCP cancan provideprovide..

SCTP Services and Features

Topics discussed in this section:Topics discussed in this section:

Packet FormatAn SCTP AssociationFl C t l d E C t l

23.58

Flow Control and Error Control

Page 59: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

SCTP is a message-oriented, reliable t l th t bi th b t f tprotocol that combines the best features

of UDP and TCP.

23.59

Page 60: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Table 23.4 Some SCTP applications

23.60

Page 61: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.27 Multiple-stream concept

23.61

Page 62: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

An association in SCTP can involve lti l tmultiple streams.

23.62

Page 63: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.28 Multihoming concept

23.63

Page 64: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

SCTP association allows multiple IP dd f h daddresses for each end.

23.64

Page 65: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

In SCTP, a data chunk is numbered i TSNusing a TSN.

23.65

Page 66: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

To distinguish between different t SCTP SIstreams, SCTP uses an SI.

23.66

Page 67: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

To distinguish between different data h k b l i t th tchunks belonging to the same stream,

SCTP uses SSNs.

23.67

Page 68: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

TCP has segments; SCTP has packets.

23.68

Page 69: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.29 Comparison between a TCP segment and an SCTP packet

23.69

Page 70: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

In SCTP, control information and data i f ti i d i tinformation are carried in separate

chunks.

23.70

Page 71: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.30 Packet, data chunks, and streams

23.71

Page 72: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

Data chunks are identified by three items: TSN, SI, and SSN., ,

TSN is a cumulative number identifying the association; SI defines the stream;the association; SI defines the stream;

SSN defines the chunk in a stream.

23.72

Page 73: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

In SCTP, acknowledgment numbers are d t k l d l d t h kused to acknowledge only data chunks;

control chunks are acknowledged by other control chunks if necessary.

23.73

Page 74: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.31 SCTP packet format

23.74

Page 75: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

In an SCTP packet, control chunks come b f d t h kbefore data chunks.

23.75

Page 76: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.32 General header

23.76

Page 77: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Table 23.5 ChunksTable 23.5 Chunks

23.77

Page 78: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

A connection in SCTP is called an i tiassociation.

23.78

Page 79: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

No other chunk is allowed in a packet i INIT INIT ACK h kcarrying an INIT or INIT ACK chunk.

A COOKIE ECHO or a COOKIE ACK chunk can carry data chunks.

23.79

Page 80: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.33 Four-way handshaking

23.80

Page 81: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

In SCTP, only DATA chunks TSNconsume TSNs;

DATA chunks are the only chunks that are acknowledged.

23.81

Page 82: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.34 Simple data transfer

23.82

Page 83: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Note

The acknowledgment in SCTP defines th l ti TSN th TSN f th l tthe cumulative TSN, the TSN of the last

data chunk received in order.

23.83

Page 84: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.35 Association termination

23.84

Page 85: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.36 Flow control, receiver site

23.85

Page 86: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.37 Flow control, sender site

23.86

Page 87: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.38 Flow control scenario

23.87

Page 88: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.39 Error control, receiver site

23.88

Page 89: Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTPplw/dccn/presentation/ch23.pdf · Example 23.1 In UNIX, the well-known ports are stored in a file called /etc/services. Each

Figure 23.40 Error control, sender site

23.89