TCP Sliding Windows, Flow Control, and Congestion Control

Slides:



Advertisements
Similar presentations
Networks : TCP Sliding Windows1 TCP Sliding Windows, Flow Control, and Congestion Control Lecture material taken from Computer Networks A Systems Approach,
Advertisements

TCP Sliding Windows, Flow Control, and Congestion Control Lecture material taken from Computer Networks A Systems Approach, Fourth Ed.,Peterson and Davie,
Advanced Computer Networks : TCP Sliding Windows1 TCP Sliding Windows, Flow Control, and Congestion Control Lecture material taken from “Computer Networks.
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
1 Computer Networks: A Systems Approach, 5e Larry L. Peterson and Bruce S. Davie Chapter 5 End-to-End Protocols Copyright © 2010, Elsevier Inc. All rights.
Slide Set 13: TCP. In this set.... TCP Connection Termination TCP State Transition Diagram Flow Control How does TCP control its sliding window ?
1 Chapter 5 End-to-End Protocols Outline 5.1 UDP 5.2 TCP 5.3 Remote Procedure Call.
8. Transport Protocol and UDP 8.1 Transport protocol : End-to-end protocol –IP: Host to host packet delivery –Transport: Process to process communication.
1 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Lecture 8: TCP and Congestion Control Slides adapted from: Congestion slides for Computer Networks: A Systems Approach (Peterson and Davis) Chapter 3 slides.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Edition,Peterson.
Fundamentals of Computer Networks ECE 478/578 Lecture #21: TCP Window Mechanism Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Third Ed.,Peterson.
ACN: TCP Sliding Windows1 TCP Sliding Windows, with Flow Control, and Congestion Control Based on Peterson and Davie Textbook.
Computer Networks : TCP Congestion Control1 TCP Congestion Control.
Advanced Computer Networks : TCP Sliding Windows1 TCP Sliding Windows, Flow Control, and Congestion Control Lecture material taken from “Computer Networks.
CSE 461: Sliding Windows & ARQ. Next Topic  We begin on the Transport layer  Focus  How do we send information reliably?  Topics  The Transport layer.
Networks : TCP Congestion Control1 TCP Congestion Control.
Networks : TCP Congestion Control1 TCP Congestion Control Presented by Bob Kinicki.
Advanced Computer Networks: TCP Congestion Control 1 TCP Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth.
Spring 2002CS 4611 Reliable Byte-Stream (TCP) Outline Connection Establishment/Termination Sliding Window Revisited Flow Control Adaptive Timeout.
Networking. Protocol Stack Generally speaking, sending an message is equivalent to copying a file from sender to receiver.
Gursharan Singh Tatla Transport Layer 16-May
ECE 4450:427/527 - Computer Networks Spring 2015 Dr. Nghi Tran Department of Electrical & Computer Engineering Lecture 5.3: Reliable Transmission Dr. Nghi.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
26-TCP Dr. John P. Abraham Professor UTPA. TCP  Transmission control protocol, another transport layer protocol.  Reliable delivery  Tcp must compensate.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Flow Control 0.
1 Introduction to Computer Networks University of ilam Dr. Mozafar Bag-Mohammadi Transport Layer.
Transport Layer: Sliding Window Reliability
NUS.SOC.CS2105 Ooi Wei Tsang Application Transport Network Link Physical you are still here.
TCP Flow Control – an illustration of distributed system thinking David E. Culler CS162 – Operating Systems and Systems Programming
CSE/EE 461 Sliding Windows and ARQ. 2 Last Time We finished up the Network layer –Internetworks (IP) –Routing (DV/RIP, LS/OSPF) It was all about routing:
1 Direct Link Networks: Reliable Transmission Sections 2.5.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
1 End-to-End Protocols UDP TCP –Connection Establishment/Termination –Sliding Window Revisited –Flow Control –Congestion Control –Adaptive Timeout.
CSE331: Introduction to Networks and Security Lecture 4 Fall 2002.
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
Computer Networking Lecture 16 – Reliable Transport.
Advanced Computer Networks
3. END-TO-END PROTOCOLS (PART 2) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
Chapter 3 Transport Layer
Reliable Transmission
Process-to-Process Delivery, TCP and UDP protocols
Introduction of Transport Protocols
Chapter 5 TCP Sliding Window
ECE 4450:427/527 - Computer Networks Spring 2017
The University of Adelaide, School of Computer Science
Dr. John P. Abraham Professor UTPA
5. End-to-end protocols (part 2)
TCP Sliding Windows, Flow Control, and Congestion Control
Dr. John P. Abraham Professor UTPA
Advanced Computer Networks
Ilam University Dr. Mozafar Bag-Mohammadi
Transmission Control Protocol (TCP) Part II Neil Tang 11/21/2008
CS4470 Computer Networking Protocols
Getting Connected (Chapter 2 Part 3)
TCP Overview.
The University of Adelaide, School of Computer Science
The Transport Layer Reliability
Introduction to Computer Networks
Introduction to Computer Networks
Transport Layer: Congestion Control
Transport Layer Outline Intro to transport UDP
Chapter 5 TCP Sliding Window
Introduction to Computer Networks
November 26th, 2018 Prof. Ion Stoica
Error detection: Outline
TCP Sliding Windows, Flow Control, and Congestion Control
Presentation transcript:

TCP Sliding Windows, Flow Control, and Congestion Control Lecture material taken from “Computer Networks A Systems Approach”, Fourth Ed.,Peterson and Davie, Morgan Kaufmann, 2007. Computer Networks TCP Sliding Windows

