introduction to transport layer - github...
TRANSCRIPT
![Page 1: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/1.jpg)
CS321: Computer Networks
Dr. Manas KhatuaAssistant Professor
Dept. of CSEIIT Jodhpur
E-mail: [email protected]
Introduction to Transport Layer
![Page 2: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/2.jpg)
Introduction
18-02-2018 2Dr. Manas Khatua
![Page 3: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/3.jpg)
Cont…• In TCP/IP suite, it provides services to the application layer and receives
services from the network layer.
• General Services– process-to-process connection– addressing– multiplexing and de-multiplexing– error, flow, and congestion control
• Transport-Layer Protocol strategies– Simple Protocol– Stop-and-Wait– Go-Back-N– Selective-Repeat
• Transport-Layer Protocols for the Internet– Connection less protocol: UDP– Connection oriented protocol : TCP
18-02-2018 3Dr. Manas Khatua
![Page 4: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/4.jpg)
Network v/s Transport Layer
• Transport layer protocols are implemented in the end systems• Network layer protocols are implemented in network routers
• IP provides communication between hosts• TCP or UDP provide communication between processes
• Transport layer packets: segments• Network layer packet: datagram
• IP service model: best-effort delivery but unreliable service• TCP service model: reliable data transfer
18-02-2018 4Dr. Manas Khatua
![Page 5: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/5.jpg)
Process-to-Process Communication
18-02-2018 5Dr. Manas Khatua
• One method for this: client-server approach
• Host is identified by IP address• Process is identified by port number
• In TCP/IP: port numbers 0-65535 (16 bits)– Client uses: ephemeral ports (short-lived ports, >1023) – Server Uses: well-known ports
![Page 6: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/6.jpg)
Addressing• Internet Corporation for Assigned Names and Numbers (ICANN)
• Example:– ports are stored in /etc/services– FTP : 20, 21– SSH, SCP : 22– Echo : 7– DNS : 53– HTTP : 80– SNMP : 161,162– BGP : 179
18-02-2018 Dr. Manas Khatua 6
Private port numbers are available for use by any application to use in communicating with any other application, using the Internet's TCP or UDP.
Companies and other users should register Registered Port Number with the ICANN for use by their applications.
![Page 7: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/7.jpg)
Socket Address
• To use the services of the transport layer in the Internet, – we need a pair of socket addresses:
• the client socket address • the server socket address
18-02-2018 Dr. Manas Khatua 7
![Page 8: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/8.jpg)
Encapsulation and Decapsulation
18-02-2018 Dr. Manas Khatua 8
![Page 9: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/9.jpg)
Multiplexing and Demultiplexing
18-02-2018 9Dr. Manas Khatua
• Suppose you are sitting in front of a computer, and you are browsing Web pages while running one FTP session and two Telnet sessions.
• So, 4 processes– HTTP– FTP– 2 Telnet
• How does a segment forwarded to intended process?– using Socket Address– Method is called multiplexing
and demultiplexing
![Page 10: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/10.jpg)
Flow Control
18-02-2018 Dr. Manas Khatua 10
• Delivery of an item follows two approaches:– Pushing – Pulling
• Flow control need when a consumer is overwhelmed by the receiving items
![Page 11: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/11.jpg)
Flow Control in Transport Layer
18-02-2018 11Dr. Manas Khatua
• Commonly used solution:– Using two buffers
![Page 12: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/12.jpg)
Error ControlError control at the transport layer is responsible for:
• Detecting and discarding corrupted packets
• Keeping track of lost and discarded packets and resending them.
• Recognizing duplicate packets and discarding them
• Buffering out-of-order packets until the missing packets arrive
18-02-2018 Dr. Manas Khatua 12
![Page 13: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/13.jpg)
Requirements for Error Control
18-02-2018 Dr. Manas Khatua 13
• Three basic requirements:– Error detection mechanism– Sequence Number
• For identifying the position of segments• For deciding duplicate segments
– Acknowledgement (ACK)
• Protocol needs to maintain few information– How many segments have been sent– ACK has not been received for which segments– How many segments can be sent before receiving ACK
![Page 14: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/14.jpg)
Congestion Control
18-02-2018 Dr. Manas Khatua 14
• Congestion occurs if the load of a network greater than its present capacity
• TCP allows to have congestion control mechanism
• TCP detects congestion through packet loss and changes in round trip timeor throughput– Slow Start algorithm– Tri-S– DUAL– TCP Vegas
• Congestion control method when gateway provides an indication of congestion • Random Early Detection (RED)• Explicit Congestion Notification (ECN)
Source: https://www.cse.wustl.edu/~jain/cis788-95/ftp/tcpip_cong/index.html
![Page 15: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/15.jpg)
Connectionless and Connection-oriented
18-02-2018 Dr. Manas Khatua 15
• Transport layer provides two types of services– Connectionless:
• independency between segments; • no connection between sender & receiver; • no segment numbering; • no error control; • no flow control; • no congestion control
![Page 16: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/16.jpg)
Cont…
18-02-2018 Dr. Manas Khatua 16
– Connection-oriented: • segments have relation; • sender & receiver creates a connection to share segments of a message• Exist: segment numbering; error control; flow control; congestion control
![Page 17: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/17.jpg)
Transport Layer Protocol Strategies
18-02-2018 Dr. Manas Khatua 17
• Simple (it is not ARQ protocol)– Connectionless– No error control ; No flow control
• Automatic Repeat Request (ARQ)• for error control in data transmission using acknowledgement and timeout• achieve reliable data transmission over an unreliable service • Three protocols: Stop-and-Wait, Go-back-N, Selective Repeat
![Page 18: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/18.jpg)
Stop-and-Wait Protocol
18-02-2018 Dr. Manas Khatua 18
• Connection oriented• Uses error control• Uses flow control• Sender & receiver use sliding window of size 1• Also known as alternating-bit protocol
![Page 19: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/19.jpg)
Sequence Numbering
18-02-2018 Dr. Manas Khatua 19
![Page 20: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/20.jpg)
Efficiency of Stop-and-Wait
18-02-2018 Dr. Manas Khatua 20
• Efficiency is very less if the channel has large bandwidth and round trip delay is long
• Example: – 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 bits in length, what is the utilization
percentage of the link?
• Answer: – 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 %.
![Page 21: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/21.jpg)
Go-Back-N
18-02-2018 Dr. Manas Khatua 21
Send
Window
Receive
Window
![Page 22: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/22.jpg)
Send Window Size in GBN
18-02-2018 Dr. Manas Khatua 22
![Page 23: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/23.jpg)
Flow Diagram in GBN
18-02-2018 Dr. Manas Khatua 23
![Page 24: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/24.jpg)
Selective-Repeat (SR)
18-02-2018 Dr. Manas Khatua 24
• Disadvantages of Stop-and-Wait & Go-Back-N
– The receiver keeps track of only one variable– So, many retransmission for few packet loss– Which increases congestion– Which in turn creates more loss of packet– And so on cyclically results in “total collapse”
• Solution: • Selective Repeat using both side window
![Page 25: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/25.jpg)
Window Size in SR
18-02-2018 Dr. Manas Khatua 25
![Page 26: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/26.jpg)
ACK in GBN v/s SR
18-02-2018 Dr. Manas Khatua 26
• 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 of “ACK 3” if the system is using – GBN – SR
• Solution:– If the system is using GBN, it means that packets 0, 1, and 2 have been
received uncorrupted and the receiver is expecting packet 3. – It follows cumulative ACK
– If the system is using SR, it means that packet 3 has been received uncorrupted; the ACK does not say anything about other packets.
– It follows selective ACK
![Page 27: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/27.jpg)
ACK in TCP
18-02-2018 Dr. Manas Khatua 27
• ACK in TCP can be described as a hybrid of GBN and SR
• TCP is similar to GBN because both protocols have a limit on the number of unACK'd packets that the sender can send into the network.
• However, TCP is different from GBN because GBN requires the retransmission of every unACK'd packet when packets are lost, but TCP only retransmits the oldest unACK'd one.
• TCP is similar to SR because, when packets are lost due to congestion, the protocols do not require the sender to retransmit EVERY unACK'd packet sent by the sender. The sender just retransmits the oldest unACK'd packet.
• TCP is different from SR because SR requires individual acknowledgement of each packet that was sent by the receiver; but rather than selectively ACKing every packet, TCP sends an ACK for the next packet that it is expecting (like GBN) and buffers the ones that it has received so far, even if they're out of order (like SR).
![Page 28: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/28.jpg)
Reliable Data Transfer
18-02-2018 Dr. Manas Khatua 28
![Page 29: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/29.jpg)
Finite State Machine for Reliable Data Transfer
18-02-2018 Dr. Manas Khatua 29
• Case1: Over perfectly reliable channelThe eventcausing the transition
the actions taken when the event occurs
The initial state of the FSM
![Page 30: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/30.jpg)
FSM
18-02-2018 Dr. Manas Khatua 30
• Case2: Over channel with bit error
• Requirements:– Detection of Error– Inform the sender – use ACK/NAK– Retransmission
![Page 31: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/31.jpg)
FSM
18-02-2018 Dr. Manas Khatua 31
• How to handle duplicate packet?
• Solution: Use packet sequence number
![Page 32: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/32.jpg)
FSM
18-02-2018 Dr. Manas Khatua 32
![Page 33: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/33.jpg)
FSM
18-02-2018 Dr. Manas Khatua 33
• Does NAK required of out of order packets?
• Solution: No. Use packet sequence number with ACK
![Page 34: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/34.jpg)
FSM
18-02-2018 Dr. Manas Khatua 34
![Page 35: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/35.jpg)
FSM
18-02-2018 Dr. Manas Khatua 35
• What will happen if ACK is lost?
• Solution: Use countdown timer
![Page 36: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/36.jpg)
• Home task:
– Final FSM of the receiver and sender for
1) Stop-and-Wait
2) Go-back-N
3) Selective Repeat
18-02-2018 Dr. Manas Khatua 36
![Page 37: Introduction to Transport Layer - GitHub Pagesmanaskhatua.github.io/courses/CS321/CN_Lec5_1_Transport... · 2020-05-11 · Introduction to Transport Layer. Introduction 18-02-2018](https://reader035.vdocuments.us/reader035/viewer/2022062306/5f01f2197e708231d401d02b/html5/thumbnails/37.jpg)
18-02-2018 37Dr. Manas Khatua