Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP

Similar documents
Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service

Congestion Control. Brighten Godfrey CS 538 January Based in part on slides by Ion Stoica

UNIT IV -- TRANSPORT LAYER

TCP Congestion Control

TCP Congestion Control

Lecture 4: Congestion Control

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP

CNT 6885 Network Review on Transport Layer

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control

CSCI Topics: Internet Programming Fall 2008

Congestion Control. Daniel Zappala. CS 460 Computer Networking Brigham Young University

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 30, 2018

Congestion Control End Hosts. CSE 561 Lecture 7, Spring David Wetherall. How fast should the sender transmit data?

CSCI Topics: Internet Programming Fall 2008

Communication Networks

Computer Networking Introduction

CS3600 SYSTEMS AND NETWORKS

Internet Networking recitation #10 TCP New Reno Vs. Reno

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

CSE 123A Computer Networks

CS4700/CS5700 Fundamentals of Computer Networks

Flow and Congestion Control Marcos Vieira

Different Layers Lecture 20

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

Reliable Transport II: TCP and Congestion Control

Transport Protocols and TCP

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control

Lecture 11. Transport Layer (cont d) Transport Layer 1

Flow and Congestion Control (Hosts)

Chapter 3 Transport Layer

COMP/ELEC 429/556 Introduction to Computer Networks

Chapter 3 Transport Layer

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

cs/ee 143 Communication Networks

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols

Outline. CS5984 Mobile Computing

Reliable Transport II: TCP and Congestion Control

CSE/EE 461 Lecture 16 TCP Congestion Control. TCP Congestion Control

Fall 2012: FCM 708 Bridge Foundation I

Overview. TCP congestion control Computer Networking. TCP modern loss recovery. TCP modeling. TCP Congestion Control AIMD

TCP Review. Carey Williamson Department of Computer Science University of Calgary Winter 2018

Correcting mistakes. TCP: Overview RFCs: 793, 1122, 1323, 2018, TCP seq. # s and ACKs. GBN in action. TCP segment structure

Wireless TCP Performance Issues

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018

Lecture 21: Congestion Control" CSE 123: Computer Networks Alex C. Snoeren

The Transport Layer Congestion control in TCP

CC451 Computer Networks

Congestion Control. Principles of Congestion Control. Network-assisted Congestion Control: ATM. Congestion Control. Computer Networks 10/21/2009

Mid Term Exam Results

Chapter III: Transport Layer

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols

TCP Congestion Control 65KB W

TCP so far Computer Networking Outline. How Was TCP Able to Evolve

Congestion Collapse in the 1980s

image 3.8 KB Figure 1.6: Example Web Page

Lecture 14: Congestion Control"

EECS 122, Lecture 19. Reliable Delivery. An Example. Improving over Stop & Wait. Picture of Go-back-n/Sliding Window. Send Window Maintenance

Chapter 3 Transport Layer

TCP Congestion Control

Bandwidth Allocation & TCP

Transport Layer (Congestion Control)

8. TCP Congestion Control

CS268: Beyond TCP Congestion Control

CSC 4900 Computer Networks: TCP

Lecture 8. TCP/IP Transport Layer (2)

Intro to LAN/WAN. Transport Layer

TCP/IP Performance ITL

15-744: Computer Networking TCP

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness

Congestion Control. Principles of Congestion Control. Network assisted congestion. Asynchronous Transfer Mode. Computer Networks 10/23/2013

6.1 Internet Transport Layer Architecture 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol) 6. Transport Layer 6-1

Congestion Control. Tom Anderson

Announcements Computer Networking. Outline. Transport Protocols. Transport introduction. Error recovery & flow control. Mid-semester grades

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018

Performance Analysis of TCP Variants

Chapter 3- parte B outline

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

CSCD 330 Network Programming Winter 2015

TCP OVER AD HOC NETWORK

TCP congestion control:

Transport Layer Congestion Control

Transport protocols. Transport Layer 3-1

TCP over wireless links

CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca

PERFORMANCE COMPARISON OF THE DIFFERENT STREAMS IN A TCP BOTTLENECK LINK IN THE PRESENCE OF BACKGROUND TRAFFIC IN A DATA CENTER

CS321: Computer Networks Congestion Control in TCP

The Transmission Control Protocol (TCP)

Lecture 3: The Transport Layer: UDP and TCP

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste

What is Congestion? Congestion: Moral of the Story. TCP Approach. Transport Layer: TCP Congestion Control & Buffer Management

Multiple unconnected networks

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24

6.033 Computer System Engineering

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 10

CE693 Advanced Computer Networks

Chapter 24. Transport-Layer Protocols

TCP: Transmission Control Protocol UDP: User Datagram Protocol TCP - 1

TSIN02 - Internetworking

Transcription:

EEC7B/ECS5C Review: Internet Protocol Stack Review: TCP Application Telnet FTP HTTP Transport Network Link Physical bits on wire TCP LAN IP UDP Packet radio Transport Layer Services Design Issue Underlying best effort network drops messages re orders messages delivers duplicate copies of a given message delivers messages after an arbitrarily long delay Common end to end services guarantee message delivery deliver messages in the same order they are sent deliver at most one copy of each message allow the receiver to flow control the sender support multiple application processes on each host Goal of Transport Layer: data transfer between end systems At what rate do you send data? What is max useful sending rate for different apps? Two components Flow control make sure that the receiver can receive sliding window based flow control: receiver reports window size to sender higher window higher throughput throughput = window/rtt Congestion control make sure that the network can deliver Page

Transport Layer Connectionless Service: UDP Unreliable (unordered) data transfer No flow control No congestion control Connection Oriented Service: TCP Point to Point: One sender one receiver Connection Management: handshaking (exchange of control messages) initialize sender, receiver state before data exchange Reliable, in order byte stream data transfer (ACK & retransmission) Flow control: sender won t overwhelm receiver Congestion control: senders slow down sending rate when network congested so sender won t overwhelm network) Some Flow Control Algorithms Flow control for noisy channels Packets may be lost Typically combined with error control Reminder: data link layer also deals with encoding, framing, error detection like parity & polynomial code (CRC) ARQ protocols Stop and Wait Go Back N Selective Repeat Sliding Window protocols 5 6 Flow Control: Quick overview Stop And Wait What are common among them? Basic concept: ask for retransmission to correct errors Both data and ACK packets have sequence numbers Receiver informs sender via ACK or NACK packets Time out period What make them different? Sender window size Receiver window size How do they recover from errors? Is a buffer required at the receiver Node A Node B P Prop S Proc ACK Prop Proc Stop and wait is not very efficient Can we do something else while waiting for an ACK? Sliding window protocol idea: Allow Sender to keep transmitting a window of packets while waiting for ACKs P Remember how to compute efficiency? 7 8 Page

Node A Go Back N: Example Rule : can send up to s_wnd packets without acks Rule : when error occurs, retransmit packet plus all subsequent packets Timeout X S_wnd= sender window = t Selective Repeat: Example Packet n must not be sent until packet n W S has been acknowledged (to avoid overloading receiver buffer) Node A Timeout X t Node B Discard! Receiver does not need to buffer packets Node B Receiver Buffer OK OK OK OK Release packet,,, to upper layer 9 Why do You Care About Congestion Control? Solutions? Otherwise you get to congestion collapse How might this happen? Assume network is congested (a router drops packets) You learn the receiver didn t get the packet either by ACK, NACK, or Timeout What do you do? retransmit packet Still receiver didn t get the packet Retransmit again. and so on And now assume that everyone is doing the same! Network will become more and more congested And this with duplicate packets rather than new packets! Slow down If you know that your packets are not delivered because network congestion, slow down Questions: How do you detect network congestion? By how much do you slow down? Page