Sliding Windows Outline Generic Sliding Windows Receiver Response Choices Introduction to TCP Sliding Windows Flow control and buffers Advertised window Congestion control Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Normally a data link layer concept. Our interest is understanding the TCP mechanism at the transport layer. Each frame is assigned a sequence number: SeqNum. The sender maintains three variables: send window size (SWS), last ACK received (LAR), and last Frame sent (LFS). Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Sender Variables SWS :: the upper bound on the number of outstanding frames (not ACKed) the sender can transmit. LAR :: the sequence number of the last ACK received. LFS :: the sequence number of the last frame sent. Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Sender Invariant LFS – LAR ≤ SWS ≤ SWS LAR LFS Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Sender Window An arriving ACK  LAR moves right 1  sender can send one more frame. Associate a timer with each frame the sender transmits. Sender retransmits the frame if the timer times out. Sender buffer :: up to SWS frames. Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Receiver Variables Receiver window size (RWS) :: the upper bound on the number of out-of-order frames the receiver is willing to accept. Largest acceptable frame (LAF) :: the sequence number of the largest acceptable frame. Last frame received (LFR) :: the sequence number of the last frame received. Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Receiver Invariant LAF – LFR ≤ RWS ≤ RWS LFR LAF Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Receiver Window When a frame arrives with SeqNum: If (SeqNum ≤ LFR or SeqNum > LAF) the frame is discarded because it is outside the window. If (LFR < SeqNum ≤ LAF) the frame is accepted. Computer Networks TCP Sliding Windows

Receiver ACK Decisions SeqNumToAck :: largest sequence number not yet ACKed such that all frames ≤ SeqNumToAck have been received. Receiver ACKs receipt of SeqNumToAck and sets LFR = SeqNumToAck LAF = LFR + RWS SeqNumToAck is adjusted appropriately! Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Generic ACK Choices ACK sequence number indicates the last frame successfully received. - OR - 2. ACK sequence number indicates the next frame the receiver expects to receive. Both of these can be strictly individual ACKs or represent cumulative ACKing. Cumulative ACKs is the most common technique. Computer Networks TCP Sliding Windows

Generic Responses to a Lost Packet or Frame Use a duplicate ACK. 2. Use a selective ACK [SACK]. 3. Use a negative ACK [NACK] . Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows In practice, the TCP implementation switches from packet pointers to byte pointers. Guarantees reliable delivery of data. Ensures data delivered in order. Enforces flow control between sender and receiver. The idea is: the sender does not overrun the receiver’s buffer. Computer Networks TCP Sliding Windows

Figure 5.3 TCP Managing a Byte Stream Application process Write bytes TCP Send buffer Segment Transmit segments Read Receive buffer ■ ■ ■ P&D slide Computer Networks TCP Sliding Windows

Figure 5.8 Relationship between TCP Send Buffer and TCP Receive Buffer P&D slide Computer Networks TCP Sliding Windows

Receiver’s Advertised Window The big difference in TCP is that the size of the sliding window size at the TCP receiver is not fixed. The receiver advertises an adjustable window size (AdvertisedWindow field in TCP header). Sender is limited to having no more than AdvertisedWindow bytes of unACKed data at any time. Computer Networks TCP Sliding Windows

Figure 5.4 TCP Header Format P&D slide Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows Figure 5.5 Simplified TCP P&D slide Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows TCP Flow Control The discussion is similar to the previous sliding window mechanism except we add the complexity of sending and receiving application processes that are filling and emptying their local buffers. Also we introduce the complexity that buffers are of finite size without worrying about where the buffers are stored. MaxSendBuffer MaxRcvBuffer Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows TCP Flow Control The receiver throttles the sender by advertising a window size no larger than the amount it can buffer. On TCP receiver side: LastByteRcvd - LastByteRead ≤ MaxRcvBuffer to avoid buffer overflow! Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows TCP Flow Control TCP receiver advertises: AdvertisedWindow = MaxRcvBuffer - (LastByteRcvd - LastByteRead) i.e., the amount of free space available in the receiver’s buffer. Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows TCP Flow Control The TCP sender must adhere to the AdvertisedWindow from the receiver such that LastByteSent – LastByteAcked ≤ AdvertisedWindow or use EffectiveWindow EffectiveWindow = AdvertisedWindow – (LastByteSent – LastByteAcked) Computer Networks TCP Sliding Windows

Computer Networks TCP Sliding Windows TCP Flow Control Sender Flow Control Rules: EffectiveWindow > 0 for sender to send more data. LastByteWritten – LastByteAcked ≤ MaxSendBuffer equality here  send buffer is full!!  TCP sender process must block the sender application. Computer Networks TCP Sliding Windows

TCP Congestion Control CongestionWindow :: a variable held by the TCP source for each connection. TCP is modified such that the maximum number of bytes of unacknowledged data allowed is the minimum of CongestionWindow and AdvertisedWindow. MaxWindow :: min (CongestionWindow , AdvertisedWindow) Computer Networks TCP Sliding Windows

TCP Congestion Control Finally, we have that EffectiveWindow = MaxWindow – (LastByteSent – LastByteAcked) The idea :: the source’s effective window can be no faster than the slowest of the network (i.e., its core routers) or the destination Host. The TCP source receives implicit and/or explicit indications of congestion by which to reduce the size of CongestionWindow. Computer Networks TCP Sliding Windows

Sliding Windows Summary Generic Sliding Windows Receiver Response Choices Introduction to TCP Sliding Windows Flow control and buffers Advertised window Congestion control Computer Networks TCP Sliding Windows