Reliable Transport II: TCP and Congestion Control

Size: px
Start display at page:

Download "Reliable Transport II: TCP and Congestion Control"

Transcription

1 Reliable Transport II: TCP and Congestion Control Stefano Vissicchio UCL Computer Science COMP0023

2 Recap: Last Lecture Transport Concepts Layering context Transport goals Transport mechanisms and design choices TCP Protocol (part I) Packet header format Connection establishment and teardown 2

3 Recap: TCP s Many End-to-End Goals Provide a connection-oriented service to applications Not totally insecure.. Ensure Reliability Recover from data loss Avoid receipt of duplicated data Preserve data ordering Provide integrity against corruption Transfer data as fast as possible Avoid sending faster than receiver can accept data Avoid congesting network 3

4 Recap: TCP Packet Header TCP header: 20 bytes long (minimum) Encapsulate data, encapsulated into an IP header Checksum covers header + pseudo header 4

5 TCP: Data Transmission Each byte numbered sequentially, mod 2 32 Sequence number (seqno) field in TCP header indicates first user payload byte in packet Both sender and receiver buffer data Sender buffers data in case retransmission s required Receiver buffers data for in-order reassembly Buffer space à sender s and receiver s window size Receiver indicates receive window sizes explicitly in window field in TCP header 5

6 TCP: Data Transmission (cont d) Sender uses a sliding window that does not exceed send and receive window sizes.. and network s estimated capacity (details later today) window s low end advances as packets are ACKed, high end advances as receive window increases Receiver sends cumulative ACKs ACK number in TCP header names highest contiguous byte number received thus far +1 one ACK per received packet, or delayed ACK delayed ACK: receiver batches ACKs, sends one for every pair of data packets (200 ms max delay) 6

7 TCP: Data Transmission (cont d) Sender uses a sliding window that does not exceed send and receive window sizes.. and network s estimated capacity (details later today) window s low end advances as packets are ACKed, high end advances as receive window increases So how fast to transmit? Receiver sends cumulative ACKs ACK number in TCP header names highest contiguous byte number received thus far +1 one ACK per received packet, or delayed ACK delayed ACK: receiver batches ACKs, sends one for every pair of data packets (200 ms max delay) 7

8 Outline Slow Start and Retransmit Timeouts AIMD Congestion control Throughput, loss, and RTT equation Protocol state machine 8

9 Undesirable Retransmit Behavior Original TCP, before [Jacobson 88]: at start of connection, send full window of packets retransmit each packet immediately after its timer expires with the Go-Back-N strategy Result: window-sized bursts of packets sent into network 9

10 Sequence no. (KB) Pre-Jacobson TCP with Single Sender (Obsolete!) Time-sequence plot taken at sender Orange line: available 20 KB/s capacity Time (s) 10

11 Sequence no. (KB) Pre-Jacobson TCP with Single Sender (Obsolete!) Bursts of packets Spurious retransmits Same packets sent again and again Time (s) 11

12 Sequence no. (KB) Pre-Jacobson TCP with Single Sender (Obsolete!) Two main root causes: Retransmit timeouts Transmission Rate Bursts of packets Spurious retransmits Same packets sent again and again Time (s) 12

13 TCP: Retransmit Timeouts Sender sets timer for each sent packet if timer expires before ACK returns, packet resent Expected time for ACK to return: RTT TCP estimates RTT using EWMA: measurements m i from timed packet/ack pairs estimated RTT: RTT i = (1-α) RTT i-1 + α m i with α = 1/8 Original TCP set retransmit timeout (RTO) RTO i = β RTT i, with β = 2 Is this accurate enough? Recall dangers of too-short and too-long RTT estimates 13

14 Mean and Variance: Jacobson s Findings Above link load of 30% at router, β RTT i will retransmit too early Response to increasing load: waste bandwidth on duplicate packets Result: congestion collapse!! [Jacobson 88]: estimate v i, mean deviation (EWMA of m i RTT i ), stand-in for variance v i = v i-1 (1 - γ) + γ m i -RTT i Use RTO i = RTT i + 4v i 14

15 Mean and Variance: Jacobson s RTT Estimator Above link load of 30% at router, β RTT i will retransmit too early Response to increasing load: waste bandwidth on duplicate packets Result: congestion collapse!! Main solution [Jacobson 88]: Estimate v i = mean deviation as EWMA of m i RTT i, to approximate RTT variance v i = v i-1 (1 - γ) + γ m i -RTT i Use RTO i = RTT i + 4v i 15

16 Mean and Variance: Jacobson s RTT Estimator Above link load of 30% at router, β RTT i will retransmit too early Mean and Variance RTT estimator Response to increasing load: waste bandwidth on duplicate packets used by all modern TCPs Result: congestion collapse!! Main solution [Jacobson 88]: Estimate v i = mean deviation as EWMA of m i RTT i, to approximate RTT variance v i = v i-1 (1 - γ) + γ m i -RTT i Use RTO i = RTT i + 4v i 16

17 Sequence no. (KB) Pre-Jacobson TCP with Single Sender (Obsolete!) Two main root causes: Retransmit timeouts Transmission Rate Bursts of packets Spurious retransmits Same packets sent again and again Time (s) 17

18 Self-Clocking: Conservation of Packets Goal: self-clocking transmission as each ACK returns, one data packet is sent spacing of returning ACKs: matches spacing of packets in time at slowest link on path 18

