180 likes | 582 Views
Random Early Detection (RED). Router notifies source before congestion happens - just drop the packet (TCP will timeout and adjust its window) - could make explicit by marking the packet Early random drop
E N D
Random Early Detection (RED) • Router notifies source before congestion happens - just drop the packet (TCP will timeout and adjust its window) - could make explicit by marking the packet • Early random drop - rather than wait for queue to become full, drop each arriving packet with some drop probability whenever the average queue length exceeds some drop level • RED details (normal, congestion avoidance, congestion control) - compute average queue length as weighted average of queue lengths each time a packet arrives - If average is less than minimum threshold, enqueue the packet - If average exceeds maximum threshold, drop arriving packet - Otherwise, drop arriving packet with probability P
RED • P is a function of average queue length - small bursts pass through unharmed - only affects sustained overloads - P also depends on how long since last drop; RED counts new packets that have been queued while average length has been between the two thresholds - TempP = MaxP * (AvgLen - MinThreshold)/(MaxThreshold - MinThreshold) P = TempP / (1 - count * TempP) • Cooperative sources reduce their rate and get lower overall delays, uncooperative sources get severe packet loss • Random drops help avoid global synchronization, which occurs when hundreds or thousands of flows back off and go into slow start at roughly the same time
More on RED • RED is a congestion avoidance mechanism (rather than congestion control), i.e. it predicts when congestion is about to happen, and reduce the rate at which hosts send data just before queue saturation • Probability of dropping a particular flow’s packet(s) is roughly proportional to the share of the bandwidth that flow is currently getting • Max P is typically set to 0.02 • If traffic is bursty, then min threshold should be sufficiently large to allow link utilization to be maintained at an acceptably high level • Difference between two thresholds should be larger than the typical increase in calculated average queue length in one RTT; setting max threshold to twice min threshold seems reasonable • RED is fair; can’t differentiate services with fairness • Unfair or weighted RED: lower drop probability for higher priority traffic. Priorities set at edge routers or hosts
A Controlled-Load Scheme • A connection has to specify its Tspec in terms of token bucket rate and depth • If there aren’t enough tokens present at the time of transmission, the packet is treated as non-conformant • Non-conformant and best-effort traffic injected into network unmarked • Conformant traffic is marked • At routers, an enhanced RED (ERED) FIFO is used • Marked packets have a lower drop probability • Admission control ensures sum of rates does not exceed link capacity • Designed for TCP based applications (assumes TCP-reno)
Effect of Service Rate • Compliant throughput observed to be less than the reserved rate of service • Not all tokens generated are used to mark packets at the source, or token buffer overflows • TCP’s congestion control is overly conservative and does not exploit the reservation the connection has • TCP ceases to transmit due to ack compression (or gaps between successive acknowledgments) • In fast recovery, TCP cuts its window in half by halting additional transmissions until half the original window clears the network • Gaps in ack stream also form due to normal dynamics of network traffic
Effect of Token Bucket Depth • Solution: increase token bucket depth • But, burst losses can occur • Or, more buffers in the network are needed • Large token buckets do not help • Unless we have better admission control!
TCP Adaptations • Adapt acknowledgment-based transmit triggers to rate-based reservation paradigm • Delayed transmissions: a segment is held back for a random amount of time when there aren’t enough tokens, thus reducing drop probability of packets • Not very effective in the presence of reverse path congestion • Timed transmissions: whenever a periodic timer expires, if there are sufficient tokens, sender sends packet as marked, ignoring congestion window (still honor receiver advertised window) • Non-compliant packets are sent only if there is room under the congestion window • A connection receives its reserved rate • But, does not share excess bandwidth equally with best-effort • Connections with larger reservations are penalized more
Rate Adaptive Windowing • Congestion window consists of reserved part (RWND) and variable part (CWND) • RWND equals reserved rate times estimated RTT • CWND tries to estimate residual capacity and share it with other active connections • In fast recovery, set CWND to RWND + (CWND-RWND)/2 • In slow start, set CWND to RWND + 1, set SSTHRESH to minimum of RWND + (CWND-RWND)/2 and AWND • Scale window increase by (CWND-RWND)/CWND • Sender still sends minimum of CWND and AWND • Size of receiver’s buffer must be at least equal RWND to sustain reserved rate using TCP
Comments • Token bucket depth should be at least TimerInterval times TokenBucketRate • As timer interrupt interval increases, token bucket size (burst size) increases • Burst losses cause throughput degradation • Using fine-grained timers allow applications to request smaller token buckets • ERED can be embedded as a class in CBQ to provide weighted bandwidth sharing among connections • Many multimedia applications do not require reliability of TCP, but results can be extended to TCP-friendly RTP-based applications • Admission control needs to consider bucket sizes, router buffer sizes, ERED parameters
Class Based Queueing • Hierarchical link sharing - a priori hierarchical partitioning of a link’s bandwidth among organizations, traffic classes, or protocol families • A class can continue unregulated if - the class is not overlimit (i.e. using more than its share) OR - the class has a not-overlimit ancestor at level i, and there are no unsatisfied classes at levels lower than i; a class is unsatisfied if underlimit and has a persistent backlog