Proportional Rate Reduction for TCP

Similar documents
The Evolution of Transport Planning

SIDRA INTERSECTION 6.1 UPDATE HISTORY

Calculation of Trail Usage from Counter Data

Transit Signal Preemption and Priority Treatments

CHAPTER 10 TOTAL RECREATIONAL FISHING DAMAGES AND CONCLUSIONS

Sontek RiverSurveyor Test Plan Prepared by David S. Mueller, OSW February 20, 2004

WildCat RF unit (0.5W), full 32-byte transmissions with built-in checksum

Traffic circles. February 9, 2009

PIG MOTION AND DYNAMICS IN COMPLEX GAS NETWORKS. Dr Aidan O Donoghue, Pipeline Research Limited, Glasgow

Ratio Deco. Overview. Global Perspective

INF.41/Add.1/Rev.1. Economic Commission for Europe Inland Transport Committee

Journal of Chemical and Pharmaceutical Research, 2014, 6(3): Research Article

Effects of Traffic Signal Retiming on Safety. Peter J. Yauch, P.E., PTOE Program Manager, TSM&O Albeck Gerken, Inc.

CITY OF ALPHARETTA DOWNTOWN MASTER PLAN TRAFFIC EVALUATION

Parsimonious Linear Fingerprinting for Time Series

Review of Considerations and Requirements for Automated Enforcement

Queue analysis for the toll station of the Öresund fixed link. Pontus Matstoms *

12. School travel Introduction. Part III Chapter 12. School travel

Tech Suit Survey (Virginia LMSC)

Designing a Traffic Circle By David Bosworth For MATH 714

CALCULATING THE SPEED OF SOUND IN NATURAL GAS USING AGA REPORT NO Walnut Lake Rd th Street Houston TX Garner, IA 50438

ENHANCED PARKWAY STUDY: PHASE 2 CONTINUOUS FLOW INTERSECTIONS. Final Report

Traffic Impact Study. Westlake Elementary School Westlake, Ohio. TMS Engineers, Inc. June 5, 2017

Chapter Capacity and LOS Analysis of a Signalized I/S Overview Methodology Scope Limitation

1. OVERVIEW OF METHOD

Cisco SIP Proxy Server (CSPS) Compliance Information

Improving the Bus Network through Traffic Signalling. Henry Axon Transport for London

Contingent Valuation Methods

PRELAB: COLLISIONS IN TWO DIMENSIONS

Using Markov Chains to Analyze a Volleyball Rally

EEC 686/785 Modeling & Performance Evaluation of Computer Systems. Lecture 6. Wenbing Zhao. Department of Electrical and Computer Engineering

Wildlife Ad Awareness & Attitudes Survey 2015

An Architectural Approach for Improving Availability in Web Services

Outline. Terminology. EEC 686/785 Modeling & Performance Evaluation of Computer Systems. Lecture 6. Steps in Capacity Planning and Management

Visualization of a crowded block of traffic on an entire highway.

On street parking manoeuvres and their effects on design

Fail Operational Controls for an Independent Metering Valve

Exploration Series. MODEL ROCKET Interactive Physics Simulation Page 01

FieldStrength. Using MotionTrak for motion correction in body imaging. Application tips

We can use a 2 2 array to show all four situations that can arise in a single play of this game, and the results of each situation, as follows:

EVALUATION OF METHODOLOGIES FOR THE DESIGN AND ANALYSIS OF FREEWAY WEAVING SECTIONS. Alexander Skabardonis 1 and Eleni Christofa 2

A Hare-Lynx Simulation Model

If a fair coin is tossed 10 times, what will we see? 24.61% 20.51% 20.51% 11.72% 11.72% 4.39% 4.39% 0.98% 0.98% 0.098% 0.098%

We can use a 2 2 array to show all four situations that can arise in a single play of this game, and the results of each situation, as follows:

Olympus Production Contour Plot

Autodesk Moldflow Communicator Process settings

Arterial Traffic Analysis Actuated Signal Control

Unit 7 Speed, Travel Time and Delay Studies

AccuRAID iscsi Auto-Tiering Best Practice

Shearwater GF Computer

Climate Change Scenarios for the Agricultural and Hydrological Impact Studies

