Congestion Control Tanenbaum 5.3, 6.5. 6/12/2015Congestion Control (A Loss Based Technique: TCP)2 What? Why? Congestion occurs when –there is no reservation.

Slides:



Advertisements
Similar presentations
Michele Pagano – A Survey on TCP Performance Evaluation and Modeling 1 Department of Information Engineering University of Pisa Network Telecomunication.
Advertisements

TCP/IP Over Lossy Links - TCP SACK without Congestion Control.
01. Apr INF-3190: Congestion Control Congestion Control Foreleser: Carsten Griwodz
Congestion Control Tanenbaum 5.3 Tanenbaum 6.5. Congestion Control Network Layer – Congestion control point to point Transport Layer – Congestion control.
24-1 Chapter 24. Congestion Control and Quality of Service (part 1) 23.1 Data Traffic 23.2 Congestion 23.3 Congestion Control 23.4 Two Examples.
1 Transport Protocols & TCP CSE 3213 Fall April 2015.
1 TCP Congestion Control. 2 TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement.
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
1 End to End Bandwidth Estimation in TCP to improve Wireless Link Utilization S. Mascolo, A.Grieco, G.Pau, M.Gerla, C.Casetti Presented by Abhijit Pandey.
Ahmed El-Hassany CISC856: CISC 856 TCP/IP and Upper Layer Protocols Slides adopted from: Injong Rhee, Lisong Xu.
Introduction 1 Lecture 14 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Transport Layer 3-1 outline r TCP m segment structure m reliable data transfer m flow control m congestion control.
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
TDC365 Spring 2001John Kristoff - DePaul University1 Internetworking Technologies Transmission Control Protocol (TCP)
Transport Layer3-1 Congestion Control. Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much.
Transport Layer 3-1 Outline r TCP m Congestion control m Flow control.
1 TCP Transport Control Protocol Reliable In-order delivery Flow control Responds to congestion “Nice” Protocol.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
TCP in Heterogeneous Network Md. Ehtesamul Haque # P.
CMPE 257 Spring CMPE 257: Wireless and Mobile Networking Spring 2005 E2E Protocols (point-to-point)
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 TCP (Part II) Shivkumar Kalyanaraman Rensselaer Polytechnic Institute
Copyright © 2005 Department of Computer Science CPSC 641 Winter Tutorial: TCP 101 The Transmission Control Protocol (TCP) is the protocol that sends.
Introduction 1 Lecture 14 Transport Layer (Congestion Control) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science.
TCP: flow and congestion control. Flow Control Flow Control is a technique for speed-matching of transmitter and receiver. Flow control ensures that a.
Lect3..ppt - 09/12/04 CIS 4100 Systems Performance and Evaluation Lecture 3 by Zornitza Genova Prodanoff.
Transport Layer 4 2: Transport Layer 4.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Principles of Congestion Control Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control!
Chapter 12 Transmission Control Protocol (TCP)
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
27th, Nov 2001 GLOBECOM /16 Analysis of Dynamic Behaviors of Many TCP Connections Sharing Tail-Drop / RED Routers Go Hasegawa Osaka University, Japan.
HighSpeed TCP for High Bandwidth-Delay Product Networks Raj Kettimuthu.
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
Lecture 9 – More TCP & Congestion Control
What is TCP? Connection-oriented reliable transfer Stream paradigm
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Computer Networking Lecture 18 – More TCP & Congestion Control.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
CS640: Introduction to Computer Networks Aditya Akella Lecture 15 TCP – III Reliability and Implementation Issues.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Principles of Congestion Control Some slides.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
Janey C. Hoe Laboratory for Computer Science at MIT 노상훈, Pllab.
Recap of Lecture 19 If symptoms persist, please consult Dr Jacobson.
TCP Congestion Control 컴퓨터공학과 인공지능 연구실 서 영우. TCP congestion control2 Contents 1. Introduction 2. Slow-start 3. Congestion avoidance 4. Fast retransmit.
TCP transfers over high latency/bandwidth networks & Grid DT Measurements session PFLDnet February 3- 4, 2003 CERN, Geneva, Switzerland Sylvain Ravot
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Congestion Control 0.
Peer-to-Peer Networks 13 Internet – The Underlay Network
TCP as a Reliable Transport. How things can go wrong… Lost packets Corrupted packets Reordered packets …Malicious packets…
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
TCP over Wireless PROF. MICHAEL TSAI 2016/6/3. TCP Congestion Control (TCP Tahoe) Only ACK correctly received packets Congestion Window Size: Maximum.
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
CS450 – Introduction to Networking Lecture 19 – Congestion Control (2)
Topics discussed in this section:
Chapter 3 outline 3.1 transport-layer services
Introduction to Congestion Control
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Lecture 19 – TCP Performance
CS640: Introduction to Computer Networks
Transport Layer: Congestion Control
TCP flow and congestion control
TCP: Transmission Control Protocol Part II : Protocol Mechanisms
Presentation transcript:

