Upload
eugenia-beverly-lester
View
217
Download
3
Embed Size (px)
Citation preview
11Kyung Hee University
Chapter 13 Chapter 13 Introduction to Introduction to the Transport the Transport
LayerLayer
22Kyung Hee University
13.1 Transport-Layer Services13.1 Transport-Layer Services
Process-to-Process Communication
Addressing : Port Numbers
Encapsulation and Decapsulation
Multiplexing and Demultiplexing
Flow Control
Error Control
Congestion Control
Connectionless and Connection-Oriented Services
33Kyung Hee University
Process-to-Process CommunicationProcess-to-Process Communication
Process is an application-layer entity
Responsible for delivery of the message to the
appropriate process
44Kyung Hee University
Addressing : Port NumberAddressing : Port Number
Client-server paradigm : the most common way to achieve
process-to-process communication
Process on local host needs service from a process on the
remote host
Both processes have the same name : Daytime process
To support several program at the same time, we must
define
Local host
Local process
Remote host
Remote process
55Kyung Hee University
Addressing : Port NumberAddressing : Port Number
To define the hosts, we use IP addresses
To define the processes, we need second identifiers
Port number
In the TCP/IP protocol suite, port numbers are integers between 0 and 65,535
Ephemeral port number
Recommended to be greater than 1,023
Well-known port number
Universal port numbers for servers
66Kyung Hee University
Port NumbersPort Numbers
77Kyung Hee University
IP Addresses versus Port NumbersIP Addresses versus Port Numbers
88Kyung Hee University
ICANN RangesICANN Ranges
Well-known ports : 0 ~ 1,023
Assigned and controlled by ICANN
Registered ports : 1,024 ~ 49,151
Not assigned and controlled by ICANN
Can be registered with ICANN to prevent duplication
Dynamic ports : 49,152 ~ 65,535
Can be used as temporary or private port number
99Kyung Hee University
Example 13.1Example 13.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
server and the well-known port number. We can use the
grep utility to extract the line corresponding to the
desired application. The following shows the port for
TFTP. Note that TFTP can use port 69 on either UDP or
TCP. SNMP uses two port numbers (161 and 162), each
for a different purpose.
1010Kyung Hee University
Socket AddressSocket Address
The combination of an IP address and a port number
1111Kyung Hee University
Encapsulation and DecapsulationEncapsulation and Decapsulation
Encapsulation
Happen at the sender site
Add the transport-layer header
Decapsulation
Happen at the receiver site
The header is dropped
1212Kyung Hee University
Mutiplexing and DemultiplexingMutiplexing and Demultiplexing
Multiplexing
Entity accepts items frommore than one source
Demultiplexing
Entity deliver items to morethan one source
1313Kyung Hee University
Flow ControlFlow Control
Balance between production and consumption rates
Delivery of items from a producer to a consumer
Pushing : sender delivers items whenever they produced
Pulling : producer delivers the items after the consumer has requested
1414Kyung Hee University
Flow Control at the Transport LayerFlow Control at the Transport Layer
One of solutions for flow control is normally to use
buffers
1515Kyung Hee University
Example 13.2Example 13.2
The above discussion requires that the consumers
communicate with the producer in two occasions: when the
buffer is full and when there are vacancies. If the two parties
use a buffer of only one slot, the communication can be
easier. Assume that each transport layer uses one single
memory location to hold a packet. When this single slot in
the sending transport layer is empty, the sending transport
layer sends a note the application layer to send its next
chunk; when this single slot in the receiving transport layer
is empty, it sends an acknowledgment to the sending
transport layer to send its next packet. As we will see later,
this type of flow control, using a single-slot buffer at the
sender and the receiver, is inefficient.
1616Kyung Hee University
Error ControlError Control
Detect and discard corrupted packets.
Keep track of lost and discarded packets and resend
them.
Recognize duplicate packets and discard them.
Buffer out-of-order packets until the missing packets
arrive.
1717Kyung Hee University
Error ControlError Control
Sequence Number
Which packet is to be resent
Which packet is a duplicate
Which packet has arrived out of order
This can be done if the packets are numbered
Acknowledgment
The receiver side can send an acknowledgement for each or a collection of packets that have arrived safe and sound
1818Kyung Hee University
Combination of Flow and Error ControlCombination of Flow and Error Control
Flow control requires the use of two buffers, one at
sender site and other at the receiver site.
Error control requires the use of sequence and
acknowledgment number by both sides.
Sliding window
1919Kyung Hee University
Sliding window in circular formatSliding window in circular format
2020Kyung Hee University
Sliding window in linear formatSliding window in linear format
2121Kyung Hee University
Congestion ControlCongestion Control
Occur if the load on the network is greater than the
capacity of the network
Open-loop congestion control :prevent congestion
before it happens
Retransmission policy : using retransmission timer
Window policy : selective repeat and go-back-N window
Acknowledgment policy : using timer, a ACK for N packets
Closed-loop congestion control
alleviating congestion after it happens
Flexible window size
2222Kyung Hee University
Connectionless and Connection-Oriented ServiceConnectionless and Connection-Oriented Service
Connectionless service
Divide messages into chunks of data
No dependency between the packets
The packets may arrive out of order
Connection-oriented service
Establish a connection between a server and a client.
After data exchange, the connection needs to be teared down
2323Kyung Hee University
Connectionless ServiceConnectionless Service
2424Kyung Hee University
Connection-Oriented ServiceConnection-Oriented Service
Connection-closerequest
⑤
⑤
2525Kyung Hee University
13.2 Transport-Layer Protocols13.2 Transport-Layer Protocols
Simple connectionless protocol
No flow control and error control
Connection-oriented protocol
Stop-and-Wait protocol
Provide flow and error control
Go-Back-N protocol
Efficient version of Stop-and-Wait protocol
Selective-Repeat Protocol
Suited to handle packet loss
Piggybacking
2626Kyung Hee University
Simple ProtocolSimple Protocol
No flow nor error control based connectionless
protocol
2727Kyung Hee University
Example 13.3Example 13.3
Figure 13.18 shows an example of communication
using the protocol. It is very simple. The sender sends
packets one after another without even thinking about
the receiver.
2828Kyung Hee University
Stop-and-Wait ProtocolStop-and-Wait Protocol
Use both flow and error control
Both the sender and the receiver use a sliding window of size 1.
The sender sends one packet and waits for an ACK before sending the next one.
Add a checksum to detect corrupted packets
When sender sends a packet, it starts a timer
If an ACK arrives, timer is stopped
Either the packet was lost or corrupted, the sender resends the previous packet
2929Kyung Hee University
Stop-and-Wait ProtocolStop-and-Wait Protocol
3030Kyung Hee University
Stop-and-Wait ProtocolStop-and-Wait Protocol
Sequence Number
To prevent duplicate packets
A field is added to the packet header to hold the sequence number
Use x as a sequence number, x+1 as a acknowledgment number
Acknowledgement number
Sequence number of the next packet expected by the receiver
3131Kyung Hee University
Example 13.4Example 13.4
Following figure shows an example of Sop-and Wait
protocol. Packet 0 is sent and acknowledged. Packet 1 is
lost and resent after the time-out. The resent packet 1 is
acknowledged and the timer stops. Packet 0 is sent and
acknowledged, but the acknowledgment is lost. The
sender has no idea if the packet or the acknowledgment
is lost, so after the time-out, it resends packet 0, which is
acknowledged.
3232Kyung Hee University
Flow Diagram for Example 13.4Flow Diagram for Example 13.4
3333Kyung Hee University
Example 13.5Example 13.5
Assume that, in a Stop-and-Wait system, the bandwidth of the line is 1 Mbps, and 1 bit takes 20 milliseconds to make a round trip. What is the bandwidth-delay product? If the system data packets are 1,000 bit in length, what is the utilization percentage of the link?
Solution
The bandwidth-delay product is (1 x 106) x (20 x 10-3) = 20,000 bits. The system can send 20,000 bits during the time it takes for the data to go from the sender to the receiver and the acknowledgment to come back. However, the system sends only 1,000 bits. We can say that the link utilization is only 1,000/20,000, or 5 percent. For this reason, for a link with a high bandwidth or long delay, the use of Stop-and Wait wastes the capacity of the link.
3434Kyung Hee University
Example 13.6Example 13.6
What is the utilization percentage of the link in Example
13.5 if we have a protocol that can send up to 15 packets
before stopping and worrying about the
acknowledgement
Solution
The bandwidth-delay product is still 20,000 bits. The
system can send up to 15 packets or 15,000 bits during a
round trip. This means the utilization is 15,000/20,000, or
75 percent. Of course, if there are damaged packets, the
utilization percentage is much less because packets have
to be resent.
3535Kyung Hee University
Go-Back-N ProtocolGo-Back-N Protocol
To improve the efficiency of transmission, we can send
several packets before receiving acknowledgments.
3636Kyung Hee University
Send Window for Go-Back-NSend Window for Go-Back-N
The send window is an abstract concept defining an
imaginary box of maximum size = 2m-1 with three
variable : sf, sn, and ssize.
The send window can slide one or more slot when an
error-free ACK with ackNo between Sf and Sn arrives.
3737Kyung Hee University
Sliding the send windowSliding the send window
3838Kyung Hee University
Receive Window for Go-Back-NReceive Window for Go-Back-N
The receive window is an abstract concept defining an
imaginary box of size 1 with one single variable Rn.
The window slides when a correct packet has arrived:
sliding occurs one slot at a time.
3939Kyung Hee University
Send Window Size for Go-Back-NSend Window Size for Go-Back-N
In the Go-Back-N protocol, the size of the send window
must be less than 2m; the size of the receive window is
always 1.
4040Kyung Hee University
Example 13.7Example 13.7
Following figure shows an example of Go-Back-N. This is
an example of a case where the forward channel is
reliable, but the reverse is not. No data packets are lost,
but some ACKs are delayed and one is lost. The example
also shows how cumulative acknowledgements can help
if acknowledgements are delayed of lost.
4141Kyung Hee University
Flow Diagram for Example 13.7Flow Diagram for Example 13.7
4242Kyung Hee University
Example 13.8Example 13.8
Following figure shows what happen when a packet is
lost. Packets 0, 1, 2, and 3 are sent. However, packet 1 is
lost. The receiver receives packets 2 and 3, but they are
discarded because they are received out of order. When
the receiver receives packets 2 and 3, it send ACK 1 to
show that it expects to receive packet 1. However, these
ACKs are nor useful for the sender because the ackNo is
equal Sf, not greater that Sf. So the sender discards
them. When the time-out occur, the sender resends
packets 1, 2, and 3, which are acknowledged.
4343Kyung Hee University
Flow Diagram for Example 13.8Flow Diagram for Example 13.8
4444Kyung Hee University
Selective-Repeat ProtocolSelective-Repeat Protocol
The Go-Back-N protocol simplifies the process of
receiver
No need to buffer out-of-order packets
Inefficient when the underlying network protocol loses
a lot of packets
SR(Selective-Repeat) protocol devised above.
Resend only selective packets
4545Kyung Hee University
Outline of Selective-RepeatOutline of Selective-Repeat
4646Kyung Hee University
Send Window for Selective-Repeat protocolSend Window for Selective-Repeat protocol
4747Kyung Hee University
Receive Window for Selective-Repeat protocolReceive Window for Selective-Repeat protocol
4848Kyung Hee University
Example 13.9Example 13.9
Assume a sender sends 6 packets: packets 0, 1, 2, 3, 4,
and 5. The sender receives an ACK with ackNo=3. What is
the interpretation if the system is using GBN or SR ?
Solution
If the system is using GBN, it means that packet 0, 1, and
2 have been received uncorrupted and the receiver is
expecting packet 3. in using SR, it means that packet 3
has been received uncorrupted; the ACK does not say
anything about other pakcets.
4949Kyung Hee University
Example 13.10Example 13.10
This example is similar to Example 3.8 in which packet 1
is lost. We show how Selective-Repeat behave in this
case. Figure 13.34 shows the situation.
At the sender, packet 0 is transmitted and
acknowledged. Packet 1 is lost. Packet 2 and 3 arrive out
of order and are acknowledged. When the timer times
out, packet 1 is resent and is acknowledged. The send
window then slides.
5050Kyung Hee University
Flow Diagram of 13.10Flow Diagram of 13.10
5151Kyung Hee University
Selective-Repeat Window SizeSelective-Repeat Window Size
5252Kyung Hee University
Bidirectional Protocols : PiggybackingBidirectional Protocols : Piggybacking
Previous protocols are unidirectional
Data packets flow in only one direction and acknowledgement travel in the other direction
In real life, data flow and acknowledgement need to
flow in both direction.
Piggybacking is used to improved the efficiency of the
bidirectional protocols
When a packet is carrying data from A to B, it can also carry acknowledgement feedback about arrived packets from B
5353Kyung Hee University
Design of Piggybacking in Go-Back-NDesign of Piggybacking in Go-Back-N
5454Kyung Hee University
Summary(1)Summary(1)
The main duty of a transport-layer protocol is to provide process-to-process communication. To define the processes, we need port number. The client program defines itself with an ephemeral port number. The server defines itself with a well-known port number.
To send a message from one process to another, the transport layer protocol encapsulates and decapsulates messages. Encapsulation happens at the sender site. Decapsulation happens at the receiver site.
The transport layer at the source perform multiplexing, collecting messages from server processes for transmission; the transport layer at the destination performs demultiplexing, delivering messages to different processes.
Flow control balances the exchange of data items between a producer and a consumer. At the transport layer, we use buffers to hold packets when the consumer is not ready to accept them. Reliability at the transport layer can be achieved by adding error control, which includes detection of corrupted packets, reordering packets that arrived out of order. To manage flow and error control, we use sequence numbers to number packets and use acknowledgement numbers to refer to the numbered packets.
5555Kyung Hee University
Summary(2)Summary(2)
A transport layer can provide two types of congestion control: open-loop and closed-loop. In an open-loop congestion control, the protocol tries to avoid the congestion; in closed-loop congestion control, the protocol tries to detect and remove the congestion after it occurred.
A transport-layer protocol can provide two types of services: connectionless and connection-oriented. In a connectionless service, the sender sends packets to the receiver without any connection establishment. In a connection-oriented service, the client and the server first need to establish a connection between themselves. The data exchange can only happen after the connection establishment. After data exchange, the connection needs to be torn down.
We have discussed several common transport-layer protocols in this chapter. The simple connectionless protocol provides neither flow control nor error control. The connection-oriented Stop-and-Wait protocol provides both flow and error control, but is inefficient. The Go-Back-N protocol is more efficient version of the Stop-and-Wait protocol that takes advantage of pipelining. The Selective-Repeat protocol is a modification of the Go-Back-N protocol that is better suited to handle packet loss. All of these protocol can be implemented bidirectionally using piggybacking.