Author s Name Name of the Paper Session. Positioning Committee. Marine Technology Society. DYNAMIC POSITIONING CONFERENCE September 18-19, 2001

DESIGN AND ANALYSIS OF ALGORITHMS (DAA 2017)

At each type of conflict location, the risk is affected by certain parameters:

TR Electronic Pressure Regulator. User s Manual

EXPERIMENTAL RESULTS OF GUIDED WAVE TRAVEL TIME TOMOGRAPHY

Dunedin One Way System (SH1) Cycle Survey Report

Taking Your Class for a Walk, Randomly

by Robert Gifford and Jorge Aranda University of Victoria, British Columbia, Canada

Boyle s Law: Pressure-Volume Relationship in Gases

Dick Bowdler Acoustic Consultant

Evaluation of the ACC Vehicles in Mixed Traffic: Lane Change Effects and Sensitivity Analysis

TRAFFIC IMPACT STUDY CRITERIA

Marine Renewables Industry Association. Marine Renewables Industry: Requirements for Oceanographic Measurements, Data Processing and Modelling

Effect of Supplemental Signal on Start-Up Lost Time at Signalized Intersection

INTERNATIONAL HYDROGRAPHIC SURVEY STANDARDS

QUASI COUPLET: PRESERVING MOBILITY WHILE FREEING URBAN STREET SPACE

Climate Change Scenarios for the Agricultural and Hydrological Impact Studies

The calibration of vehicle and pedestrian flow in Mangalore city using PARAMICS

Exercise 3. Power Versus Wind Speed EXERCISE OBJECTIVE DISCUSSION OUTLINE. Air density DISCUSSION

Quality Planning for Software Development

Stats 2002: Probabilities for Wins and Losses of Online Gambling

ATTACHMENT O WIPP MINE VENTILATION RATE MONITORING PLAN

COLLISION AVOIDANCE SYSTEM FOR BUSES, MANAGING PEDESTRIAN DETECTION AND ALERTS NEAR BUS STOPS

Verification and Validation Pathfinder Release 0730 x64

UNITY 2 TM. Air Server Series 2 Operators Manual. Version 1.0. February 2008

HURRICANE SANDY LIMITED REEVALUATION REPORT UNION BEACH, NEW JERSEY DRAFT ENGINEERING APPENDIX SUB APPENDIX D SBEACH MODELING

Real-time Analysis of Industrial Gases with Online Near- Infrared Spectroscopy

NCSS Statistical Software

The Game of Yinsh (Phase II)

Traffic Signals. Part I

Revised OECD Price Benchmarking Baskets 2006

INTRODUCTION Page 2 SETTINGS

Introduction to Scientific Notation & Significant Figures. Packet #6

Access Location, Spacing, Turn Lanes, and Medians

Figure 2: Principle of GPVS and ILIDS.

Applying Bi-objective Shortest Path Methods to Model Cycle Route-choice

The Intrinsic Value of a Batted Ball Technical Details

Predicted Dispense Volume vs. Gravimetric Measurement for the MICROLAB 600. November 2010

An Analysis of Reducing Pedestrian-Walking-Speed Impacts on Intersection Traffic MOEs

Magnolia Place. Traffic Impact Analysis. Prepared for: City of San Mateo. Prepared by: Hexagon Transportation Consultants, Inc.

US Lacrosse Men s Game Post Collegiate (POCO) Club Rules

CS 4649/7649 Robot Intelligence: Planning

Equation 1: F spring = kx. Where F is the force of the spring, k is the spring constant and x is the displacement of the spring. Equation 2: F = mg

CS 4649/7649 Robot Intelligence: Planning

Low Level Cycle Signals with an early release Appendices

Tokyo: Simulating Hyperpath-Based Vehicle Navigations and its Impact on Travel Time Reliability

Tools for safety management Effectiveness of risk mitigation measures. Bernhard KOHL

Chapter 2: Modeling Distributions of Data

Figure 1: A hockey puck travels to the right in three different cases.

Transcription:

Proportional Rate Reduction for TCP draft-mathis-tcpm-proportional-rate-reduction-01 Matt Mathis, Nandita Dukkipati, Yuchung Cheng {mattmathis, nanditad, ycheng}@google.com TCPM, IETF-81 July 26, 2011