Congestion Control Tanenbaum 5.3, 6.5

6/12/2015Congestion Control (A Loss Based Technique: TCP)2 What? Why? Congestion occurs when –there is no reservation –Demand exceeds Resources If congestion persists, resources must be increased If congestion happens in short bursts, buffers can avoid packet losses to some extent.

6/12/2015Congestion Control (A Loss Based Technique: TCP)3 Congestion Control, How? Network Layer –Congestion control point to point Transport Layer –Congestion control end-to-end Packets Delivered Packets Sent Maximum capacity of bottleneck link Objective Congestion Congestion Collapse

6/12/2015Congestion Control (A Loss Based Technique: TCP)4 Network As Black Box Network/ Network Element Load State variable u What can U be? Round trip time (e2e) Packet loss (e2e or p2p) Link utilization (p2p) Queue size (p2p) Throughput (e2e)

6/12/2015Congestion Control (A Loss Based Technique: TCP)5 Congestion Control in Packet Switched Networks Monitor some system state variable u u may be link utilization (p2p), loss rate (p2p or e2e) Instantaneous u now Average value u computed as: –u new = .u last + (1-  ) u now –0 <=  <= 1 Use of thresholds

6/12/2015Congestion Control (A Loss Based Technique: TCP)6 Congestion Control: Strategies Open loop –Prevent congestion by design –E.g., resource reservation, admission control Closed loop –Monitor some characteristics of system –Inform key elements that can take action –Adjust system operation whenever needed

End-to-end Congestion Control

6/12/2015Congestion Control (A Loss Based Technique: TCP)8 Network As Black Box Network Window Size Or Rate Packet Loss, Round trip time, or Throughput

Packet Loss Based Congestion Control TCP Congestion Control (Read Van Jacobson, “Congestion Avoidance and Control,” Sigcomm’88)

6/12/2015Congestion Control (A Loss Based Technique: TCP)10 System (Connection) In Equilibrium Time Bandwidth High Speed LANs Slow long-haul link

6/12/2015Congestion Control (A Loss Based Technique: TCP)11 Keeping A System in Equilibrium Suppose that a system is in equilibrium, how to keep it there? –If there are no losses, easy: just send a packet whenever an ack is received. –If losses occur, we need to distinguish between delayed packets (link capacity shortage) and lost packets  need an accurate retransmission timer.

6/12/2015Congestion Control (A Loss Based Technique: TCP)12 How to Get A System To Equilibrium? At the beginning, no packet is sent yet. Propose a strategy. Let us discuss some strategies: Strategy 1: Blast a guessed number of packets. Strategy 2: Start with sending one packet (WS=1) and wait 1. when ack is received, send two packets (WS=2) 2.For each ack, send one packet, plus one packet when all window is acked (WS=3)

6/12/2015Congestion Control (A Loss Based Technique: TCP)13 How to Get A System To Equilibrium? Strategy 2 may be inefficient Consider a download of a 21 KB file using a 1 KB segment size over a 45 Mbps link with 25ms one way latency. Compute the efficiency of such a transfer

6/12/2015Congestion Control (A Loss Based Technique: TCP)14 How to Get A System To Equilibrium? (Strategy 2) TimeWSSegments DeliveredThroughputEfficiency RTT11160 Kbps0.3% 2 RTT23320 Kbps0.7% 3 RTT36480 Kbps1.0% 4 RTT Kbps1.4% 5 RTT Kbps1.7% 6 RTT Kbps2.1%

6/12/2015Congestion Control (A Loss Based Technique: TCP)15 A Faster Strategy: Slow Start For each acked packet, increase window by 1

6/12/2015Congestion Control (A Loss Based Technique: TCP)16 Slow-Start to Get A System To Equilibrium? (Strategy 2) TimeWSSegments DeliveredThroughputEfficiency RTT11160 Kbps0.3% 2 RTT23320 Kbps0.5% 3 RTT47640 Kbps1.4% 4 RTT Mbps2.8% 5 RTT RTT

6/12/2015Congestion Control (A Loss Based Technique: TCP)17 A System in Equilibrium May UNDERUTILIZE the Link Capacity If losses do not happen, this is an indication that link capacity may not be fully utilized What to do? –Slightly INCREASE the window size after a complete window of data made it safely through the network (this happens every round trip time.)  Congestion avoidance phase

6/12/2015Congestion Control (A Loss Based Technique: TCP)18 TCP Congestion Avoidance and Control Start with congestion window=1 (CWND) Use slow start until CWND reaches the threshold sstresh (sstresh is half the congestion window vale reached when last loss occured) From CWND=sstresh, use congestion avoidance

6/12/2015Congestion Control (A Loss Based Technique: TCP)19 Example Round trip time CWND

6/12/2015Congestion Control (A Loss Based Technique: TCP)20 Code When a packet is acked if cwnd < ssthresh* { /* Slow-Start: increment cwnd every ack*/ cwnd = cwnd + 1; } else { /* Congestion avoidance: increment cwnd every RTT */ cwnd = cwnd + 1/cwnd } When a packet is lost (timeout) ssthresh = cwnd / 2; cwnd = init_cwnd; * ssthresh may be dynamically adjusted at start-up (see Janey Hoe work)

6/12/2015Congestion Control (A Loss Based Technique: TCP)21 Fast Recovery/ Fast Retransmit When 3 rd dupack received: –Fast Recovery: ssthresh = cwnd / 2; cwnd = ssthresh + 3; –Fast Retransmit: Retransmit missing packet without waiting for timeout

6/12/2015Congestion Control (A Loss Based Technique: TCP)22 Example Round trip time CWND

6/12/2015Congestion Control (A Loss Based Technique: TCP)23 TCP Performance: A Simple Derivation Mathis et. Al: "The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm” Assume –a very simple loss model: periodical loss with loss rate p –No timeout –Neglect the start-up behavior

6/12/2015Congestion Control (A Loss Based Technique: TCP)24 TCP Performance: A Simple Derivation (2) cwnd W Startup Before Stabiliza. 0 loss (RTT) W/2 loss W 3W/2 loss W/2

6/12/2015Congestion Control (A Loss Based Technique: TCP)25 TCP Performance (3) Facts: –A loss happens whenever packets are sent (periodical loss model). –A loss happens every RTTs –The total number of packets sent every cycle (time between consecutive 2 losses) is the area under the curve. –The area is

6/12/2015Congestion Control (A Loss Based Technique: TCP)26 TCP Performance (4) Facts (cont’d): –The number of packets delivered per cycle is – Solving, –Throughput = # packets received per cycle/cycle duration –Throughput = (packets per second)

6/12/2015Congestion Control (A Loss Based Technique: TCP)27 Taking Into Account Timeout Jitendra Padhye et. Al “Modeling TCP Reno Performance: A Simple Model and Its Empirical Validation”. Wmax : Max window size (flow control) RTT: round trip time b = # of packets received by an ack. p: probability of packet loss To= Duration of first timeout

6/12/2015Congestion Control (A Loss Based Technique: TCP)28 Shortcomings/Limits of TCP TCP is not suited for streams => how to exercise TCP like congestion control on streams (UDP)? TCP, as is, will not scale well to very high speeds => How to adapt TCP to very high speed networks?

6/12/2015Congestion Control (A Loss Based Technique: TCP)29 Impact of Policies on Congestion Control Link Layer policies –Retransmission –Out-of-order caching –Acknowledgement –Flow control

6/12/2015Congestion Control (A Loss Based Technique: TCP)30 Impact of Policies on Congestion Control (2) Network Layer policies –Virtual circuit/datagram –Packet scheduling –Queue management –Routing algorithm –Packet lifetime management

6/12/2015Congestion Control (A Loss Based Technique: TCP)31 Impact of Policies on Congestion Control (3) Transport Layer policies –Retransmission –Out-of-order caching –Acknowledgement –Flow control –Timeout determination

6/12/2015Congestion Control (A Loss Based Technique: TCP)32 Congestion Control in Packet Switched Networks Monitor some system state variable u u may be link utilization, loss rate Instantaneous u now Average value u computed as: –u new = .u last + (1-  ) u now –0 <=  <= 1 Use of thresholds

6/12/2015Congestion Control (A Loss Based Technique: TCP)33 Techniques at Link Layer DECBit (Warning bit) Source Quench packets (choke packets) Hop-by-hop choke packets Load shedding RED