Introduc)on to Computer Networks

Similar documents
Flow and Congestion Control Marcos Vieira

CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca

Introduc)on to Computer Networks

Lecture 4: Congestion Control

Introduc)on to Computer Networks

Conges'on. Last Week: Discovery and Rou'ng. Today: Conges'on Control. Distributed Resource Sharing. Conges'on Collapse. Conges'on

TCP Congestion Control

Flow and Congestion Control (Hosts)

Context. TCP is the dominant transport protocol in today s Internet. Embodies some of Internet design principles

Congestion. Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets limited resources

TCP congestion control:

TCP conges+on control

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

CSE 461. TCP and network congestion

Opera&ng Systems and Networks. Network Lecture 10: Conges&on Control. Adrian Perrig Network Security Group ETH Zürich

Reliable Transport II: TCP and Congestion Control

CSE/EE 461. TCP congestion control. Last Lecture. This Lecture. Focus How should senders pace themselves to avoid stressing the network?

ADVANCED COMPUTER NETWORKS

Internet Networking recitation #10 TCP New Reno Vs. Reno

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

CSCI Topics: Internet Programming Fall 2008

Introduc)on to Transport Protocols

cs/ee 143 Communication Networks

CS3600 SYSTEMS AND NETWORKS

TCP Congestion Control

TCP Congestion Control

Mid Term Exam Results

Fall 2012: FCM 708 Bridge Foundation I

Chapter III: Transport Layer

CS4700/CS5700 Fundamentals of Computer Networks

Lecture 15: Transport Layer Congestion Control

Congestion Control in TCP

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

Computer Networking Introduction

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

ECE 333: Introduction to Communication Networks Fall 2001

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

CS 356: Introduction to Computer Networks. Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3. Xiaowei Yang

Advanced Computer Networks

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

Introduc)on to Computer Networks

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

Transport Layer Congestion Control

Transport Protocols and TCP

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

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

Chapter 3 Transport Layer

Reliable Transport II: TCP and Congestion Control

COMP/ELEC 429/556 Introduction to Computer Networks

Computer Networks. Course Reference Model. Topic. Congestion What s the hold up? Nature of Congestion. Nature of Congestion 1/5/2015.

CSCI-1680 Transport Layer III Congestion Control Strikes Back Rodrigo Fonseca

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

image 3.8 KB Figure 1.6: Example Web Page

TCP Congestion Control 65KB W

CSCI Topics: Internet Programming Fall 2008

8. TCP Congestion Control

Homework 3 50 points. 1. Computing TCP's RTT and timeout values (10 points)

Advanced Computer Networks

Networked Systems and Services, Fall 2018 Chapter 3

TCP Performance. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

Chapter 3 Transport Layer

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

Congestion Control in TCP

CSC 4900 Computer Networks: TCP

Chapter 3 Transport Layer

CS 138: Communication I. CS 138 V 1 Copyright 2012 Thomas W. Doeppner. All rights reserved.

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2014

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

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

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

Congestion Control in TCP

6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long

Networked Systems and Services, Fall 2017 Reliability with TCP

Chapter 3- parte B outline

CSE 123A Computer Networks

Conges'on Control Reading: Sec'ons

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

Goals of Today s Lecture! Congestion Control! Course So Far.! Congestion Control Overview! It s Not Just The Sender & Receiver! Congestion is Natural!

Transmission Control Protocol (TCP)

CSC 8560 Computer Networks: TCP

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli)

End-to-End Protocols. Transport Protocols. User Datagram Protocol (UDP) Application Layer Expectations

Transport Layer (Congestion Control)

Review Questions for Midterm Exam-2 Fall 2016

TCP Review. CS144 Review Session 4 April 25, 2008 Ben Nham

Answers to Sample Questions on Transport Layer

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

Congestion Collapse in the 1980s

CSCD 330 Network Programming Winter 2015

Congestion Control In The Internet Part 2: How it is implemented in TCP. JY Le Boudec 2015

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

Q23-5 In a network, the size of the receive window is 1 packet. Which of the follow-ing protocols is being used by the network?

Communications Software. CSE 123b. CSE 123b. Spring Lecture 3: Reliable Communications. Stefan Savage. Some slides couresty David Wetherall

CS644 Advanced Networks

ECE 435 Network Engineering Lecture 10

Computer Networks Spring 2017 Homework 2 Due by 3/2/2017, 10:30am

Bandwidth Allocation & TCP

Transmission Control Protocol (TCP) TCP Services EECS 3214

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

Transcription:

Introduc)on to Computer Networks COSC 4377 Lecture 9 Spring 2012 February 15, 2012

Announcements HW4 due today Start working on HW5 In- class student presenta)ons TA office hours this week TR 1030a 100p

Today s Topics HW4 and HW5 discussions Transport Protocols Flow Control Conges)on Control

HW4 and HW5 Web Server Concurrency Fork vs Thread vs Select Use large file for tes)ng

Flow Control Goal: not send more data than the receiver can handle Sliding window protocol Receiver uses window header field to tell sender how much space it has

Conges)on Control Goal: do not send more data than the network can take 3 Key Challenges Determining the available capacity Adjus)ng to changes in the available capacity Sharing capacity between flows

