MULTOPS is implemented using Click [KMC$^+$00]. Click is a modular software router architecture developed at the MIT Laboratory for Computer Science. A Click router is an interconnected collection of modules called elements. Each element performs a simple, straightforward task such as communicating with devices, queueing packets, and implementing a dropping policy. Each element has 0 or more inputs and 0 or more outputs. Inputs are used to receive packets from other elements. Outputs are used to hand off packets to other elements. Configuration of a Click router is done by feeding it a file describing which elements to use and how the inputs and outputs of these elements interconnect.
MULTOPS is implemented as 2 separate elements: IPRateMonitor
and
RatioBlocker
. Adding these elements to the configuration adds the
MULTOPS detection mechanism and the related dropping policy to the router.
IPRateMonitor
tags each packet with from-rate and to-rate such that
RatioBlocker
may decide to drop the packet based on these tags and
based on the defined thresholds (i.e., and ). Thus,
IPRateMonitor
implements the tree, RatioBlocker
implements a
dropping policy based on the MULTOPS detection heuristic.
IPRateMonitor
has 2 inputs and 2 outputs. Each input should be
connected to a different physical network interface. RatioBlocker
has 1
input and 1 output.