Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 3

Dummynet

http://info.iet.unipi.it/~luigi/dummynet/

This is the main Dummynet page, where you can find recent news on the tool, tutorial
material, source code, and precompiled modules and bootable disk images.

Description

dummynet is a tool originally


designed for testing networking protocols, and since then used for a variety of
applications including bandwidth management. It simulates/enforces queue and
bandwidth limitations, delays, packet losses, and multipath effects. It also implements a
variant of Weighted Fair Queueing called WF2Q+. It can be used on user's workstations,
or on machines acting as routers or bridges.

As of Feb.2010 we have released the third major version of dummynet, which now runs
on all main platforms: FreeBSD, Mac OS X as part of the native distributions, and you
can find Linux, OpenWRT and Windows versions here.

To get the idea of what you can do with dummynet, either using it on your workstation,
or putting a PC with two ethernet cards between your network and the outside world, here
are a few examples :

• limit the total incoming TCP traffic to 2Mbit/s, and UDP to 300Kbit/s
• ipfw add pipe 2 in proto tcp
• ipfw add pipe 3 in proto udp
• ipfw pipe 2 config bw 2Mbit/s
• ipfw pipe 3 config bw 300Kbit/s
• limit incoming traffic to 300Kbit/s for each host on network 10.1.2.0/24.
• ipfw add pipe 4 src-ip 10.1.2.0/24 in
• ipfw pipe 4 config bw 300Kbit/s queue 20 mask dst-ip
0x000000ff
• simulate an ADSL link to the moon:
• ipfw add pipe 3 out
• ipfw add pipe 4 in
• ipfw pipe 3 config bw 128Kbit/s queue 10 delay 1000ms
• ipfw pipe 4 config bw 640Kbit/s queue 30 delay 1000ms
dummynet works by intercepting packets (selected by ipfw rules - ipfw is one of the
FreeBSD firewalls) in their way through the protocol stack, and passing them through
one or more objects called queues and pipes, which simulate the effects of bandwidth
limitations, propagation delays, bounded-size queues, packet losses, multipath. Pipes are
fixed-bandwidth channels. Queues represent instead queues of packets, associated with a
weight, which share the bandwidth of the pipe they are connected to proportionally to
their weight.

Source code, modules and binary images

• Dummynet is standard on FreeBSD and Mac OS X, so if you have one of these


systems you just need to read the manual page with man ipfw and load the
appropriate kernel modules, ipfw.ko and dummynet.ko
• picobsd: you can try Picobsd images (standalone freebsd systems that run from a
flash card or CDROM image). Here we have a compressed disk image or an ISO
image. The password is "setup" as in default Picobsd systems

Current versions (20100322)


Below you can find beta version of the new release of dummynet, which includes support
for multiple packet schedulers and has a much more improved internal architecture.
Much of this work has been supported by the European project Onelab2

Source code is updated more frequently than binary versions.

• Source code and tools, 20100319 for all supported architectures (FreeBSD, Linux,
Windows, OpenWRT). You may want to look at the README for build and
install instructions. The code is under a BSD LICENSE.
• PicoBSD disk image with dummynet and several utilities (ssh, sshd, natd and so
on). Also available as ISO image.
• Linux module rev. 20100322
for Ubuntu 9.04 Jaunty/i386 (2.6.28-11-generic)
• Linux module rev. 20100218
for Debian GNU/Linux 5.0 lenny (2.6.26-1-686)
• OpenWRT package for ASUS WL500GP (2.4.35)
• Windows XP NDIS module 20100322 v.3.0.0.2

Documentation and papers

• An emulation tool for PlanetLab, by M.Carbone and L.Rizzo, Mar 2010


This paper describes how we added emulation to PlanetLab;
• Dummynet revisited, by M.Carbone and L.Rizzo, SIGCOMM CCR, Vol. 40, No.
2, April 2010
This paper gives an overview of the current version of dummynet, with detailed
performance analysys;
• Adding emulation to Planetlab nodes, by M.Carbone and L.Rizzo, Co-Next
Student Workshop '09, Rome, Italy, December 01 - 01, 2009
This short paper describes how dummynet is used to add emulation to PlanetLab
nodes.
• The original dummynet page

Revision history:

• 20100319: Minor cleanup of the source code, including hooks to expire empty
queues and schedulers.
• 20100218: Beta release of version 3 of dummynet, with support for
Windows/Linux/OpenWRT, loadable schedulers, and revised internal
architecture;
• 20091214: many many updates including support for tables, revised
documentation, uid/gid matching, xid matching for vserver-enabled kernels;
• 20090724: fix for a memory leak when using pipes in the linux version; remove a
compiler warning when compiling for 64-bit machines;
• 20090622: initial release for linux

You might also like