• No results found

23--1 1 PROCESS PROCESS--TO TO--PROCESS DELIVERY PROCESS DELIVERY

N/A
N/A
Protected

Academic year: 2022

Share "23--1 1 PROCESS PROCESS--TO TO--PROCESS DELIVERY PROCESS DELIVERY"

Copied!
89
0
0

Loading.... (view fulltext now)

Full text

(1)

Chapter 23

Process-to-Process Delivery:

UDP, TCP, and SCTP

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

(2)

23

23--1 1 PROCESS PROCESS--TO TO--PROCESS DELIVERY PROCESS DELIVERY

The

The transport transport layer layer is is responsible responsible for for process process--to to-- process

process delivery delivery— —the the delivery delivery of of aa packet, packet, part part of of aa message,

message, from from one one process process to to another another.. Two Two processes processes communicate

communicate in in aa client/server client/server relationship, relationship, as as we we will will see

see later later..

Topics discussed in this section:

Topics discussed in this section:

Client/Server Paradigm

Multiplexing and Demultiplexing

Topics discussed in this section:

Topics discussed in this section:

Multiplexing and Demultiplexing

Connectionless Versus Connection-Oriented Service Reliable Versus Unreliable

Three Protocols

(3)

Note

The transport layer is responsible for

t d li

process-to-process delivery.

23.3

(4)

Figure 23.1 Types of data deliveries

(5)

Figure 23.2 Port numbers

23.5

(6)

Figure 23.3 IP addresses versus port numbers

(7)

Figure 23.4 IANA ranges

23.7

(8)

Figure 23.5 Socket address

(9)

Figure 23.6 Multiplexing and demultiplexing

23.9

(10)

Figure 23.7 Error control

(11)

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

23.11

(12)

23

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

The

The User User Datagram Datagram Protocol Protocol (UDP) (UDP) is is called called aa connectionless,

connectionless, unreliable unreliable transport transport protocol protocol.. It It does does not

not add add anything anything to to the the services services of of IP IP except except to to provide provide process

process--to to--process process communication communication instead instead of of host host--to to-- host

host communication communication..

Topics discussed in this section:

Topics discussed in this section:

Well-Known Ports for UDP User Datagram

Topics discussed in this section:

Topics discussed in this section:

User Datagram Checksum

UDP Operation Use of UDP

(13)

Table 23.1 Well-known ports used with UDP

23.13

(14)

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 the server and the well-known port number. We can use the grep utility to extract the line corresponding to the desired grep utility to extract the line corresponding to the desired application. The following shows the port for FTP. Note that FTP can use port 21 with either UDP or TCP

that FTP can use port 21 with either UDP or TCP.

(15)

Example 23.1 (continued)

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

23.15

(16)

Figure 23.9 User datagram format

(17)

Note

UDP length

IP l th IP h d ’ l th

= IP length – IP header’s length

23.17

(18)

Figure 23.10 Pseudoheader for checksum calculation

(19)

Example 23.2

Figure 23.11 shows the checksum calculation for a very small user datagram with only 7 bytes of data. Because the number of bytes of data is odd, padding is added for

h k l l i h d h d ll h

checksum calculation. The pseudoheader as well as the padding will be dropped when the user datagram is d li d

delivered to IP.

23.19

(20)

Figure 23.11 Checksum calculation of a simple UDP user datagram

(21)

Figure 23.12 Queues in UDP

23.21

(22)

23

23--3 3 TCP TCP

TCP

TCP ii ti ti i t d i t d t t l l it it tt TCP

TCP is is aa connection connection--oriented oriented protocol protocol;; it it creates creates aa virtual

virtual connection connection between between two two TCPs TCPs to to send send data data.. In In dditi

dditi TCP TCP fl fl dd t l t l h i h i addition,

addition, TCP TCP uses uses flow flow and and error error control control mechanisms mechanisms at

at the the transport transport level level..

TCP S i

Topics discussed in this section:

Topics discussed in this section:

TCP Services TCP Features Segment

Segment

A TCP Connection Flow Control

Error Control

(23)

Table 23.2 Well-known ports used by TCP

23.23

(24)

Figure 23.13 Stream delivery

(25)

