Researchers
Kenjiro CHO Research Director
Software
- Alternate Queueing (ALTQ) for BSD UNIX including CBQ, HFSC, PRIQ, WFQ, JoBS, RED, RIO, Blue
- Aguri : An Aggregation-based Traffic Profiler
- Tele Traffic Tapper (ttt) : Real-time Graphical Remote Traffic Monitor
ALTQ: Alternate Queueing for BSD UNIX (version 3.1)
This is a release of Alternate Queueing for BSD UNIX. ALTQ provides queueing disciplines and other QoS related components required to realize resource-sharing and quality of service. The ALTQ release is intended to be a flexible platform to promote network research and gain field experience.
ALTQ consists of a system framework, QoS components, and management tools. The system framework provides an abstraction of QoS components
and interfaces QoS components into the existing operating system.
The QoS components realizes actual service differentiation mechanisms.
The management tools include altq daemon and altqstat monitoring tool.
Note that ALTQ controls only outgoing traffic since queueing disciplines work only on outgoing interfaces.
Now that ALTQ is being developed in the KAME repository, this standalone ALTQ release is back-ported from KAME, and supports only FreeBSD-4.5, NetBSD-1.5.2 and OpenBSD-3.0.
(some tools and documents haven't been merged into KAME, and are available only in this release. OpenBSD-3.0 already integrates ALTQ so that this packages updates the ALTQ part. ALTQ in OpenBSD-current as of February 26 isn't much different from altq-3.1.)
The release includes:
- alternate queueing support for FreeBSD-4.5, NetBSD-1.5.2 and OpenBSD-3.0
- CBQ, HFSC, JoBS, RED, RIO, Blue, WFQ, and PRIQ implementations
- RSVP stubs for CBQ/HFSC
- diffserv model support
What's New since version 3.0:
- ECN (Explicit Congestion Notification) RFC3168 support
- packet marking by ALTQ
- ECN support in TCP
- fragment/tunnel handling in IPv4/IPv6
- JoBS from University of Virginia
JoBS is a joint buffer management and scheduling algorithm. It provides, on a per-hop basis, absolute and proportional service guarantees to traffic aggregates.
note that JoBS is still experimental.
(JoBS is also available in KAME snaps.)
- more supported drivers
this release supports most network drivers in FreeBSD/NetBSD/OpenBSD
- code cleanup/bug fixes
The latest version is altq-3.1. (520KB) release date: 2002/02/28; Errata
a kernel patch for FreeBSD-4.6. release date: 2002/07/08; updated 2002/7/22;
(a merge error which leads to a panic was found in the original patch.
if you downloaded the patch before 7/22, apply this to sys-altq/net/if.c.)
a kernel patch for FreeBSD-4.7. release date: 2002/10/17
a kernel patch for FreeBSD-4.8. release date: 2003/04/18
An experimental FreeBSD-5.x support is available at here.
The KAME development tree also has FreeBSD-5.x support.
ALTQ is integrated into KAME IPv6 and being developed under the KAME CVS repository.
New features and bug fixes are committed first to the KAME repository, and an ALTQ release is created out of the KAME respository.
You can get latest changes through KAME-snap kit.
ALTQ is also available in OpenBSD-3.0 and NetBSD-current.
OpenBSD-3.3 or later has ALTQ integrated into pf (OpenBSD's packet filter) so that you can take advantage of pf's stateful packet filtering and set up ALTQ as part of the pf configuration file. (more on pf:queueing)
ALTQ resources:
- a design note on the new ALTQ framework
- Tips for using ALTQ
- QOP API of ALTQ
- papers on ALTQ and other subjects.
- QoS Test reports (using ALTQ/CBQ and ALTQ/WFQ) by George Uhl at NASA GSFC.
- A list of research projects using ALTQ.
![[CBQ traffic trace]](image/cbq.gif)
This graph shows a trace of ALTQ/CBQ traffic control on 150M ATM.
6 TCP streams oscillate with FIFO queueing. At time 18, CBQ is enabled. The CBQ configuration gives 20Mbps to two TCP streams, 15Mbps to two TCPs, and 10Mbps to 2 TCPs (total 90Mbps); the streams are classified by port number.
Click here for more about ALTQ/CBQ performance.
Click here to see ALTQ/RED and ECN performance.
Aguri: An Aggregation-based Traffic Profiler (version 0.7)
joint work with Ryo Kaizaki
(a beta version for BSD UNIX and doesn't support other platforms very well.)
Aguri is an aggregation-based traffic profiler targeted for near real-time, long-term, and wide-area traffic monitoring.
Aguri adapts itself to spatial traffic distribution by aggregating small volume flows into aggregates, and achieves temporal aggregation by creating a summary of summaries applying the same algorithm to its outputs.
A set of scripts are used for archiving and visualizing summaries in different time scales.
Aguri does not need a predefined rule set and is capable of detecting an unexpected increase of unknown protocols or DoS attacks, which considerably simplifies the task of network monitoring.
Aguri produces four separate profiles for source addresses, destination addresses, source protocols and destination protocols.
IP addresses are designed to be hierarchical and aggregatable so that it is natural to apply aggregation. Both IPv4 and IPv6 are supported in address profiles.
Although protocol numbers are not hierarchical, the same technique can be used to identify port ranges.
We concatenate the IP version, the protocol number and the TCP/UDP port number to create a 32-bit key for a protocol profile.
Aguri monitors network traffic using libpcap(3), and produces a summary when it receives a HUP signal.
Periodic summaries can be obtained by sending HUP signals from cron(8) to the running aguri program.
Archive and Visualization:
Aguri's summary output is in a plain text format.
Scripts are used to archive aguri outputs, and to plot graphs.
Here are sample graphs: a plot graph and a traffic density graph.
The latest version is aguri-0.7. (48KB) release date: 2003/03/13;
Here is a paper on aguri.
Also, sample daily plot graphs from the WIDE backbone are available.
TTT: Tele Traffic Tapper (version 1.8.1)
ttt is yet another descendant of tcpdump but it is capable of real-time, graphical, and remote traffic-monitoring. ttt won't replace tcpdump, rather, it helps you find out what to look into with tcpdump.
ttt monitors the network and automatically picks up the main contributors of the traffic within the time window.
The graphs are updated every second by default.
Features:
- Automatic Ranking of Protocols and Hosts
- Real-Time Monitoring
- Remote Monitoring with IP-Multicast support
- Accepts tcpdump output
- IPv6 Aware (experimental)
- Portable and easy to customize
I have tested this version on FreeBSD-4.9, NetBSD-1.6, Debian-linux-3.0.
Click on ttt-1.8.1.tar.gz to download the program. (135K bytes) release date: 2004/5/20
ttt is part of FreeBSD ports collection and NetBSD packages collection.
libBLT is also in the ports/packages collection.
What's new since 1.8.
- 1.8.1 is a minor update of 1.8. it fixes prototype mismatches with the latest libpcap.
ttt uses two portable libraries for packet-capturing and graph-drawing.
For packet capturing, "libpcap" of tcpdump from Lawrence Berkeley Laboratory is used. For auto-scale graphs, "libBLT" for Tcl/Tk from AT&T Bell Laboratories is used.
So, if you already have tcpdump and Tcl/Tk on your machine,there would be no problem to install ttt.
- Click on tcpdump.org to download libpcap.
- Click on BLT2.4z.tar.gz to download libBLT.
Here is a graphical image of ttt.
ALTQ for PPP (version 0.1) (OBSOLETE)
This release is a port of ALTQ (kernel version) to the userland ppp (aka iij-ppp). Since the bottleneck of ppp is the serial link (not the tun interface), alternative queueing is implemented within the ppp program.
This release is an alpha version and is not for general users but to ask for comments and suggestions. Testers are supposed to have control of both ends of a dialup link.
This version supports CBQ and is intended to be used at the server side (upstream side) of a dialup link (the current implementation controls only outgoing packets).
The ppp part is based on the verion in FreeBSD-2.2.6-RELEASE.
Features:
- a queueing framework as a userland program.
- supports CBQ that controls the bandwidth use of hierarchically configured classes.
- RED can be enabled on a class queue basis to keep the queue length short.
- the native firewall mechanism is enhanced in order to work as a CBQ classifier.
Click on altq4ppp-0.1.tar.gz to download the program. (208K bytes) release date: 1998/06/10
Links to Related Work
- CBQ, RED and ECN
- CBQ, RED and ECN Home Pages at LBNL by Sally Floyd
- RSVP
- RSVP Home Page at ISI
- HFSC
- HFSC Home page at CMU by Hui Zhang
- Blue
- Blue Home Page at University of Michigan by Wu-chang Feng
- JoBS/QoSbox
- QoSbox project homepage at the University of Virginia. Includes information about the JoBS queuing discipline.
- FreeBSD
- FreeBSD Home Page
- NetBSD
- NetBSD Home Page
- OpenBSD
- OpenBSD Home Page
- BSD ATM
- BSD ATM Driver by Chuck Cranor
- ATM Switch Tools
- ATM Switch Management Tools by Yasutaka Miwa
- Netperf
- Network performance benchmark
- libpcap
- Packet Capture Library by LBNL
- Sun's RSVP
- Sun's RSVP and CBQ related ftp site
- diffserv
- Differentiated Service WG at IETF
- KAME IPv6
- KAME IPv6 stack for FreeBSD/NetBSD/BSD/OS
- INRIA IPv6
- INRIA IPv6 stack for FreeBSD/NetBSD
- Mobile IP at NUS
- NUS ported ALTQ to linux as part of their Mobile IP research
- Kuma Project
- a joint effort to build a QoS policy framework
Send bug reports, suggestions, etc. to kjc at iijlab.net.



