23-1 PROCESS-TO-PROCESSDELIVERY The transport layer is responsible for process-to- process delivery—the delivery of a packet, part of a message, from one process to another. Two processes communicate in a client/server relationship, as we will see later. Topics discussed in this section: Client/Server Paradigm Multiplexing and Demultiplexing Connectionless Versus Connection-Oriented Service Reliable Versus Unreliable Three Protocols 23. 2
Figure 23.6 Multiplexing and demultiplexing 23. 3
Figure 23.8 Position of UDP, TCP, and SCTP in TCP/IP suite 23. 4
The transport layer is responsible for process-to-process delivery. N ote 23. 5
Transport Service Primitives (2) The nesting of TPDUs, packets, and frames.
Transport Service Primitives (3) A state diagram for a simple connection management scheme. Transitions labelled in italics are caused by packet arrivals. The solid lines show the client's state sequence. The dashed lines show the server's state sequence.
Elements of Transport Protocols Addressing Connection Establishment Connection Release Flow Control and Buffering Multiplexing Crash Recovery
Transport Protocol (a) Environment of the data link layer. (b) Environment of the transport layer. Both data link layer and transport layer do error control, flow control, sequencing. The differences are: 1. Storage capacity in subnet. Frames must arrive sequentially, TPDUs can arrive in any sequence. 2. Frames are delivered to hosts, TPDUs need to be delivered to users, so per user addressing and flow control within the hosts is necessary.
Connection Establishment (1) How a user process in host 1 establishes a connection with a time-of-day server in host 2.
Connection Establishment (2) Three protocol scenarios for establishing a connection using a three-way handshake. CR denotes CONNECTION REQUEST. (a) Normal operation, (b) Old CONNECTION REQUEST appearing out of nowhere. (c) Duplicate CONNECTION REQUEST and duplicate ACK.
Connection Release Abrupt disconnection with loss of data.
Connection Release (3) Four protocol scenarios for releasing a connection. (a) Normal case of a three-way handshake. (b) final ACK lost. 6-14, a, b
Connection Release (4) (c) Response lost. ( d) Response lost and subsequent DRs lost. 6-14, c,d
Multiplexing Upward multiplexing. Downward multiplexing. Used to increase the bandwidth, e.g., two ISDN connections of 64 kbps each yield 128 kbps bandwidth.
The Internet Transport Protocols: UDP Introduction to UDP Remote Procedure Call The Real-Time Transport Protocol
23-2 USERDATAGRAM PROTOCOL(UDP) The User Datagram Protocol (UDP) is called a connectionless, unreliable transport protocol. It does not add anything to the services of IP except to provide process-to-process communication instead of host-to- host communication. Topics discussed in this section: Well-Known Ports for UDP User Datagram Checksum UD P O p e r a tion Use of UDP 23. 18
Table 23.1 Well-known ports used with UDP 23. 19
Figure 23.9 User datagram format 23. 20
UDP length = IP length – IP header’s length N ote 23. 21
Figure 23.10 Pseudoheader for checksum calculation 23. 22
Figure 23.12 Queues in UDP 23. 23
Remote Procedure Call Steps in making a remote procedure call. The stubs are shaded.
The Real-Time Transport Protocol (a) The position of RTP in the protocol stack. (b) Packet nesting.
The Real-Time Transport Protocol (2) The RTP header. X indicated the presence of an extension header. CC says how many contributing sources are present (0 to 15). Syn. Source Id. tells which stream the packet belongs to. For feedback information is used an associated protocol called RTCP (Real Time Control Protocol)
23-3 TCP TCP is a connection-oriented protocol; it creates a virtual connection between two TCPs to send data. In addition, TCP uses flow and error control mechanisms at the transport level. Topics discussed in this section: T C P S e rvices T C P Feat u r es Segment A T C P C o n n ection Flow Control Error Control 23. 27
Table 23.2 Well-known ports used by TCP 23. 28
Figure 23.13 Stream delivery 23. 29
The bytes of data being transferred in each connection are numbered by TCP. The numbering starts with a randomly generated number. N ote 23. 30
The value in the sequence number field of a segment defines the number of the first data byte contained in that segment. N ote 23. 31
The value of the acknowledgment field in a segment defines the number of the next byte a party expects to receive. The acknowledgment number is cumulative. N ote 23. 32
Figure 23.16 TCP segment format 23. 33
Figure 23.17 Control field 23. 34
Table 23.3 Description of flags in the control field 23. 35
Figure 23.18 Connection establishment using three-way handshaking 23. 36
A SYN segment cannot carry data, but it consumes one sequence number. N ote 23. 37
A SYN + ACK segment cannot carry data, but does consume one sequence number. N ote 23. 38
An ACK segment, if carrying no data, consumes no sequence number. N ote 23. 39
Figure 23.19 Data transfer 23. 40
Figure 23.20 Connection termination using three-way handshaking 23. 41
The FIN segment consumes one sequence number if it does not carry data. N ote 23. 42
The FIN + ACK segment consumes one sequence number if it does not carry data. N ote 23. 43
Figure 23.21 Half-close 23. 44
A sliding window is used to make transmission more efficient as well as to control the flow of data so that the destination does not become overwhelmed with data. TCP sliding windows are byte-oriented. N ote 23. 45
Figure 23.25 Lost segment 23. 46
The receiver TCP delivers only ordered data to the process. N ote 23. 47