cs 457 lecture 23 congestion
play

CS 457 Lecture 23 Congestion Fall 2011 Defining Fairness: MaxMin - PowerPoint PPT Presentation

CS 457 Lecture 23 Congestion Fall 2011 Defining Fairness: MaxMin Given a resource utotal and several requests pi Assign allocations of ui to node i. Allocation is fair if No one receives more than they requested: ui <= pi


  1. CS 457 – Lecture 23 Congestion Fall 2011

  2. Defining Fairness: MaxMin • Given a resource utotal and several requests pi • Assign allocations of ui to node i. • Allocation is fair if – No one receives more than they requested: ui <= pi for all i – No other allocation has higher minimum allocation (for allocations meeting requirement above) – Recursive true after removal of minimum node: let j = user with minimum allocation let utotal = utotal - uj remove user j above conditions should still hold

  3. A Simple (Incorrect) Approach • Allocate buffer space for each flow – Only drop packet if individual flow buffer overflows – Seems fair in terms of buffer allocation…. • Round-Robin Rule for Sending Packets – Transmit packet from queue 1, then queue 2, etc. • Is this approach fair? – What should a sender do to optimize its share of bandwidth? – Answer: Send VERY big packets!

  4. A Simple (Impractical) Approach • Allocate buffer space for each flow – Only drop packet if individual flow buffer overflows – Seems fair in terms of buffer allocation…. • Round-Robin Rule for Sending Bits – Transmit one bit from queue 1, then queue 2, etc. • Is this approach fair? • Some notation: R(t) = the number of rounds up to time t Nac(t) = the number of active flows at time t S(i,a) = the time packet i from flow a arrives F(i,a) = the time packet i from flow a left

  5. Notations • Some notation: R(t) = the number of rounds up to time t Nac(t) = the number of active flows at time t S(i,a) = the round packet i from flow starts F(i,a) = the round packet i from flow finishes • In which round is a packet transmitted? S(i,a) = Max(R(arrival_time), F(i-1,a)) F(i,a) = S(i,a) + P • Can order packets by their finishing time F(i,a)

  6. A Fair Queuing Algorithm • Important factor is the finishing time F(i,a) – Packet arrived bit by bit (impractical approach) – But it does not matter how bits arrived – Packet is not available until F(i,a) anyway • Fair Queuing Approach – Send packet with lowest F(i,a) • Pre-emption – What if packet arrives with lower F(i,a) then current packet? – Could choose to pre-empt (easier to analyze) or wait (easier to implement)

  7. Simple Congestion Detection • Packet loss – Packet gets dropped along the way • Packet delay – Packet experiences high delay • How does TCP sender learn these? – Loss • Timeout • Triple-duplicate acknowledgment – Delay • Round-trip time estimate

  8. Simple Congestion Detection • Packet loss – Packet gets dropped along the way • Packet delay – Packet experiences high delay • How does TCP sender learn these? – Loss • Timeout • Triple-duplicate acknowledgment – Delay • Round-trip time estimate

  9. TCP Congestion Control Basics • Each source determines available capacity – … and how many packets is allowed to have in transit • Congestion window – Maximum # of unack’ed bytes allowed to be in transit (the congestion-control equivalent of receiver window) – MaxWindow = min{congestion window, receiver window} - send at the rate of the slowest component • How to adapt the congestion window? – Decrease upon losing a packet: back-off – Increase upon success: explore new capacity

  10. Additive Increase, Multiplicative Decrease • How much to increase and decrease? – Increase linearly, decrease multiplicatively – A necessary condition for stability of TCP – Consequences of oversized window are much worse than having an under-sized window • Oversized window: packets dropped, retransmitted, pain for all • Undersized window: lower throughput for one flow • Multiplicative decrease – On loss of packet, divide congestion window in half • Additive increase – On success for last window of data, increase linearly, adding one MSS per RTT

  11. TCP “Sawtooth” Behavior Window Loss halved t

  12. Practical Details • Congestion window (cwnd) – Represented in bytes, not in packets (Why?) – Packets typically one MSS (Maximum Segment Size) • Increasing the congestion window – Increase by MSS on success for last window of data – In practice, increase a fraction of MSS per received ACK • # packets per window: CWND / MSS • Increment per ACK: MSS * (MSS / CWND) • Decreasing the congestion window – Cut in half, but never below 1 MSS

  13. Getting Started Need to start with a small CWND to avoid overloading the network. Window But, could take a long t time to get started!

  14. “Slow Start” Phase • Start with a small congestion window – Initially, CWND is 1 MSS – So, initial sending rate is MSS/RTT • That could be pretty wasteful – Might be much less than the available bandwidth – Linear increase takes a long time to accelerate • Slow-start phase (but in reality it’s “fast start”) – Sender starts at a slow rate (hence the name) – … but increases the rate exponentially – … until the first loss event

  15. Slow Start in Action Double CWND per round-trip time 1 2 4 8 Src D D D A A D D D D A A A A A Dest

  16. What’s Next • Read Chapter 1, 2, 3, 4.1-4.3, and 5.1-5.2 • Next Lecture Topics from Chapter 6.4 and 6.5 – Congestion Control • Homework – Due Thursday in lecture • Project 3 – Report Any Changes in Your Project Group

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend