Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Broom Tool Kit to Unbias Network Measurements

Broom is a tool kit that can correct network-path measurements for bias stemming from sampling. Broom places no burden on the measurement process itself and can be applied ex post facto. Techniques in Broom include a few types of embeddings.


File Namemsrbroom.msi
Date Published16 November 2009
Download Size4.09 MB

Note By installing, copying, or otherwise using this software, you agree to be bound by the terms of its license. Read the license.


You can read more about Broom in this paper.

Sampling Biases in Network Measurements and What to Do About It 

Srikanth Kandula, Ratul Mahajan. ACM Internet Measurement Conference 2009

Installation Instructions

0) Windows computer
1) Visual Studio
2) Install MS solver foundation. You can get a free version from

To compile, open Broom.sln in visual studio and hit build

By default, executable goes into bin/Debug

Sample Topologies are at data/topos
Netdiff dataset is at data/netdiff-data

To run, type

Broom.exe [global options] <topofile> <sampler> <variableNumberOfFixers> <sampleWhat> <outputTag> <optional samplerArgs>
sampler = {Independent, PickSource, UntilConvergence, PickPathsFromFile, NetDiff, BlindSpot, SourceDegreeBiased}
fixer = {DoNothing, DoubleHalveTail, RingEmbedding, VivaldiEmbedding}
sampleWhat = {latency, hopcount, lossrate, mincapacity}
OptionalSamplerArgs for Independent PickSource UntilConvergence SourceDegreeBiased -- fractionOfPaths,numRepeats
OptionalSamplerArgs for PickPathsFromFile -- fileName
OptionalSamplerArgs for NetDiff -- none
OptionalSamplerArgs for BlindSplot -- fractionOfPaths,numRepeats,[fractionBlind=0.5],[weightBlindSources=0.1]

Global options:
--serializeRouting: serializes the computed routing info and exits
--deserializeRouting: reads routing info from file instead of computing it

Example command lines:

./bin/Debug/Broom.exe data/topos/sig_1.topo PickSource DoubleHalveTail latency test .5,1

For the sig_1.topo topology, evaluate source-biased sampling and fix by doubling the tail half. Path property to be sampled is latency, output gets suffixed by .test and is in results dir. .5,1 denotes sample half the paths and repeat 1 time.


./bin/Debug/Broom.exe data/topos/sig_1.topo PickSource DoubleHalveTail,DoNothing,RingEmbedding latency test .5,1


Same as above except it evalutes unbiasing by both ring embedding and doubling tail half. DoNothing denotes the raw output of the sampling experiment (without any unbiasing).


You can read more about Broom in this paper. 

Sampling Biases in Network Measurements and What to Do About It

Srikanth Kandula, Ratul Mahajan

ACM Internet Measurement Conference 2009