Blue is a
scheduling discipline for the
network scheduler developed by graduate student Wu-chang Feng for Professor
Kang G. Shin
Kang Geun Shin is a South Korean-born computer scientist and the Kevin and Nancy O'Connor Professor of Computer Science in the Electrical Engineering and Computer Science Department at the University of Michigan. He is also the founding director o ...
at the
University of Michigan
, mottoeng = "Arts, Knowledge, Truth"
, former_names = Catholepistemiad, or University of Michigania (1817–1821)
, budget = $10.3 billion (2021)
, endowment = $17 billion (2021)As o ...
and others at the
Thomas J. Watson Research Center of
IBM in 1999.
Functioning
Like
random early detection (RED), Blue operates by randomly dropping or marking packet with
explicit congestion notification mark before the transmit buffer of the
network interface controller
A network interface controller (NIC, also known as a network interface card, network adapter, LAN adapter or physical network interface, and by similar terms) is a computer hardware component that connects a computer to a computer network.
E ...
overflows. Unlike RED, however, it requires little or no tuning to be performed by the network administrator. A Blue queue maintains a drop/mark probability ''p'', and drops/marks packets with probability ''p'' as they enter the queue. Whenever the queue overflows, ''p'' is increased by a small constant ''p
i'', and whenever the queue is empty, ''p'' is decreased by a constant ''p
d < p
i''.
If the mix of traffic on the interface does not change, ''p'' will slowly converge to a value that keeps the queue within its bounds with full link utilization.
Stochastic fair Blue
The main flaw of Blue, which it shares with most single-queue
queuing disciplines, is that it does not distinguish between
traffic flows, but treats all flows as a single aggregate. Therefore, a single aggressive flow can push packets out of the queue belonging to other, better behaved, flows.
Stochastic fair Blue (SFB) is a stochastically fair variant of Blue which hashes flows and maintains a different mark/drop probability for each hash value. Assuming no hash collisions, SFB is able to provide a fair share of buffer space for every flow. In the presence of hash collisions, SFB is only stochastically fair.
Unlike other stochastically fair queuing disciplines, such as SFQ (
Stochastic Fairness Queuing), SFB can be implemented using a
bloom filter
A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives are not – in ...
rather than a
hash table
In computing, a hash table, also known as hash map, is a data structure that implements an associative array or dictionary. It is an abstract data type that maps keys to values. A hash table uses a hash function to compute an ''index'', ...
, which dramatically reduces its storage requirements when the number of flows is large.
When a flow's drop/mark probability reaches 1, the flow has been shown to not react to congestion indications from the network. Such an inelastic flow is put in a "
penalty box", and rate-limited.
Resilient stochastic fair Blue
Many scheduling algorithms, including the fairness-aimed ones, are notably vulnerable to spoofing
distributed denial-of-service (DDoS) attacks. A resilient stochastic fair Blue (RSFB) algorithm was proposed in 2009 against spoofing DDoS attacks. The basic idea behind RSFB is to record the responsive normal TCP flows and rescue their dropped packets. RSFB algorithm is effective in preserving the TCP throughput in the presence of spoofing DDoS attacks.
[Abstract]
/ref>
Implementations
An implementation of Blue is part of ALTQ, the network scheduler for BSD Unix.
An implementation of SFB for Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
was included in the Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
in version 2.6.39.
References
{{Reflist
Packets (information technology)
Network performance