19 Reaching Equilibrium: Slow Start At connection start, sender sets congestion window size, cwnd, to pktsize (one packet s worth of bytes) Sender sends up to minimum of receiver s advertised window size rwnd and cwnd Upon return of each ACK until receiver s advertised window size reached, increase cwnd by pktsize bytes Slow means exponential window increase! Takes log 2 (rwnd / pktsize) RTTs to reach receiver s advertised window size W If the bottleneck is the receiver... 19

20 Post-Jacobson TCP with Single Sender: Slow Start and Mean+Variance RTT Estimator Time-sequence plot at sender Slower start, but no spurious retransmits 20

21 Outline Slow Start and Retransmit Timeouts AIMD Congestion control Throughput, loss, and RTT equation Protocol state machine 21

22 Goals in Congestion Control High utilization Achieve high utilization: don t waste capacity! Fairness Divide bottleneck link capacity fairly among users Be stable: achieve steady allocation among users Avoid congestion collapse!! 22

23 Goals in Congestion Control High utilization Achieve high utilization: don t waste capacity! Fairness Divide bottleneck link capacity fairly among users Be stable: achieve steady allocation among users Avoid congestion collapse!!... With no information about bottleneck link(s), network state, and other users! 23

24 Congestion Collapse Saturation Knee Throughput (bps) Congestion collapse! Offered load (bps) Cliff behavior observed in [Jacobson 88] 24

25 Congestion Requires Slowing Senders Bigger buffers cannot prevent congestion Senders must slow to alleviate congestion Absence of ACKs implicitly indicates congestion TCP congestion window size determines sending rate Recall: correct window size is bottleneck bandwidthdelay product (or our share of it) How can sender learn correct window size? Search for it, by adapting window size Feedback from network: ACKs return (window OK) ACKs do not return (window too big) 25

26 Congestion Requires Slowing Senders Bigger buffers cannot prevent congestion Senders must slow to alleviate congestion Absence of ACKs implicitly indicates congestion TCP congestion window size determines sending rate Recall: correct window size is bottleneck bandwidthdelay product (or our share of it) How can a sender learn correct window size? Search for it, by adapting window size Feedback from network: ACKs return (window OK) ACKs do not return (window too big) 26

27 TCP s cwnd limits the number of packets TCP has sent for which it has not yet seen an acknowledgment. Data packets Acks for data packets

28 Avoiding Congestion: Multiplicative Decrease Sender uses sending window of size min(cwnd, rwnd), where rwnd is receiver s advertised window Upon timeout for sent packet, sender presumes the packet was lost to congestion, and: sets ssthresh = cwnd / 2 sets cwnd = pktsize uses slow start to grow cwnd back up to ssthresh End result: cwnd = cwnd / 2, via slow start Sender sends ~ one window per RTT; halving cwnd halves transmit rate 28

29 Avoiding Congestion: Additive Increase Drops indicate that TCP is sending more than its fair share of bottleneck There s no feedback to indicate TCP using less than its fair share of bottleneck Solution: speculatively increase cwnd as ACKs return Additive increase: for each returning ACK, cwnd = cwnd + (pktsize pktsize) / cwnd You get cwnd/pktsize acks per RTT, so this increases cwnd by ~pktsize bytes each RTT 29

30 Avoiding Congestion: Additive Increase Drops indicate that TCP is sending more than its fair share of bottleneck There s no feedback to indicate TCP using less than its fair share of bottleneck Solution: Combined speculatively algorithm: increase cwnd as ACKs return Additive Increase, increase: Multiplicative for each returning Decrease ACK, (AIMD) cwnd = cwnd + (pktsize pktsize) / cwnd You get cwnd/pktsize acks per RTT, so this increases cwnd by ~pktsize bytes each RTT 30

31 Refinement: Fast Retransmit (I) Sender must wait well over one RTT for timer to expire before loss detected TCP s minimum retransmit timeout: 1 second Another loss indication: duplicate ACKs Suppose sender sends 1, 2, 3, 4, 5, but 2 lost Receiver receives 1, 3, 4, 5 Receiver sends cumulative ACKs 2, 2, 2, 2 Refinement: avoid slow start if 3 duplicate ACKs Directly halve cwnd 31

32 Fast Retransmit (II) Upon arrival of 3 duplicate ACKs, sender: sets cwnd = cwnd / 2, with no slow start retransmits missing packet enters additive increase A data, seqno = 1 data, seqno = 513 data, seqno = 1025 data, seqno = 1537 data, seqno = 2049 ACK = 513 ACK = 513 ACK = 513 ACK = 513 data, seqno = 513 B time 32

33 AIMD in Action packets in flight 3 dup ACKs received multiplicative decrease window full (too many losses for fast RTX) slow start additive increase timeout back in slow start Sender searches for correct window size, constantly over time time 33

34 AIMD in Action: Competing Flows

35 Why AIMD? Other control rules are possible: E.g., MIMD, AIAD, Recall goals: Links fully utilized (efficient) Users share resources fairly Each TCP flow adapts its own window size independently Must choose a control that will always converge to an efficient and fair allocation of windows 35

36 Chiu-Jain Phase Plots Flow 1 Consider two flows sharing a bottleneck link Plot cwnd of each (approx. bandwidth) Efficiency: sum of two flows rates fixed Fairness: two flows rates equal Equi-Fairness: ratio of two flows rates fixed Flow 2 cwnd Flow 2 Equi-Fairness Line (MI) (AI) Underload Fairness Line Overload Optimum Efficiency Line Flow 1 cwnd 36