Motivation Two widely deployed algorithms in loss recovery: RFC 3517 fast recovery and Rate Halving. Both are prone to timeouts in some situations. RFC 3517 fast recovery waits for half of the ACKs to pass before sending data. Rate halving does not compensate for implicit cwnd reduction under large losses. Goals of Proportional Rate Reduction. Reduce timeouts by avoiding excessive window reductions. Converge to cwnd chosen by congestion control.

Proportional Rate Reduction with Slowstart Reduction Bound Two separate phases: pipe > ssthresh Proportional rate reduction (PRR) algorithm: Patterned after rate halving but at rate chosen by CC Main idea: sending_rate = (CC_reduction_factor) * (data_rate_at_the_receiver) pipe < ssthresh SlowStart Reduction Bound (SSRB) Open window by one segment per ACK Main purpose: bring pipe back up to ssthresh

Slowstart while in Recovery? RFC3517 sends bursts! Consider: It sends (ssthresh-pipe) segments On every ACK, when positive Start with pipe=cwnd=100 segments Loose segments 1-90 ACK from segment 93 can trigger 40 segments Not conservative Proposed behavior (SSRB) Pure packet conservation, plus one extra segment Send the same quantity of data as ACK'd +1 For the next ~40 ACKs

Algorithm comparisons - Single loss At beginning: cwnd = FlightSize = pipe = 20 RFC 3517 ack# X 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 cwnd: 20 20 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 pipe: 19 19 18 18 17 16 15 14 13 12 11 10 10 10 10 10 10 10 10 sent: N N R N N N N N N N N Rate halving (Linux) ack# X 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 cwnd: 20 20 19 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 11 pipe: 19 19 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 11 10 sent: N N R N N N N N N N N PRR ack# X 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 pipe: 19 19 18 18 18 17 17 16 16 15 15 14 14 13 13 12 12 11 10 sent: N N R N N N N N N N N RB: s s

Algorithm comparisons - 15 Losses At beginning: cwnd = FlightSize = pipe = 20 RFC 3517 ack# X X X X X X X X X X X X X X X 15 16 17 18 19 cwnd: 20 20 11 11 11 pipe: 19 19 4 10 10 sent: N N 7R R R Rate Halving (Linux) ack# X X X X X X X X X X X X X X X 15 16 17 18 19 cwnd: 20 20 5 5 5 pipe: 19 19 4 4 4 sent: N N R R R PRR-SSRB ack# X X X X X X X X X X X X X X X 15 16 17 18 19 pipe: 19 19 4 5 6 sent: N N 2R 2R 2R

Is the high loss case commom? YES Statistics of pipe vs ssthresh at FR pipe > ssthresh: 45% pipe = ssthresh: 13% pipe < ssthresh: 32% (also have distribution data on pipe-ssthresh) Losses exceed net CC window reduction for 32% of FR RFC 3517 would send a burst Contributing causes: CUBIC (only 30% window reduction) Better SACK retransmit algorithms Still unexpectedly large

Measurement setup Implemented in Linux 2.6 Experiment on Google Web servers: CUBIC, limited transmit, lost retrans detect Compare: Rate halving (Linux default), RFC 3517, PRR-SSRB Mixed services, excluding streaming video (Post experiment) Currently under test to go Google wide

Measurement Summary PRR-SSRB does best RFC 3517 experiences: 2.6% more timeouts 3% more retransmissions 29% increase detected lost retransmissions Similar transaction (short flow completion) times Being more aggressive has zero net gain Rate halving (Linux default) experiences: 5% more timeouts Lower cwnd values at the end of recovery 3-5% longer transaction (short flow completion) times Details in an upcoming IMC-2011 paper

Conclusion PRR-SSRB provides more accurate and smoother window adjustments during loss recovery Benefits: Fewer symptoms of bursts (timeouts) Lower tail latencies of request-response traffic. Better performance than rate halving Cost: Possible indirect costs to sending packets early during recovery as opposed to letting more ACKs pass first. Recommendation Wide testing with PRR-SSRB

Going forward Adopt PRR as a WG item(?) Tentative Goal: experimental status. So people can gain experience.

