Home

WFQ

Weighted Fair Queuing (WFQ) is a packet scheduling algorithm used in packet-switched networks to allocate outgoing link bandwidth among active flows according to assigned weights. It provides a practical approximation of Generalized Processor Sharing (GPS), aiming to give each active flow a proportional share of the bandwidth while preserving some level of isolation between flows.

In WFQ, each active flow is assigned a virtual time and a finish time for each packet,

Implementation often involves per-flow queues or a mechanism that tracks per-flow state to determine the next

Limitations include the need to maintain state for each active flow, which can impact scalability on very

based
on
the
packet’s
size
and
the
flow’s
weight.
A
packet’s
virtual
finish
time
is
computed
from
the
flow’s
last
finish
time
and
the
packet
length
divided
by
the
flow’s
weight.
Packets
are
transmitted
in
the
order
of
increasing
virtual
finish
times
across
all
flows.
This
scheduling
yields
a
fair
distribution
of
bandwidth
proportional
to
weights
and
tends
to
maintain
per-flow
service
guarantees,
even
when
traffic
mixes
are
diverse.
packet
to
send.
Weights
reflect
the
relative
importance
or
service
level
agreements
(SLAs)
for
different
flows
or
classes.
In
practice,
network
devices
may
implement
WFQ
directly
or
as
part
of
class-based
or
differentiated
services
QoS
schemes
(for
example,
class-based
weighted
fair
queuing)
to
support
QoS
requirements
in
heterogeneous
traffic
environments.
high-speed
links.
Fairness
depends
on
accurate
weight
configuration
and
traffic
behavior;
highly
bursty
or
adversarial
traffic
can
complicate
scheduling.
WFQ
remains
a
foundational
concept
for
QoS-aware
scheduling
in
many
routers
and
switches.