37 Chiu Jain: AIMD Flow 1 Flow 2 cwnd Fairness Line Flow 2 Efficiency Line Queue Overflow Line Flow 1 cwnd AIMD converges to optimum efficiency and fairness the plot assumes both flows lose packets during congestion 37

38 Chiu Jain: AIAD Flow 1 Flow 2 Fairness Line Efficiency Line Queue Overflow Line AIAD doesn t converge to optimum point! Similar oscillations for MIMD 38

39 Simulation of Two TCP Flows (if only one flow loses packets during congestion)

40 Result: Over time, TCP equalizes the windows of competing flows Flow 2 Flow 1 Window of flow 2 The two windows are similar most of the time Window of flow 1

41 Outline Slow Start and Retransmit Timeouts AIMD Congestion control Throughput, loss, and RTT equation Protocol state machine 41

42 Modeling Throughput, Loss, and RTT How do packet loss rate and RTT affect throughput TCP achieves? Assume: only fast retransmits so no timeouts (i.e., no slow starts in steady-state) 42

43 Steady State Evolution of Window Over Time W W/2 time Mean window size: 3W / 4 One window sent per RTT Mean throughput, T: 3W / 4 packets per RTT 3BW / 4 bytes per RTT (B = packet size in bytes) (3BW / 4) / RTT bytes per second W depends on loss rate T = 3B.W 4RTT 43

44 Loss and Window Size Assume no delayed ACKs, fixed RTT cwnd grows by one packet per RTT So it takes W / 2 RTTs to go from window size W / 2 to window size W; this period is one cycle How many packets sent in total in a cycle? ((3W / 4) / RTT) x (W / 2 x RTT) = 3W 2 /8 One loss per cycle (as window reaches W) p = 8 3W 2 loss rate: so: W = 8 3p 44

45 Throughput, Loss, and RTT Model Recall: W = 8 3p = p Throughput T = 3B.W 4RTT Substituting for W gives: T = 3 / 2B RTT p Consequences: Increased loss quickly reduces throughput At same bottleneck, flow with longer RTT achieves less throughput than flow with shorter RTT! 45

46 Outline Slow Start and Retransmit Timeouts AIMD Congestion control Throughput, loss, and RTT equation Protocol state machine 46

47 TCP: Protocol State Machine [RFC793] 47

48 Summary: TCP and Congestion Control Connection establishment and teardown Robustness against delayed packets crucial Round-trip time estimation EWMAs estimate both RTT mean and deviation Congestion detection at sender Timeout: retransmit timer expires, halve window, slow start from one packet Fast Retransmit: three duplicate ACKs, halve window, no slow start Search for optimal sending window size Additive increase, multiplicative decrease (AIMD) AIMD converges to high utilization, fair sharing 48

49 Reading: Read It! Jacobson V., Congestion Avoidance and Control A true classic in networking one of the most influential ideas in the area Paper is available in PDF on calendar page of the class web site

Reliable Transport II: TCP and Congestion Control

Reliable Transport II: TCP and Congestion Control Reliable Transport II: TCP and Congestion Control Brad Karp UCL Computer Science CS 3035/GZ01 31 st October 2013 Outline Slow Start AIMD Congestion control Throughput, loss, and RTT equation Connection

More information

Reliable Transport I: Concepts and TCP Protocol

Reliable Transport I: Concepts and TCP Protocol Reliable Transport I: Concepts and TCP Protocol Brad Karp UCL Computer Science CS 3035/GZ01 29 th October 2013 Part I: Transport Concepts Layering context Transport goals Transport mechanisms 2 Context:

More information

Flow and Congestion Control Marcos Vieira

Flow and Congestion Control Marcos Vieira Flow and Congestion Control 2014 Marcos Vieira Flow Control Part of TCP specification (even before 1988) Goal: not send more data than the receiver can handle Sliding window protocol Receiver uses window

More information

Communication Networks

Communication Networks Communication Networks Spring 2018 Laurent Vanbever nsg.ee.ethz.ch ETH Zürich (D-ITET) April 30 2018 Materials inspired from Scott Shenker & Jennifer Rexford Last week on Communication Networks We started

More information

Lecture 4: Congestion Control

Lecture 4: Congestion Control Lecture 4: Congestion Control Overview Internet is a network of networks Narrow waist of IP: unreliable, best-effort datagram delivery Packet forwarding: input port to output port Routing protocols: computing

More information

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

Overview. TCP congestion control Computer Networking. TCP modern loss recovery. TCP modeling. TCP Congestion Control AIMD Overview 15-441 Computer Networking Lecture 9 More TCP & Congestion Control TCP congestion control TCP modern loss recovery TCP modeling Lecture 9: 09-25-2002 2 TCP Congestion Control Changes to TCP motivated

More information

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

Outline Computer Networking. TCP slow start. TCP modeling. TCP details AIMD. Congestion Avoidance. Lecture 18 TCP Performance Peter Steenkiste Outline 15-441 Computer Networking Lecture 18 TCP Performance Peter Steenkiste Fall 2010 www.cs.cmu.edu/~prs/15-441-f10 TCP congestion avoidance TCP slow start TCP modeling TCP details 2 AIMD Distributed,

More information

15-744: Computer Networking TCP

15-744: Computer Networking TCP 15-744: Computer Networking TCP Congestion Control Congestion Control Assigned Reading [Jacobson and Karels] Congestion Avoidance and Control [TFRC] Equation-Based Congestion Control for Unicast Applications