Slow Start From [Jacobson88]

Slow start implementa)on Let w be the size of the window in bytes We have w/mss segments per RTT We are doubling w aber each RTT We receive w/mss ACKs each RTT So we can set w = w + MSS on every ack At some point we hit the network limit. Experience loss We are at most one window size above the limit Remember this: ssthresh and reduce window

Slow Start We double cwnd every round trip We are s)ll sending min (cwnd,rcvwnd) pkts Con)nue un)l ssthresh es)mate or pkt drop Sender pkt ack Receiver hjp://en.wikipedia.org/wiki/slow- start

Dealing with Conges)on Assume losses are due to conges)on Aber a loss, reduce conges)on window How much to reduce? Idea: conserva)on of packets at equilibrium Want to keep roughly the same number of packets network Analogy with water in fixed- size pipe Put new packet into network when one exits

How much to reduce window? What happens under conges)on? Exponen)al increase in conges)on Sources must decrease offered rate exponen)ally i.e, mul)plica)ve decrease in window size TCP chooses to cut window in half

How to use extra capacity? Network signals conges)on, but says nothing of underu)liza)on Senders constantly try to send faster, see if it works So, increase window if no losses By how much? Mul)plica)ve increase? Easier to saturate the network than to recover Too fast, will lead to satura)on, wild fluctua)ons Addi)ve increase? Won t saturate the network

Chiu Jain Phase Plots Fair: A = B Flow Rate B Goal: fair and efficient! Efficient: A+B = C Flow Rate A

Chiu Jain Phase Plots MI MD Fair: A = B Flow Rate B Efficient: A+B = C Flow Rate A

Chiu Jain Phase Plots AI AD Fair: A = B Flow Rate B Efficient: A+B = C Flow Rate A

Chiu Jain Phase Plots AI MD Fair: A = B Flow Rate B Efficient: A+B = C Flow Rate A

AIMD Implementa)on In prac)ce, send MSS- sized segments Let window size in bytes be w (a mul)ple of MSS) Increase: Aber w bytes ACKed, could set w = w + MSS Smoother to increment on each ACK w = w + MSS * MSS/w (receive w/mss ACKs per RTT, increase by MSS/(w/MSS) for each) Decrease: Aber a packet loss, w = w/2 But don t want w < MSS So react differently to mul)ple consecu)ve losses Back off exponen)ally (pause with no packets in flight)

KB AIMD Trace AIMD produces sawtooth pajern of window size 70 60 50 40 30 20 10 Always probing available bandwidth 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 Time (seconds) 10.0

Pusng it together TCP has two states: Slow Start (SS) and Conges)on Avoidance (CA) A window size threshold governs the state transi)on Window <= threshold: SS Window > threshold: conges)on avoidance States differ in how they respond to ACKs Slow start: w = w + MSS Conges)on Avoidance: w = w + MSS 2 /w (1 MSS per RTT) On loss event: set w = 1, slow start

How to Detect Loss Timeout Any other way? Gap in sequence numbers at receiver Receiver uses cumula)ve ACKs: drops => duplicate ACKs 3 Duplicate ACKs considered loss

Pusng it all together cwnd Timeout AIMD Timeout AIMD ssthresh Slow Start Slow Start Slow Start Time

RTT We want an es)mate of RTT so we can know a packet was likely lost, and not just delayed Key for correct opera)on Challenge: RTT can be highly variable Both at long and short )me scales! Both average and variance increase a lot with load Solu)on Use exponen)ally weighted moving average (EWMA) Es)mate devia)on as well as expected value Assume packet is lost when )me is well beyond reasonable devia)on

Originally EstRTT = (1 α) EstRTT + α SampleRTT Timeout = 2 EstRTT Problem 1: in case of retransmission, ack corresponds to which send? Solu)on: only sample for segments with no retransmission Problem 2: does not take variance into account: too aggressive when there is more load!

Jacobson/Karels Algorithm (Tahoe) EstRTT = (1 α) EstRTT + α SampleRTT Recommended α is 0.125 DevRTT = (1 β) DevRTT + β SampleRTT EstRTT Recommended β is 0.25 Timeout = EstRTT + 4 DevRTT For successive retransmissions: use exponen)al backoff

Old RTT Es)ma)on RTT (sec.) 0 2 4 6 8 10 12 0 10 20 30 40 50 60 70 80 90 100 110 Packet

Tahoe RTT Es)ma)on RTT (sec.) 0 2 4 6 8 10 12 0 10 20 30 40 50 60 70 80 90 100 110 Packet

Slow start every )me?! Losses have large effect on throughput Fast Recovery (TCP Reno) Same as TCP Tahoe on Timeout: w = 1, slow start On triple duplicate ACKs: w = w/2 Retransmit missing segment (fast retransmit) Stay in Conges)on Avoidance mode

Fast Recovery and Fast Retransmit cwnd AI/MD Slow Start Fast retransmit Time

3 Challenges Revisited Determining the available capacity in the first place Exponen)al increase in conges)on window Adjus)ng to changes in the available capacity Slow probing, AIMD Sharing capacity between flows AIMD Detec)ng Conges)on Timeout based on RTT Triple duplicate acknowledgments Fast retransmit/fast recovery Reduces slow starts, )meouts