Figure 23.14 Sending and receiving buffers

23.25

(26)

Figure 23.15 TCP segments

(27)

Note

The bytes of data being transferred in

h ti b d b TCP

each connection are numbered by TCP.

The numbering starts with a randomly generated number.

23.27

(28)

Example 23.3

The following shows the sequence number for each

segment:

(29)

Note

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

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

23.29

(30)

Note

The value of the acknowledgment field in a segment defines

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

The acknowledgment number is The acknowledgment number is

cumulative.

(31)

Figure 23.16 TCP segment format

23.31

(32)

Figure 23.17 Control field

(33)

Table 23.3 Description of flags in the control field

23.33

(34)

Figure 23.18 Connection establishment using three-way handshaking

(35)

Note

A SYN segment cannot carry data, but it b

consumes one sequence number.

23.35

(36)

Note

A SYN + ACK segment cannot d t b t d

carry data, but does consume one

sequence number.

(37)

Note

An ACK segment, if carrying no data, b

consumes no sequence number.

23.37

(38)

Figure 23.19 Data transfer

(39)

Figure 23.20 Connection termination using three-way handshaking

23.39

(40)

Note

The FIN segment consumes one b if it d

sequence number if it does

not carry data.

(41)

Note

The FIN + ACK segment consumes b if it

one sequence number if it does not carry data.

23.41

(42)

Figure 23.21 Half-close

(43)

Figure 23.22 Sliding window

23.43

(44)

Note

A sliding window is used to make

Note

A sliding window is used to make transmission more efficient as well as

to control the flo of data so that the to control the flow of data so that the

destination does not become overwhelmed with data.

TCP sliding windows are byte-oriented. g y

(45)

Example 23.4

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

Solution

The value of rwnd = 5000 1000 = 4000 Host B can The value of rwnd = 5000 − 1000 = 4000. Host B can receive only 4000 bytes of data before overflowing its buffer Host B advertises this value in its next segment to buffer. Host B advertises this value in its next segment to A.

23.45

(46)

Example 23.5

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

Solution Solution

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

which is 3000 bytes.

(47)

Example 23.6

Figure 23.23 shows an unrealistic example of a sliding window. The sender has sent bytes up to 202. We assume that cwnd is 20 (in reality this value is thousands of

b ) h i h k l d b

bytes). The receiver has sent an acknowledgment number of 200 with an rwnd of 9 bytes (in reality this value is

h d f b ) h i f h d i d i h

thousands of bytes). The size of the sender window is the minimum of rwnd and cwnd, or 9 bytes. Bytes 200 to 202

b k l d d B 203 208 b

are sent, but not acknowledged. Bytes 203 to 208 can be sent without worrying about acknowledgment. Bytes 209

d b b

and above cannot be sent.

23.47

(48)

Figure 23.23 Example 23.6

(49)

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 shrinking window.

The receiver can temporarily shut down the

window; the sender, however, can always send a segment of 1 byte after the window is shut down

23.49

segment of 1 byte after the window is shut down.

(50)

Note

ACK segments do not consume

b d t

sequence numbers and are not

acknowledged.

(51)

Note

In modern implementations, a

t i i if th

retransmission occurs if the

retransmission timer expires or three duplicate ACK segments have arrived.

23.51

(52)

Note

No retransmission timer is set for an

ACK t

ACK segment.

(53)

Note

Data may arrive out of order and be

t il t d b th i i TCP

temporarily stored by the receiving TCP, but TCP guarantees that no out-of-order

segment is delivered to the process.

23.53

(54)

Figure 23.24 Normal operation

(55)

Figure 23.25 Lost segment

23.55

(56)

Note

The receiver TCP delivers only ordered d t t th

data to the process.

(57)

Figure 23.26 Fast retransmission

23.57

(58)

23

23--4 4 SCTP SCTP

Stream

Stream Control Control Transmission Transmission Protocol Protocol (SCTP) (SCTP) is is aa Stream

Stream Control Control Transmission Transmission Protocol Protocol (SCTP) (SCTP) is is aa new

new reliable, reliable, message message--oriented oriented transport transport layer layer protocol

protocol SCTP SCTP however however is is mostly mostly designed designed for for protocol