More information

CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca

CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca CSCI-1680 Transport Layer II Data over TCP Rodrigo Fonseca Based partly on lecture notes by David Mazières, Phil Levis, John Janno< Last Class CLOSED Passive open Close Close LISTEN Introduction to TCP

More information

CSE 461. TCP and network congestion

CSE 461. TCP and network congestion CSE 461 TCP and network congestion This Lecture Focus How should senders pace themselves to avoid stressing the network? Topics Application Presentation Session Transport Network congestion collapse Data

More information

Reliable Transport I: Concepts and TCP Protocol

Reliable Transport I: Concepts and TCP Protocol Reliable Transport I: Concepts and TCP Protocol Stefano Vissicchio UCL Computer Science COMP0023 Today Transport Concepts Layering context Transport goals Transport mechanisms and design choices TCP Protocol

More information

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

Congestion Control. Brighten Godfrey CS 538 January Based in part on slides by Ion Stoica Congestion Control Brighten Godfrey CS 538 January 31 2018 Based in part on slides by Ion Stoica Announcements A starting point: the sliding window protocol TCP flow control Make sure receiving end can

More information

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

CS 356: Introduction to Computer Networks. Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3. Xiaowei Yang CS 356: Introduction to Computer Networks Lecture 16: Transmission Control Protocol (TCP) Chap. 5.2, 6.3 Xiaowei Yang xwy@cs.duke.edu Overview TCP Connection management Flow control When to transmit a

More information

Lecture 14: Congestion Control"

Lecture 14: Congestion Control Lecture 14: Congestion Control" CSE 222A: Computer Communication Networks George Porter Thanks: Amin Vahdat, Dina Katabi and Alex C. Snoeren Lecture 14 Overview" TCP congestion control review Dukkipati

More information

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

Chapter 3 outline. 3.5 Connection-oriented transport: TCP. 3.6 Principles of congestion control 3.7 TCP congestion control Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4 Principles of reliable data transfer 3.5 Connection-oriented transport: TCP segment

More information

Transport Layer PREPARED BY AHMED ABDEL-RAOUF

Transport Layer PREPARED BY AHMED ABDEL-RAOUF Transport Layer PREPARED BY AHMED ABDEL-RAOUF TCP Flow Control TCP Flow Control 32 bits source port # dest port # head len sequence number acknowledgement number not used U A P R S F checksum Receive window

More information

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

Transport layer. UDP: User Datagram Protocol [RFC 768] Review principles: Instantiation in the Internet UDP TCP Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport

More information

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

Transport layer. Review principles: Instantiation in the Internet UDP TCP. Reliable data transfer Flow control Congestion control Transport layer Review principles: Reliable data transfer Flow control Congestion control Instantiation in the Internet UDP TCP 1 UDP: User Datagram Protocol [RFC 768] No frills, bare bones Internet transport

More information

Lecture 14: Congestion Control"

Lecture 14: Congestion Control Lecture 14: Congestion Control" CSE 222A: Computer Communication Networks Alex C. Snoeren Thanks: Amin Vahdat, Dina Katabi Lecture 14 Overview" TCP congestion control review XCP Overview 2 Congestion Control

More information

Computer Network Fundamentals Spring Week 10 Congestion Control Andreas Terzis

Computer Network Fundamentals Spring Week 10 Congestion Control Andreas Terzis Computer Network Fundamentals Spring 2008 Week 10 Congestion Control Andreas Terzis Outline Congestion Control TCP Congestion Control CS 344/Spring08 2 What We Know We know: How to process packets in a

More information

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

TCP. CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli) TCP CSU CS557, Spring 2018 Instructor: Lorenzo De Carli (Slides by Christos Papadopoulos, remixed by Lorenzo De Carli) 1 Sources Fall and Stevens, TCP/IP Illustrated Vol. 1, 2nd edition Congestion Avoidance

More information

image 3.8 KB Figure 1.6: Example Web Page