More Details Only as time and interest permits Outline Packet conservation review PRR pseudo code Other reduction bound varients Properties of all PRR variants Measurement details Example Time Sequence Graphs

Packet conservation review Original Van Jacobson concept behind TCP self clock Quantity of data sent exactly the same as data reported arriving at the receiver A standing queue at a bottleneck will have constant length Any more aggressive algorithm will cause queue growth And the potential for "forced losses" in drop tail Key concept: DeliveredData computed for each ACK For SACK DeliveredData is not an estimator DeliveredData = delta(snd.una)+delta(sackd) Can be observed anywhere on the ACK path. Can be estimated for non-sack Sum over time must match forward progress

PRR pseudo code move Start of recovery: ssthresh = CongCtrlAlg() // Target cwnd after recovery. RecoverFS = snd.nxt - snd.una // FlightSize. prr_delivered = prr_out = 0 // accounting On each ACK in recovery, compute: // DeliveredData: #pkts newly delivered to receiver. DeliveredData = delta(snd.una) + delta(sackd) // Total pkts delivered in recovery. prr_delivered += DeliveredData pipe = RFC 3517 pipe algorithm Algorithm: if (pipe > ssthresh) // Proportional Rate Reduction. sndcnt = CEIL(prr_delivered * ssthresh / RecoverFS) - prr_out else // Reduction Bound. limit = (Reduction bound algorithm) sndcnt = MIN(ssthresh - pipe, limit) On any data transmission or retransmission: prr_out += (data sent) // Smaller than or equal to sndcnt.

Reduction Bound Variants PRR-UB: Unlimited Bound No limit (infinite) Behavior parallels RFC 3517 Transmission bursts if pipe falls below ssthresh Included only for reference & comparisons PRR-CRB: Conservative Reduction Bound Strong packet conservation properties limit = prr_delivered - prr_out Thus prr_out can never exceed prr_delivered PRR-SSRB: Slowstart reduction bound "Grows" the window when pipe < ssthresh Relax CRB by exactly one segment per ACK

Proportional Rate Reduction with unlimited bound (PRR-UB) Observation: in some cases RFC 3517 sends bursts Example: pipe == cwnd == 100 packets, lost packets 1-90, packet 93 can generate a burst up to 40 packets. RFC 3517 is not at all conservative in this scenario. PRR-RB bounds #pkts sent by (prr_delivered - prr_out). PRR-UB mirrors RFC 3517: Allow arbitrary bursts to bring pipe up to ssthresh if (pipe > ssthresh) // Proportional Rate Reduction sndcnt = CEIL(prr_delivered * ssthresh / RecoverFS)- prr_out else sndcnt = ssthresh - pipe

Proportional Rate Reduction with Conservative Bound Send up to as much data as was (previously) delivered limit = prr_delivered - prr_out prr_out can not become larger than prr_delivered Cool properties: Bound is strict packet conserving Constant sized (standing) queue at bottleneck Maximally aggressive w/ causing additional losses Philosophically clean and ideal Downside Lower measured perfomance than RFC 3517 Burst losses that depress cwnd seem to be common

Proportional Rate Reduction with slowstart Bound Relax PRR-CRB by allowing one extra segment per ACK Effectively introduce slowstart after excess loss But no burst as permitted by RFC 3517 Allowing 1 extra segment is good compromise between: Unlimited extra segments (PRR-UB/RFC 3517) Zero extra segments (PRR-CRB)

Properties of PRR (all variants) Spreads out window reduction evenly across the recovery period. For moderate loss, converges to target cwnd chosen by CC. Maintains ACK clocking even for large burst losses. Precision of PRR-RB is derived from DeliveredData Which is not an estimator Banks the missed opportunities to send if application stalls during recovery. Less sensitive to errors of the pipe estimator.

Example flow in PRR-RB, PRR w/o RB pkts sent == pkts delivered. Different from PRR-RB only for large burst losses (not shown here). pipe == ssthresh Ratio of pkts sent to delivered is 0.7. Ratio of pkts sent to delivered is 0.7.

Example flow in Linux and RFC 3517 cwnd == pipe + 1 Ratehalving: send one new pkt on alternate ACKs. Silent period at start of recovery. Other recovery events. Linux flows often end up in slow start after recovery when short responses have no new data to send and pipe reduces to 0.