protocol.. SCTP, SCTP, however, however, is is mostly mostly designed designed for for Internet

Internet applications applications that that have have recently recently been been introduced

introduced These These new new applications applications need need aa more more introduced

introduced.. These These new new applications applications need need aa more more sophisticated

sophisticated service service than than TCP TCP can can provide provide..

SCTP Services and Features

Topics discussed in this section:

Topics discussed in this section:

Packet Format

An SCTP Association

Fl C t l d E C t l

Flow Control and Error Control

(59)

Note

SCTP is a message-oriented, reliable t l th t bi th b t f t

protocol that combines the best features of UDP and TCP.

23.59

(60)

Table 23.4 Some SCTP applications

(61)

Figure 23.27 Multiple-stream concept

23.61

(62)

Note

An association in SCTP can involve lti l t

multiple streams.

(63)

Figure 23.28 Multihoming concept

23.63

(64)

Note

SCTP association allows multiple IP

dd f h d

addresses for each end.

(65)

Note

In SCTP, a data chunk is numbered

i TSN

using a TSN.

23.65

(66)

Note

To distinguish between different

t SCTP SI

streams, SCTP uses an SI.

(67)

Note

To distinguish between different data

h k b l i t th t

chunks belonging to the same stream, SCTP uses SSNs.

23.67

(68)

Note

TCP has segments; SCTP has packets.

(69)

Figure 23.29 Comparison between a TCP segment and an SCTP packet

23.69

(70)

Note

In SCTP, control information and data

i f ti i d i t

information are carried in separate

chunks.

(71)

Figure 23.30 Packet, data chunks, and streams

23.71

(72)

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.

(73)

Note

In SCTP, acknowledgment numbers are

d t k l d l d t h k

used to acknowledge only data chunks;

control chunks are acknowledged by other control chunks if necessary.

23.73

(74)

Figure 23.31 SCTP packet format

(75)

Note

In an SCTP packet, control chunks come

b f d t h k

before data chunks.

23.75

(76)

Figure 23.32 General header

(77)

Table 23.5 Chunks

Table 23.5 Chunks

23.77

(78)

Note

A connection in SCTP is called an i ti

association.

(79)

Note

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

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

23.79

(80)

Figure 23.33 Four-way handshaking

(81)

Note

In SCTP, only DATA chunks TSN

consume TSNs;

DATA chunks are the only chunks that are acknowledged.

23.81

(82)

Figure 23.34 Simple data transfer

(83)

Note

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

data chunk received in order.

23.83

(84)

Figure 23.35 Association termination

(85)

Figure 23.36 Flow control, receiver site

23.85

(86)

Figure 23.37 Flow control, sender site

(87)

Figure 23.38 Flow control scenario

23.87

(88)

Figure 23.39 Error control, receiver site

(89)

Figure 23.40 Error control, sender site

23.89

References

Related documents

1 from 14 pièces pour flûte et piano Selected Flute Exam Pieces 2008–13, 2 Pam Wedgwood Hot Chilli: from Really Easy Jazzin’ About for Flute Grade 1 (ABRSM).. 3 John Widger Fun

In this paper we review the technological characteristics of ethanol as a fuel, the present 'status' of the ethanol Pro- gram in Brazil, the characteristics of ethanol as a renewa-

Some of the major aspects are the selection of an appropriate haptic device, an effi- cient coordinate mapping between workspaces, the composition of a convenient haptic

The level of anti- Mycoplasma pneumoniae IgM was independent to both sex and age variables in patients group that the titer for IgM antibody was positive in none of the patients

For this, OpenFPM provides an encapsulated serialization/de-serialization sub-system that is used by each processor locally in order to serialize the local pieces of a distributed

Based on the results, the researcher found that Critical Transformative Leadership Theory, Emergent Change, and Diffusion of Innovation applied to the study and can help to

Cincturing in comparison with PCPA in this trial tends to increase the fresh and dried fruit yields of Zante currant, suggesting that the increase in currant production in the

(2012) ‘Intelligent transport systems in Latin American sea port logistics’, Facilitation of Transport and Trade in Latin America and the Caribbean .( Issue No. Federal