Skip to Main Content
Fair Queuing (FQ) algorithms provide isolation between packet flows, allowing max-min fair sharing of a link even when flows misbehave. However, fairness comes at the expense of per-flow state. To keep the memory requirement independent of the flow count, the router can isolate aggregates of flows, rather than individual flows. We investigate the feasibility of protecting individual flows under such aggregate isolation in the context of Multiple Queue Fair Queuing (MQFQ), where the router maintains a fixed number of queues and allows each flow to access multiple queues. MQFQ places packets into the shortest queue associated with their flow. The extra queues protect the flow against congestion caused by a misbehaving flow in a shared queue. However, multiple per-flow queues also enable the misbehaving flow to increase its unfairly acquired fraction of the link capacity. We discuss avoidance of packet reordering within a flow and compare MQFQ with prior schemes for aggregate scheduling.