What s Really Happening? Goals Knee point after which Throughput increases very slow Delay increases fast Cliff point after which Throughput starts to decrease very fast to zero (congestion collapse) Delay approaches infinity Throughput Delay knee cliff Load packet loss congestion collapse Goal: Operate near the knee point and remain in equilibrium Don t put a packet into network until another packet leaves. Maintain number of packets in network constant Detect when network approaches/reaches knee point and Stay there How do you get there? What if you overshoot (i.e., go over knee point)? Possible solution: Increase window size until you notice congestion Decrease window size if network congested Load Detecting Congestion Detecting Congestion Implicit network signal Loss (e.g. TCP Tahoe, Reno, New Reno, SACK) +relatively robust, no avoidance [FF96] compared Tahoe, Reno, and SACK TCP Delay (e.g. TCP Vegas) +avoidance, difficult to make robust Easily deployable Robust enough? Wireless? Explicit network signal Send packet back to source (e.g. ICMP Source Quench) Control traffic congestion collapse Set bit in header e.g., DEC DNA/OSI Layer [CJ89], ECN [RFC8] Can be subverted by selfish receiver Unless on every router, still need end to end signal Could be be robust, if deployed 5 6 Page

TCP: Basic idea TCP: Slow Start & Congestion Avoidance When a connection starts, want to quickly approach knee: Slow Start phase Throughput knee C. Avoidance C. Ctrl Congestion control goal: stay left of cliff cliff Congestion avoidance goal: stay left of knee Turn more conservative Congestion avoidance Load Slow start Goal: discover congestion quickly How: Quickly increase CongWin until network congested get a rough estimate of the optimal of CongWin Set CongWin = Each time a segment is acknowledged, double CongWin Slow Start is not actually slow CongWin increases exponentially Congestion avoidance: slow down Slow Start If CongWin > Threshold then each time a segment is acknowledged increment CongWin by. 7 8 Illustration TCP Congestion Control congestion window size (segments) 8 6 TCP Reno Threshold TCP Tahoe 5 6 7 8 9 5 Transmission round Maintains three variables: CongWin congestion window FlowWin flow window; receiver advertised window Threshold threshold size (used to update cwnd) For sending use: win = min(flowwin, CongWin) Timeout When timer expires, TCP sender reduces rate Set Threshold / of CongWin just before the loss event Set CongWin = Window then grows exponentially until it hits Threshold, and then grows linearly Recovery can be slow if we wait for timeout => Don t wait for window to drain => Look for duplicate ACKs 9 Page 5

Refinement: Fast Retransmit Refinement: Fast Recovery Don t wait for window to drain Resend a segment after duplicate ACKs Remember a duplicate ACK means that an outof sequence segment was received CongWin = CongWin = CongWin = duplicate ACKs ACK ACK ACK ACK ACK ACK segment segment segment segment segment 5 segment 6 segment 7 After a fast retransmit, Set Threshold > ½of CongWin just before the loss event Set CongWin to the new Threshold i.e., don t reset CongWinto Start growing linearly, don t need slow start again Philosophy: dup ACKs indicates network capable of delivering some segments => less aggressive congestion control Action: after duplicate ACKs, go ahead and retransmit without waiting for timeout Timeout before dup ACKs is more alarming => Cut back aggressively Illustration Reflections on TCP congestion window size (segments) 8 6 TCP Reno Threshold TCP Tahoe 5 6 7 8 9 5 Transmission round Assumes that all sources cooperate Assumes that congestion occurs on time scales greater than RTT Only useful for reliable, in order delivery, non real time applications Vulnerable to non congestion related loss (e.g. wireless) Can be unfair to long RTT flows TCP cannot distinguish between link loss and congestion loss (e.g., wireless environment) Page 6

Efficient Allocation Does TPC work in wireless environment? Too slow Fail to take advantage of available bandwidth underload Too fast Overshoot knee overload, high delay, loss Everyone s doing it May all under/over shoot large oscillations Optimal: x i =X goal Efficiency = distance from efficiency line User : x underload user example overload User : x Efficiency line 6 Fair Allocation Maxmin fairness Flows which share the same bottleneck get the same amount of bandwidth F x xi n xi Assumes no knowledge of priorities Fairness = distance from fairness line User : x getting too much user example getting too much User : x fairness line 7 Page 7