Analysis and Design of an Adaptive Virtual Queue (AVQ) Algorithm for AQM By Srisankar Kunniyur & R. Srikant Presented by Hareesh Pattipati
Outline Introduction AVQ Notation AVQ Idea AVQ algorithm Simulation Conclusion
Introduction Active role of links in congestion control in addition to sources to achieve QoS and Fairness Explicit Congestion Notification (ECN) used to notify congestion to users. Algorithms used to identify packets to drop or mark are called ACTIVE QUEUE MANAGEMENT (AQM) schemes. Some of AQM RED, SRED, BLUE, Proportional Integral (PI), REM, Virtual Queue Based AQM scheme (also called as Gibbens-Kelly Virtual Queue (GKVQ)
Introduction (cont) Adapting AQM too fast makes the system unstable (Oscillatory) Adapting AQM too slow leads to sluggishness (Lower throughput) Implementation of Virtual-queue AQM is called Adaptive Virtual Queue (AVQ) AVQ computes virtual capacity used by the router to drop or mark a real packet depending on congestion notification.
AVQ Notations B = buffer size (physical queue size) s = the arrival time of the previous packet t = the current time (i.e., the arrival time of the current packet) b = the size of the current packet in bytes VQ = the current size of the virtual queue in bytes
AVQ Idea Router maintains virtual queue whose capacity is less than or equal to capacity of link (Č). Buffer size of virtual queue is equal to real queue buffer size. At arrival of each packet virtual capacity is calculated Č = α (γC - λ) α is smoothing factor, γ is desired utilization and λ is arrival rate.
AVQ Algorithm At each packet arrival do [ /* update the virtual queue size */ VQ max (VQ – Č (t-s), 0) if VQ + b > B /* virtual queue overflow */ mark the packet in the real queue else /* update the virtual queue size */ VQ VQ + b endif /* update virtual capacity */ Č = max ( min ( Č + α γ C(t-s), C) – α b, 0 ) /* update last packet arrival time */ s t ]
AVQ Features AVQ implementation complexity is comparable to RED. AVQ is rate-based marking as opposed to average queue length marking. AVQ regulates link utilization instead of queue length unlike in any AQM. Two parameters are chosen to implement AVQ ( γ desired utilization and α damping factor)
Other AQM Algorithms RED Random Early Marking (REM) Proportional Integral Controller Gibbens-Kelly Virtual Queue (GKVQ)
Random Early Marking REM tries to regulate the queue length to a desired value (qref) Probability updated periodically (T sec) REM very sensitive to φ
Proportional Integral (PI) Marks every packet with a probability p p[k+1] = p[k] + a(q[k+1] – qref) - b(q[k] - qref) a>0 and b>0 chosen constants Every T seconds p is calculated
Gibbens-Kelly Virtual Queue (GKVQ) Link maintains virtual queue with fixed capacity. Č = θ C and β = θ B, where θ <1 When Virtual queue overflows, all packets in the real queue and all future incoming packets are marked till virtual queue becomes empty again. Cannot be used in links where packets are dropped instead of marking because through put would be very bad due to aggressive marking
Simulation Setup NS-2 packet simulator is used. TCP-Reno including slow-start, time-out, fast retransmit, etc…. Link capacity is always C=10mbps Desired link utilization is γ = 0.98 Packet Average size is 1000 bytes TCP-Reno propagation delay between 40ms and 130 ms Buffer size at the link is 100 packets
Simulation Setup (cont) By using theorem 1 α is < 0.15 which ensure stability. FTP flows that are long and short lived are of 20 packets each Maximum delay that can incur is 210 ms
Experiment 1 Starting with 180 long lived flows. Short flows at 30 flows per sec are introduced after 100 seconds. The queue length is less than 20 packets most of the time System stabilizes even after introduction of short packets.
Experiment 1 (cont) Virtual Capacity drops after 100 sec with the introduction of short flows AVQ adapts to the changing number of flows Utilization is observed to be at
Experiment 2 Only long lived FTP flows Link queue size is set to 100 packets with delay 30ms to 60ms REM and PI queue length at 50 packets RED at 37 and 75 AVQ performed better in packet drops.
Experiment 2 (cont) GKVQ is less as low as 75% REM and PI are at 1.0 AVQ stabilized at 0.98 which is our desired utilization
Experiment 2 Increasing the number of flows every 100 sec. REM and PI have higher queue lengths AVQ, GKVQ, and RED have smaller queue sizes
Experiment 3 Starting with 140 FTP connections at 0.0 sec Dropping 105 FTP at 100sec and establishing 105 at 150 sec. PI system takes time to respond to the changes
Experiment 3 (cont) AVQ responds quickly to the removal and addition of flows at 100 sec and 150 sec.
Experiment 3 (cont) Desired queue level for REM is 50 Queue level drops for removal of flows Over shoot for addition for flows
Experiment 4 Short flows introduced along with long flows 40 longs lived and 50 short lived at a rate of 10 per second Each transfer is 20 packets AVQ out performs all other AQM’s
Experiment 4 (cont) REM and PI utilization is at 1 RED and GKVQ have poor utilization AVQ utilization is higher than desired
Experiment 4 (cont) AVQ controller has the smallest queue length
Experiment 5 Dropping packets instead of marking AVQ γ = 1 and FTP connections for duration. Short lived flows are introduced at 100 sec Queue length is small for different values of γ
Experiment 5 (cont) AVQ utilization is maintained at desired level RED performed poorly
Experiment 5 (cont) AVQ good put decreases for both the values of γ
Conclusion Easily Implementable AQM called Adaptive Virtual Queue Require more research on the stability of the AVQ scheme. AVQ out performed all the well know AQM schemes
THANK YOU Special thanks to Bob Kinicki