image 3.8 KB Figure 1.6: Example Web Page image. KB image 1 KB Figure 1.: Example Web Page and is buffered at a router, it must wait for all previously queued packets to be transmitted first. The longer the queue (i.e., the more packets in the

More information

TCP Congestion Control : Computer Networking. Introduction to TCP. Key Things You Should Know Already. Congestion Control RED

TCP Congestion Control : Computer Networking. Introduction to TCP. Key Things You Should Know Already. Congestion Control RED TCP Congestion Control 15-744: Computer Networking L-4 TCP Congestion Control RED Assigned Reading [FJ93] Random Early Detection Gateways for Congestion Avoidance [TFRC] Equation-Based Congestion Control

More information

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

Lecture 21: Congestion Control CSE 123: Computer Networks Alex C. Snoeren Lecture 21: Congestion Control" CSE 123: Computer Networks Alex C. Snoeren Lecture 21 Overview" How fast should a sending host transmit data? Not to fast, not to slow, just right Should not be faster than

More information

CS3600 SYSTEMS AND NETWORKS

CS3600 SYSTEMS AND NETWORKS CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 24: Congestion Control Prof. Alan Mislove (amislove@ccs.neu.edu) Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica,

More information

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

Congestion Control End Hosts. CSE 561 Lecture 7, Spring David Wetherall. How fast should the sender transmit data? Congestion Control End Hosts CSE 51 Lecture 7, Spring. David Wetherall Today s question How fast should the sender transmit data? Not tooslow Not toofast Just right Should not be faster than the receiver

More information

CS644 Advanced Networks

CS644 Advanced Networks What we know so far CS644 Advanced Networks Lecture 6 Beyond TCP Congestion Control Andreas Terzis TCP Congestion control based on AIMD window adjustment [Jac88] Saved Internet from congestion collapse

More information

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

CS519: Computer Networks. Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control : Computer Networks Lecture 5, Part 4: Mar 29, 2004 Transport: TCP congestion control TCP performance We ve seen how TCP the protocol works Sequencing, receive window, connection setup and teardown And

More information

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

Transmission Control Protocol. ITS 413 Internet Technologies and Applications Transmission Control Protocol ITS 413 Internet Technologies and Applications Contents Overview of TCP (Review) TCP and Congestion Control The Causes of Congestion Approaches to Congestion Control TCP Congestion

More information

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

6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long 6.033 Spring 2015 Lecture #11: Transport Layer Congestion Control Hari Balakrishnan Scribed by Qian Long Please read Chapter 19 of the 6.02 book for background, especially on acknowledgments (ACKs), timers,

More information

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

Goals of Today s Lecture! Congestion Control! Course So Far.! Congestion Control Overview! It s Not Just The Sender & Receiver! Congestion is Natural! Goals of Today s Lecture! Congestion Control! EE 22: Intro to Communication Networks Fall 200 (MW 4-5:30 in 0 Barker) Scott Shenker TAs: Sameer Agarwal, Sara Alspaugh, Igor Ganichev, Prayag Narula http://inst.eecs.berkeley.edu/~ee22/

More information

Principles of congestion control

Principles of congestion control Principles of congestion control Congestion: Informally: too many sources sending too much data too fast for network to handle Different from flow control! Manifestations: Lost packets (buffer overflow

More information

Good Ideas So Far Computer Networking. Outline. Sequence Numbers (reminder) TCP flow control. Congestion sources and collapse

Good Ideas So Far Computer Networking. Outline. Sequence Numbers (reminder) TCP flow control. Congestion sources and collapse Good Ideas So Far 15-441 Computer Networking Lecture 17 TCP & Congestion Control Flow control Stop & wait Parallel stop & wait Sliding window Loss recovery Timeouts Acknowledgement-driven recovery (selective

More information

Bandwidth Allocation & TCP

Bandwidth Allocation & TCP Bandwidth Allocation & TCP The Transport Layer Focus Application Presentation How do we share bandwidth? Session Topics Transport Network Congestion control & fairness Data Link TCP Additive Increase/Multiplicative

More information

CS4700/CS5700 Fundamentals of Computer Networks

CS4700/CS5700 Fundamentals of Computer Networks CS4700/CS5700 Fundamentals of Computer Networks Lecture 15: Congestion Control Slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang Alan Mislove amislove at ccs.neu.edu

More information

Congestion Avoidance and Control. Rohan Tabish and Zane Ma

Congestion Avoidance and Control. Rohan Tabish and Zane Ma Congestion Avoidance and Control Rohan Tabish and Zane Ma TCP is self-clocking Self-clocking systems should be robust Congestion collapse Internet had first of what became a series of congestion collapses

More information

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

Page 1. Review: Internet Protocol Stack. Transport Layer Services. Design Issue EEC173B/ECS152C. Review: TCP 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

More information

cs/ee 143 Communication Networks

cs/ee 143 Communication Networks cs/ee 143 Communication Networks Chapter 4 Transport Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech Recap: Internet overview Some basic mechanisms n Packet switching n Addressing n Routing o

More information

Lecture 15: Transport Layer Congestion Control

Lecture 15: Transport Layer Congestion Control Lecture 15: Transport Layer Congestion Control COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016, J.F Kurose

More information

Computer Networking Introduction

Computer Networking Introduction Computer Networking Introduction Halgurd S. Maghdid Software Engineering Department Koya University-Koya, Kurdistan-Iraq Lecture No.11 Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and

More information

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

CS 43: Computer Networks. 19: TCP Flow and Congestion Control October 31, Nov 2, 2018 CS 43: Computer Networks 19: TCP Flow and Congestion Control October 31, Nov 2, 2018 Five-layer Internet Model Application: the application (e.g., the Web, Email) Transport: end-to-end connections, reliability

More information

Flow and Congestion Control (Hosts)

Flow and Congestion Control (Hosts) Flow and Congestion Control (Hosts) 14-740: Fundamentals of Computer Networks Bill Nace Material from Computer Networking: A Top Down Approach, 6 th edition. J.F. Kurose and K.W. Ross traceroute Flow Control

More information

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

Page 1. Review: Internet Protocol Stack. Transport Layer Services EEC173B/ECS152C. Review: TCP. Transport Layer: Connectionless Service 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 Do you remember the various mechanisms we have

More information

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

TCP so far Computer Networking Outline. How Was TCP Able to Evolve TCP so far 15-441 15-441 Computer Networking 15-641 Lecture 14: TCP Performance & Future Peter Steenkiste Fall 2016 www.cs.cmu.edu/~prs/15-441-f16 Reliable byte stream protocol Connection establishments

More information

Chapter III. congestion situation in Highspeed Networks

Chapter III. congestion situation in Highspeed Networks Chapter III Proposed model for improving the congestion situation in Highspeed Networks TCP has been the most used transport protocol for the Internet for over two decades. The scale of the Internet and

More information

CS321: Computer Networks Congestion Control in TCP

CS321: Computer Networks Congestion Control in TCP CS321: Computer Networks Congestion Control in TCP Dr. Manas Khatua Assistant Professor Dept. of CSE IIT Jodhpur E-mail: manaskhatua@iitj.ac.in Causes and Cost of Congestion Scenario-1: Two Senders, a

More information

Congestion Control in TCP

Congestion Control in TCP Congestion Control in TCP Outline Overview of RENO TCP Reacting to Congestion SS/AIMD example CS 640 1 TCP Congestion Control The idea of TCP congestion control is for each source to determine how much

More information

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

Recap. TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness Recap TCP connection setup/teardown Sliding window, flow control Retransmission timeouts Fairness, max-min fairness AIMD achieves max-min fairness 81 Feedback Signals Several possible signals, with different

More information

CSE 123A Computer Networks

CSE 123A Computer Networks CSE 123A Computer Networks Winter 2005 Lecture 14 Congestion Control Some images courtesy David Wetherall Animations by Nick McKeown and Guido Appenzeller The bad news and the good news The bad news: new

More information

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers

Overview. TCP & router queuing Computer Networking. TCP details. Workloads. TCP Performance. TCP Performance. Lecture 10 TCP & Routers Overview 15-441 Computer Networking TCP & router queuing Lecture 10 TCP & Routers TCP details Workloads Lecture 10: 09-30-2002 2 TCP Performance TCP Performance Can TCP saturate a link? Congestion control

More information

Internet Networking recitation #10 TCP New Reno Vs. Reno

Internet Networking recitation #10 TCP New Reno Vs. Reno recitation #0 TCP New Reno Vs. Reno Spring Semester 200, Dept. of Computer Science, Technion 2 Introduction Packet Loss Management TCP Reno (RFC 258) can manage a loss of at most one packet from a single

More information

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri

Department of Computer and IT Engineering University of Kurdistan. Transport Layer. By: Dr. Alireza Abdollahpouri Department of Computer and IT Engineering University of Kurdistan Transport Layer By: Dr. Alireza Abdollahpouri TCP/IP protocol suite 2 Transport Layer The transport layer is responsible for process-to-process

More information

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

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 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 http://inst.eecs.berkeley.edu/~ee122/ Materials with thanks

More information

TCP Congestion Control

TCP Congestion Control 6.033, Spring 2014 TCP Congestion Control Dina Katabi & Sam Madden nms.csail.mit.edu/~dina Sharing the Internet How do you manage resources in a huge system like the Internet, where users with different

More information

Outline. User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Transport layer (cont.) Transport layer. Background UDP.

Outline. User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Transport layer (cont.) Transport layer. Background UDP. Outline User Datagram Protocol (UDP) Transmission Control Protocol (TCP) Matti Siekkinen 22.09.2009 Background UDP Role and Functioning TCP Basics Error control Flow control Congestion control Transport

More information

Congestion Control in Communication Networks

Congestion Control in Communication Networks Congestion Control in Communication Networks Introduction Congestion occurs when number of packets transmitted approaches network capacity Objective of congestion control: keep number of packets below

More information

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

Computer Networks. Course Reference Model. Topic. Congestion What s the hold up? Nature of Congestion. Nature of Congestion 1/5/2015. Course Reference Model Computer Networks 7 Application Provides functions needed by users Zhang, Xinyu Fall 204 4 Transport Provides end-to-end delivery 3 Network Sends packets over multiple links School

More information

Operating Systems and Networks. Network Lecture 10: Congestion Control. Adrian Perrig Network Security Group ETH Zürich

Operating Systems and Networks. Network Lecture 10: Congestion Control. Adrian Perrig Network Security Group ETH Zürich Operating Systems and Networks Network Lecture 10: Congestion Control Adrian Perrig Network Security Group ETH Zürich Where we are in the Course More fun in the Transport Layer! The mystery of congestion

More information

Where we are in the Course. Topic. Nature of Congestion. Nature of Congestion (3) Nature of Congestion (2) Operating Systems and Networks

Where we are in the Course. Topic. Nature of Congestion. Nature of Congestion (3) Nature of Congestion (2) Operating Systems and Networks Operating Systems and Networks Network Lecture 0: Congestion Control Adrian Perrig Network Security Group ETH Zürich Where we are in the Course More fun in the Transport Layer! The mystery of congestion

More information

Flow and Congestion Control

Flow and Congestion Control CE443 Computer Networks Flow and Congestion Control Behnam Momeni Computer Engineering Department Sharif University of Technology Acknowledgments: Lecture slides are from Computer networks course thought

More information

Networked Systems and Services, Fall 2018 Chapter 3

Networked Systems and Services, Fall 2018 Chapter 3 Networked Systems and Services, Fall 2018 Chapter 3 Jussi Kangasharju Markku Kojo Lea Kutvonen 4. Transport Layer Reliability with TCP Transmission Control Protocol (TCP) RFC 793 + more than hundred other

More information

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

Homework 3 50 points. 1. Computing TCP's RTT and timeout values (10 points) Homework 3 50 points 1. Computing TCP's RTT and timeout values (10 points) Suppose that TCP's current estimated values for the round trip time (estimatedrtt) and deviation in the RTT (DevRTT) are 400 msec

More information

The Transport Layer Reliability

The Transport Layer Reliability The Transport Layer Reliability CS 3, Lecture 7 http://www.cs.rutgers.edu/~sn4/3-s9 Srinivas Narayana (slides heavily adapted from text authors material) Quick recap: Transport Provide logical communication

More information

TCP congestion control:

TCP congestion control: TCP congestion control: Probing for usable bandwidth: Ideally: transmit as fast as possible (cwnd as large as possible) without loss Increase cwnd until loss (congestion) Loss: decrease cwnd, then begin

More information

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

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, Development of reliable protocol Sliding window protocols Outline Development of reliable protocol Sliding window protocols Go-Back-N, Selective Repeat Protocol performance Sockets, UDP, TCP, and IP UDP operation TCP operation connection management flow control

More information

TCP Congestion Control 65KB W

TCP Congestion Control 65KB W TCP Congestion Control 65KB W TO 3DA 3DA TO 0.5 0.5 0.5 0.5 3 3 1 SS SS CA SS CA TCP s Congestion Window Maintenance TCP maintains a congestion window (cwnd), based on packets Sender s window is limited

More information

Transport Protocols and TCP

Transport Protocols and TCP Transport Protocols and TCP Functions Connection establishment and termination Breaking message into packets Error recovery ARQ Flow control Multiplexing, de-multiplexing Transport service is end to end

More information

Detecting half-open connections. Observed TCP problems

Detecting half-open connections. Observed TCP problems Detecting half-open connections TCP A TCP B 1. (CRASH) 2. CLOSED 3. SYN-SENT 4. (!!) 5. SYN-SENT 6. SYN-SENT 7. SYN-SENT

More information

6.033 Computer System Engineering

6.033 Computer System Engineering MIT OpenCourseWare http://ocw.mit.edu 6.033 Computer System Engineering Spring 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. L13: Sharing in network

More information

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

CSE/EE 461. TCP congestion control. Last Lecture. This Lecture. Focus How should senders pace themselves to avoid stressing the network? CSE/EE 461 TCP congestion control Last Lecture Focus How should senders pace themselves to avoid stressing the network? Topics congestion collapse congestion control Application Presentation Session Transport

More information

CS Networks and Distributed Systems. Lecture 10: Congestion Control

CS Networks and Distributed Systems. Lecture 10: Congestion Control CS 3700 Networks and Distributed Systems Lecture 10: Congestion Control Revised 2/9/2014 Transport Layer 2 Application Presentation Session Transport Network Data Link Physical Function:! Demultiplexing

More information

Chapter 3- parte B outline

Chapter 3- parte B outline Chapter 3- parte B outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport: UDP 3.4 principles of reliable data transfer 3.5 connection-oriented transport:

More information

Computer Networking

Computer Networking 15-441 Computer Networking Lecture 17 TCP Performance & Future Eric Anderson Fall 2013 www.cs.cmu.edu/~prs/15-441-f13 Outline TCP modeling TCP details 2 TCP Performance Can TCP saturate a link? Congestion

More information

Fall 2012: FCM 708 Bridge Foundation I

Fall 2012: FCM 708 Bridge Foundation I Fall 2012: FCM 708 Bridge Foundation I Prof. Shamik Sengupta Instructor s Website: http://jjcweb.jjay.cuny.edu/ssengupta/ Blackboard Website: https://bbhosted.cuny.edu/ Intro to Computer Networking Transport

More information

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

Outline. TCP: Overview RFCs: 793, 1122, 1323, 2018, steam: r Development of reliable protocol r Sliding window protocols Outline r Development of reliable protocol r Sliding window protocols m Go-Back-N, Selective Repeat r Protocol performance r Sockets, UDP, TCP, and IP r UDP operation r TCP operation m connection management

More information

ECE 610: Homework 4 Problems are taken from Kurose and Ross.

ECE 610: Homework 4 Problems are taken from Kurose and Ross. ECE 610: Homework 4 Problems are taken from Kurose and Ross. Problem 1: Host A and B are communicating over a TCP connection, and Host B has already received from A all bytes up through byte 248. Suppose

More information

8. TCP Congestion Control

8. TCP Congestion Control 8. TCP Congestion Control 1 TCP Congestion Control Slow-start increase Multiplicative decrease Congestion avoidance Measurement of variation Exponential timer backoff 2002 Yanghee Choi 2 Congestion Control

More information

UNIT IV -- TRANSPORT LAYER

UNIT IV -- TRANSPORT LAYER UNIT IV -- TRANSPORT LAYER TABLE OF CONTENTS 4.1. Transport layer. 02 4.2. Reliable delivery service. 03 4.3. Congestion control. 05 4.4. Connection establishment.. 07 4.5. Flow control 09 4.6. Transmission

More information

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

TCP Review. Carey Williamson Department of Computer Science University of Calgary Winter 2018 TCP Review Carey Williamson Department of Computer Science University of Calgary Winter 2018 Credit: Much of this content came courtesy of Erich Nahum (IBM Research) The TCP Protocol Connection-oriented,

More information

CS419: Computer Networks. Lecture 10, Part 3: Apr 13, 2005 Transport: TCP performance

CS419: Computer Networks. Lecture 10, Part 3: Apr 13, 2005 Transport: TCP performance : Computer Networks Lecture 10, Part 3: Apr 13, 2005 Transport: TCP performance TCP performance We ve seen how TCP the protocol works But there are a lot of tricks required to make it work well Indeed,

More information

Lecture 8. TCP/IP Transport Layer (2)

Lecture 8. TCP/IP Transport Layer (2) Lecture 8 TCP/IP Transport Layer (2) Outline (Transport Layer) Principles behind transport layer services: multiplexing/demultiplexing principles of reliable data transfer learn about transport layer protocols

More information

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

CSCI-1680 Transport Layer III Congestion Control Strikes Back Rodrigo Fonseca CSCI-1680 Transport Layer III Congestion Control Strikes Back Rodrigo Fonseca Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti, Ion Stoica Last Time Flow Control Congestion Control

More information

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput

Topics. TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput Topics TCP sliding window protocol TCP PUSH flag TCP slow start Bulk data throughput 2 Introduction In this chapter we will discuss TCP s form of flow control called a sliding window protocol It allows

More information

Congestion control in TCP

Congestion control in TCP Congestion control in TCP If the transport entities on many machines send too many packets into the network too quickly, the network will become congested, with performance degraded as packets are delayed

More information

ADVANCED COMPUTER NETWORKS

ADVANCED COMPUTER NETWORKS ADVANCED COMPUTER NETWORKS Congestion Control and Avoidance 1 Lecture-6 Instructor : Mazhar Hussain CONGESTION CONTROL When one part of the subnet (e.g. one or more routers in an area) becomes overloaded,

More information

CSC 8560 Computer Networks: TCP

CSC 8560 Computer Networks: TCP CSC 8560 Computer Networks: TCP Professor Henry Carter Fall 2017 Project 2: mymusic You will be building an application that allows you to synchronize your music across machines. The details of which are

More information

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing

CS519: Computer Networks. Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing : Computer Networks Lecture 5, Part 1: Mar 3, 2004 Transport: UDP/TCP demux and flow control / sequencing Recall our protocol layers... ... and our protocol graph IP gets the packet to the host Really

More information

Networked Systems and Services, Fall 2017 Reliability with TCP

Networked Systems and Services, Fall 2017 Reliability with TCP Networked Systems and Services, Fall 2017 Reliability with TCP Jussi Kangasharju Markku Kojo Lea Kutvonen 4. Transmission Control Protocol (TCP) RFC 793 + more than hundred other RFCs TCP Loss Recovery

More information

Congestion Collapse in the 1980s

Congestion Collapse in the 1980s Congestion Collapse Congestion Collapse in the 1980s Early TCP used fixed size window (e.g., 8 packets) Initially fine for reliability But something happened as the ARPANET grew Links stayed busy but transfer

More information

Answers to Sample Questions on Transport Layer

Answers to Sample Questions on Transport Layer Answers to Sample Questions on Transport Layer 1) Which protocol Go-Back-N or Selective-Repeat - makes more efficient use of network bandwidth? Why? Answer: Selective repeat makes more efficient use of

More information

Introduc)on to Computer Networks

Introduc)on to Computer Networks 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

