<HTML ><HEAD ><TITLE >Queueing Disciplines for Bandwidth Management</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="Linux Advanced Routing & Traffic Control HOWTO" HREF="index.html"><LINK REL="PREVIOUS" TITLE="Multicast routing" HREF="lartc.multicast.html"><LINK REL="NEXT" TITLE="Queues and Queueing Disciplines explained" HREF="lartc.qdisc.explain.html"></HEAD ><BODY CLASS="CHAPTER" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Linux Advanced Routing & Traffic Control HOWTO</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="lartc.multicast.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="lartc.qdisc.explain.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="CHAPTER" ><H1 ><A NAME="LARTC.QDISC" ></A >Chapter 9. Queueing Disciplines for Bandwidth Management</H1 ><DIV CLASS="TOC" ><DL ><DT ><B >Table of Contents</B ></DT ><DT >9.1. <A HREF="lartc.qdisc.explain.html" >Queues and Queueing Disciplines explained</A ></DT ><DT >9.2. <A HREF="lartc.qdisc.classless.html" >Simple, classless Queueing Disciplines</A ></DT ><DD ><DL ><DT >9.2.1. <A HREF="lartc.qdisc.classless.html#AEN463" >pfifo_fast</A ></DT ><DT >9.2.2. <A HREF="lartc.qdisc.classless.html#AEN495" >Token Bucket Filter</A ></DT ><DT >9.2.3. <A HREF="lartc.qdisc.classless.html#LARTC.SFQ" >Stochastic Fairness Queueing</A ></DT ></DL ></DD ><DT >9.3. <A HREF="lartc.qdisc.advice.html" >Advice for when to use which queue</A ></DT ><DT >9.4. <A HREF="lartc.qdisc.terminology.html" >Terminology</A ></DT ><DT >9.5. <A HREF="lartc.qdisc.classful.html" >Classful Queueing Disciplines</A ></DT ><DD ><DL ><DT >9.5.1. <A HREF="lartc.qdisc.classful.html#AEN673" >Flow within classful qdiscs & classes</A ></DT ><DT >9.5.2. <A HREF="lartc.qdisc.classful.html#AEN679" >The qdisc family: roots, handles, siblings and parents</A ></DT ><DT >9.5.3. <A HREF="lartc.qdisc.classful.html#AEN699" >The PRIO qdisc</A ></DT ><DT >9.5.4. <A HREF="lartc.qdisc.classful.html#AEN735" >The famous CBQ qdisc</A ></DT ><DT >9.5.5. <A HREF="lartc.qdisc.classful.html#AEN867" >Hierarchical Token Bucket</A ></DT ></DL ></DD ><DT >9.6. <A HREF="lartc.qdisc.filters.html" >Classifying packets with filters</A ></DT ><DD ><DL ><DT >9.6.1. <A HREF="lartc.qdisc.filters.html#AEN894" >Some simple filtering examples</A ></DT ><DT >9.6.2. <A HREF="lartc.qdisc.filters.html#LARTC.FILTERING.SIMPLE" >All the filtering commands you will normally need</A ></DT ></DL ></DD ><DT >9.7. <A HREF="lartc.imq.html" >The Intermediate queueing device (IMQ)</A ></DT ></DL ></DIV ><P >Now, when I discovered this, it <EM >really</EM > blew me away. Linux 2.2/2.4 comes with everything to manage bandwidth in ways comparable to high-end dedicated bandwidth management systems.</P ><P >Linux even goes far beyond what Frame and ATM provide. </P ><P >Just to prevent confusion, <B CLASS="COMMAND" >tc</B > uses the following rules for bandwith specification: <TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="LITERALLAYOUT" >mbps = 1024 kbps = 1024 * 1024 bps => byte/s mbit = 1024 kbit => kilo bit/s. mb = 1024 kb = 1024 * 1024 b => byte mbit = 1024 kbit => kilo bit.</PRE ></FONT ></TD ></TR ></TABLE > Internally, the number is stored in bps and b.</P ><P >But when <B CLASS="COMMAND" >tc</B > prints the rate, it uses following :</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="LITERALLAYOUT" >1Mbit = 1024 Kbit = 1024 * 1024 bps => bit/s</PRE ></FONT ></TD ></TR ></TABLE ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="lartc.multicast.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="lartc.qdisc.explain.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Multicast routing</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Queues and Queueing Disciplines explained</TD ></TR ></TABLE ></DIV ></BODY ></HTML >