55
1 Kyung Hee University Chapter 13 Chapter 13 Introduction Introduction to the to the Transport Transport Layer Layer

1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

Embed Size (px)

Citation preview

Page 1: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

11Kyung Hee University

Chapter 13 Chapter 13 Introduction to Introduction to the Transport the Transport

LayerLayer

Page 2: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 3: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 4: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 5: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 6: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

66Kyung Hee University

Port NumbersPort Numbers

Page 7: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

77Kyung Hee University

IP Addresses versus Port NumbersIP Addresses versus Port Numbers

Page 8: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 9: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 10: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

1010Kyung Hee University

Socket AddressSocket Address

The combination of an IP address and a port number

Page 11: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 12: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

1212Kyung Hee University

Mutiplexing and DemultiplexingMutiplexing and Demultiplexing

Multiplexing

Entity accepts items frommore than one source

Demultiplexing

Entity deliver items to morethan one source

Page 13: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 14: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 15: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 16: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 17: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 18: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 19: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

1919Kyung Hee University

Sliding window in circular formatSliding window in circular format

Page 20: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

2020Kyung Hee University

Sliding window in linear formatSliding window in linear format

Page 21: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 22: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 23: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

2323Kyung Hee University

Connectionless ServiceConnectionless Service

Page 24: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

2424Kyung Hee University

Connection-Oriented ServiceConnection-Oriented Service

Connection-closerequest

Page 25: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 26: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

2626Kyung Hee University

Simple ProtocolSimple Protocol

No flow nor error control based connectionless

protocol

Page 27: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 28: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 29: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

2929Kyung Hee University

Stop-and-Wait ProtocolStop-and-Wait Protocol

Page 30: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 31: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 32: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

3232Kyung Hee University

Flow Diagram for Example 13.4Flow Diagram for Example 13.4

Page 33: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 34: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 35: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

3535Kyung Hee University

Go-Back-N ProtocolGo-Back-N Protocol

To improve the efficiency of transmission, we can send

several packets before receiving acknowledgments.

Page 36: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 37: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

3737Kyung Hee University

Sliding the send windowSliding the send window

Page 38: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 39: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 40: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 41: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

4141Kyung Hee University

Flow Diagram for Example 13.7Flow Diagram for Example 13.7

Page 42: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 43: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

4343Kyung Hee University

Flow Diagram for Example 13.8Flow Diagram for Example 13.8

Page 44: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 45: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

4545Kyung Hee University

Outline of Selective-RepeatOutline of Selective-Repeat

Page 46: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

4646Kyung Hee University

Send Window for Selective-Repeat protocolSend Window for Selective-Repeat protocol

Page 47: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

4747Kyung Hee University

Receive Window for Selective-Repeat protocolReceive Window for Selective-Repeat protocol

Page 48: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 49: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 50: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

5050Kyung Hee University

Flow Diagram of 13.10Flow Diagram of 13.10

Page 51: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

5151Kyung Hee University

Selective-Repeat Window SizeSelective-Repeat Window Size

Page 52: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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

Page 53: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

5353Kyung Hee University

Design of Piggybacking in Go-Back-NDesign of Piggybacking in Go-Back-N

Page 54: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.

Page 55: 1 Kyung Hee University Chapter 13 Introduction to the Transport Layer

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.