More information

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

TCP: Transmission Control Protocol UDP: User Datagram Protocol   TCP - 1 TCP/IP Family of Protocols (cont.) TCP: Transmission Control Protocol UDP: User Datagram Protocol www.comnets.uni-bremen.de TCP - 1 Layer 4 Addressing: Port Numbers To talk to another port, a sender needs

More information

CE693 Advanced Computer Networks

CE693 Advanced Computer Networks CE693 Advanced Computer Networks Review 2 Transport Protocols Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan Seshan at CMU. When slides are obtained

More information

Lecture 15: TCP over wireless networks. Mythili Vutukuru CS 653 Spring 2014 March 13, Thursday

Lecture 15: TCP over wireless networks. Mythili Vutukuru CS 653 Spring 2014 March 13, Thursday Lecture 15: TCP over wireless networks Mythili Vutukuru CS 653 Spring 2014 March 13, Thursday TCP - recap Transport layer TCP is the dominant protocol TCP provides in-order reliable byte stream abstraction

More information

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

Congestion. Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets limited resources Congestion Source 1 Source 2 10-Mbps Ethernet 100-Mbps FDDI Router 1.5-Mbps T1 link Destination Can t sustain input rate > output rate Issues: - Avoid congestion - Control congestion - Prioritize who gets

More information

