Chapter 13 Introduction to the Transport Layer

Slides:



Advertisements
Similar presentations
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Advertisements

CCNA – Network Fundamentals
Intermediate TCP/IP TCP Operation.
Chapter 11 Data Link Control
Flow and Error Control. Flow Control Flow control coordinates the amount of data that can be sent before receiving acknowledgement It is one of the most.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Chapter 11 Data Link Control and Protocols.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 13 Introduction to the Transport.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
UNIT 07 Process – to – Process Delivery: UDP,TCP and SCTP
TCP© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science Department.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Process-to-Process Delivery:
Ch 23 1 Based on Data Communications and Networking, 4th Edition. by Behrouz A. Forouzan, McGraw-Hill Companies, Inc., 2007 Ameera Almasoud.
Ch 23 Ameera Almasoud Based on Data Communications and Networking, 4th Edition. by Behrouz A. Forouzan, McGraw-Hill Companies, Inc., 2007.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
Process-to-Process Delivery:
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
1 Transport Layer Computer Networks. 2 Where are we?
Hyung-Min Lee©Networking Lab., 2001 Chapter 11 User Datagram Protocol (UDP)
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Chapter 11 Data Link Control Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction.
11.1 Chapter 11 Data Link Control Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
1 Kyung Hee University Chapter 13 Introduction to the Transport Layer.
26-TCP Dr. John P. Abraham Professor UTPA. TCP  Transmission control protocol, another transport layer protocol.  Reliable delivery  Tcp must compensate.
University of the Western Cape Chapter 12: The Transport Layer.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transport Layer Moving Segments. Transport Layer Protocols Provide a logical communication link between processes running on different hosts as if directly.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 12 Transmission Control Protocol (TCP)
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
11.1 Chapter 11 Data Link Control Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer PART I: Peer-to-Peer Protocols ARQ Protocols and Reliable Data Transfer Flow Control.
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
NET 221D:COMPUTER NETWORKS FUNDAMENTALS Lecture : Transport Layer: Behrouz A. Forouzan” Data communications and Networking 1.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 Chapter 12 Transmission Control Protocol (TCP)
TCP/IP Protocol Suite 1 Chapter 11 Upon completion you will be able to: User Datagram Protocol Be able to explain process-to-process communication Know.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display Chapter 3 Transport Layer.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
DATA LINK CONTROL. DATA LINK LAYER RESPONSIBILTIES  FRAMING  ERROR CONTROL  FLOW CONTROL.
Ch 3. Transport Layer Myungchul Kim
NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS ( NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS (PRACTICAL PART) Tutorial 4 : Chapter 7 Data & computer.
Process-to-Process Delivery:
Data Link Layer.
Ch 3. Transport Layer Myungchul Kim
PROCESS-TO-PROCESS DELIVERY UDP, TCP, AND SCTP Lecture 6 : Transport layer.
Chapter 23 Introduction To Transport Layer Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 11 User Datagram Protocol
The Transport Layer Implementation Services Functions Protocols
Part III Datalink Layer 10.
Chapter 23 Introduction To Transport Layer
PART 5 Transport Layer Computer Networks.
6 Transport Layer Computer Networks Tutun Juhana
TCP Transport layer Er. Vikram Dhiman LPU.
Introduction to the Transport Layer
Chapter 23 Introduction To Transport Layer
Chapter 14 User Datagram Protocol (UDP)
Process-to-Process Delivery:
Transport Layer Our goals:
PART 5 Transport Layer.
Chapter 11 Data Link Control
Process-to-Process Delivery: UDP, TCP
Presentation transcript:

Chapter 13 Introduction to the Transport Layer

13.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

Process-to-Process Communication Process is an application-layer entity Responsible for delivery of the message to the appropriate process

Addressing : 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

Addressing : 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

Port Numbers

IP Addresses versus Port Numbers

ICANN 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

Example 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.

Socket Address The combination of an IP address and a port number

Encapsulation and Decapsulation Happen at the sender site Add the transport-layer header Decapsulation Happen at the receiver site The header is dropped

Mutiplexing and Demultiplexing Entity accepts items from more than one source Demultiplexing Entity deliver items to more than one source

Flow 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

Flow Control at the Transport Layer One of solutions for flow control is normally to use buffers

Error 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.

Error Control Sequence Number Acknowledgment 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

Combination 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

Sliding window in circular format

Sliding window in linear format

Congestion 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

Connectionless 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

Connectionless Service

Connection-Oriented Service ⑤ Connection-close request ⑤

13.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

Simple Protocol No flow nor error control based connectionless protocol

Example 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.

Stop-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

Stop-and-Wait Protocol

Stop-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

Example 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.

Flow Diagram for Example 13.4

Go-Back-N Protocol To improve the efficiency of transmission, we can send several packets before receiving acknowledgments.

Send 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.

Sliding the send window

Receive 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.

Send 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.

Example 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.

Flow Diagram for Example 13.7

Example 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.

Flow Diagram for Example 13.8

Selective-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

Outline of Selective-Repeat

Send Window for Selective-Repeat protocol

Receive Window for Selective-Repeat protocol

Example 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.

Example 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.

Flow Diagram of 13.10

Selective-Repeat Window Size

Bidirectional 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

Design of Piggybacking in Go-Back-N

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.

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.