Analysis and Simulation of a Fair Queueing Algorithm A. Demers, S. keshav, and S. Shenker Wireless/Mobile Network Lab 임상택 Table of Contents Introduction Fair Queueing – – – Motivation Definition of algorithm Properties of Fair Queueing Flow Control Algorithms Simulations Discussion Introduction The rapid growth, in both use and size, of computer networks ⇒ methods of congestion control Congestion control – – At the source point ⇒ flow control algorithms At the gateway point ⇒ routing and queueing algorithms Queueing algorithms can be though of as allocating three nearly independent quantities – – – Bandwidth(which packets get transmitted) Promptness(when do those packets get transmitted) Buffer space(which packets are discarded by the gateway) Fair Queueing Motivation – – The requirement that the queueing algorithm allocate bandwidth and buffer space fairly Nagle’s Fair Queueing flaw – The gateway should provide service that does not depend on a packet’s time of arrival lack of consideration of packet lengths( long packets get more bandwidth than short packets, not fairly.) Max-min fairness criterion Definition of algorithm – It is simple to Allocate buffer space fairly – by dropping packets, when necessary from the flow with the largest queue Allocate bandwidth fairly Pure Round-robin service fails to guarantee a fair allocation ⇒ Because of variations in packet sizes Bit-by-bit round robin (BR) fashion ( as in a head-of-queue processor sharing discipline ) – Allocates fairly ⇒ Since at every instant in time each flow is receiving its fair share R(t) : the number of rounds made in the round-robin up to time t Nac(t) : the number of active sessions that have bits in their queue at time t μ : the line-speed of the gateway’s outgoing line R t N ac (t ) A Packet of size P whose first bit gets serviced at time t0 will have its last bit serviced P rounds later – At time t, R(t) = R(t0) + P tiα : arrival time at the gateway that packet i belonging to flow α Siα, Fiα : values of R(t) when the packet started and finished service Piα : packet size Fiα = Siα + Piα , Siα = MAX(Fi-1α , R(tiα)) Since R(t) is a strictly monotonically increasing function, the ordering of Fiα values is the same as the ordering of the finishing times Bit-by-bit round robin is unrealistic ⇒ Emulate this algorithm by packet-bypacket transmission scheme. A natural Way to emulate BR algorithm – Fiα define the sending order of the packets – The smallest value of Fiα Promptness allocation – Give more promptness (less delay) to users who utilize less than their fair share of bandwidth – Biα , nonnegative parameter δ Biα = Siα + Piα , Siα = MAX(Fi-1α , R(tiα)-δ) – Sending order is determined by the B’s, not the F’s – This gives slightly faster service to packets that arrive at an inactive conversation – Two extreme cases δ = 0 and δ = ∞ R(tiα)<=Fi-1α , flow α is active ⇒ δ is irrelevant and Biα depends only on the finishing number of the previous packet R(tiα)>Fi-1α , flow α is inactive ⇒ δ = 0, Biα = Piα + R(tiα) ⇒ δ = ∞, Biα = Piα + Fi-1α Buffer space – When the queue is full and new packet arrives, the last packet from the source using the most buffer space is dropped – When packet is dropped, F’s and S’s unchanged Small penalty for ill-behaved hosts Properties of Fair Queueing Flow Control Algorithms Simulations Discussion