ECE697AA Lecture 3. Today s lecture

ECE697AA Lecture 3. Today s lecture ECE697AA Lecture 3 Transport Layer: TCP and UDP Tilman Wolf Department of Electrical and Computer Engineering 09/09/08 Today s lecture Transport layer User datagram protocol (UDP) Reliable data transfer

More information

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

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 11, 2018 CMSC 417 Computer Networks Prof. Ashok K Agrawala 2018 Ashok Agrawala Message, Segment, Packet, and Frame host host HTTP HTTP message HTTP TCP TCP segment TCP router router IP IP packet IP IP packet IP

More information

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control

Chapter 6. What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control Chapter 6 What happens at the Transport Layer? Services provided Transport protocols UDP TCP Flow control Congestion control OSI Model Hybrid Model Software outside the operating system Software inside

More information

This Lecture: Congestion Control : Computer Networking. Introduction to TCP. Key Things You Should Know Already. Congestion Control

This Lecture: Congestion Control : Computer Networking. Introduction to TCP. Key Things You Should Know Already. Congestion Control This Lecture: Congestion Control Congestion Control 15-744: Computer Networking L-4 TCP Assigned Reading [Chiu & Jain] Analysis of Increase and Decrease Algorithms for Congestion Avoidance in Computer

More information

Transport Layer (Congestion Control)

Transport Layer (Congestion Control) Transport Layer (Congestion Control) Where we are in the Course Moving on up to the Transport Layer! Application Transport Network Link Physical CSE 461 University of Washington 2 Congestion Collapse Congestion

More information