mirror of https://github.com/tLDP/LDP
193 lines
7.0 KiB
XML
193 lines
7.0 KiB
XML
<!-- start of file -->
|
|
|
|
<!-- This .xml file is part of the Traffic-Control-HOWTO document -->
|
|
|
|
<!-- $Id$ -->
|
|
|
|
<!--
|
|
|
|
The article was authored by Martin A. Brown <martin@linux-ip.net>
|
|
for the linux community, and has been released under the GNU Free
|
|
Documentation License (GFDL) through The Linux Documentation
|
|
Project (TLDP).
|
|
|
|
This was initially authored while Martin A. Brown worked for
|
|
SecurePipe, Inc. (acquired by TrustWave in 2006, which itself
|
|
was acquired by Singapore Telecom in 2015).
|
|
|
|
This HOWTO is likely available at the following address:
|
|
|
|
http://tldp.org/HOWTO/Traffic-Control-HOWTO/
|
|
|
|
-->
|
|
|
|
<!-- conventions used in this documentation....
|
|
|
|
- each section is a separate file
|
|
|
|
-->
|
|
|
|
<section id="intro">
|
|
|
|
<title>Introduction to Linux Traffic Control</title>
|
|
<para>
|
|
Linux offers a very rich set of tools for managing and manipulating the
|
|
transmission of packets. The larger Linux community is very familiar with
|
|
the tools available under Linux for packet mangling and firewalling
|
|
(netfilter, and before that, ipchains) as well as hundreds of network
|
|
services which can run on the operating system. Few inside the community
|
|
and fewer outside the Linux community are aware of the tremendous power of
|
|
the traffic control subsystem which has grown and matured under kernels
|
|
2.2 and 2.4.
|
|
</para>
|
|
<para>
|
|
This HOWTO purports to introduce the
|
|
<link linkend="overview">concepts of traffic control</link>,
|
|
<link linkend="elements">the traditional elements (in general)</link>,
|
|
<link linkend="components">the components of the Linux traffic control
|
|
implementation</link> and provide some
|
|
<link linkend="rules">guidelines</link>
|
|
<!-- and <link linkend="examples">examples</link> -->.
|
|
This HOWTO represents the collection, amalgamation and synthesis of the
|
|
&url-lartc-howto;, documentation from individual projects and importantly
|
|
the &url-lartc-mailinglist; over a period of study.
|
|
</para>
|
|
<para>
|
|
The impatient soul, who simply wishes to experiment right now, is
|
|
recommended to the &url-tcng-htb-howto; and &url-lartc-howto; for
|
|
immediate satisfaction.
|
|
</para>
|
|
<para>
|
|
</para>
|
|
<section id="i-assumptions">
|
|
<title>Target audience and assumptions about the reader</title>
|
|
<para>
|
|
The target audience for this HOWTO is the network administrator or savvy
|
|
home user who desires an introduction to the field of traffic control
|
|
and an overview of the tools available under Linux for implementing
|
|
traffic control.
|
|
</para>
|
|
<para>
|
|
I assume that the reader is comfortable with UNIX concepts and the
|
|
command line and has a basic knowledge of IP networking. Users who wish
|
|
to implement traffic control may require the ability to patch, compile
|
|
and install a kernel or software package
|
|
<footnote>
|
|
<para>
|
|
See <xref linkend="software"/> for more details on the use or
|
|
installation of a particular traffic control mechanism, kernel or
|
|
command line utility.
|
|
</para>
|
|
</footnote>. For users with newer kernels
|
|
(2.4.20+, see also
|
|
<xref linkend="s-kernel"/>), however, the ability to install and use
|
|
software may be all that is required.
|
|
</para>
|
|
<para>
|
|
Broadly speaking, this HOWTO was written with a sophisticated user in
|
|
mind, perhaps one who has already had experience with traffic control
|
|
under Linux. I assume that the reader may have
|
|
no prior traffic control experience.
|
|
</para>
|
|
</section>
|
|
|
|
<section id="i-conventions">
|
|
<title>Conventions</title>
|
|
<para>
|
|
This text was written in
|
|
<ulink url="http://www.docbook.org/">DocBook</ulink>
|
|
(<ulink url="http://www.docbook.org/xml/4.2/index.html">version 4.2</ulink>)
|
|
with
|
|
<ulink url="http://vim.sourceforge.net/"><command>vim</command></ulink>.
|
|
All formatting has been applied by
|
|
<ulink url="http://xmlsoft.org/XSLT/">xsltproc</ulink> based on
|
|
<ulink url="http://docbook.sourceforge.net/projects/xsl/">DocBook
|
|
XSL</ulink> and
|
|
<ulink url="http://www.tldp.org/LDP/LDP-Author-Guide/usingldpxsl.html">LDP
|
|
XSL</ulink> stylesheets. Typeface formatting and display conventions
|
|
are similar to most printed and electronically distributed technical
|
|
documentation.
|
|
</para>
|
|
</section>
|
|
|
|
<section id="i-recommendation">
|
|
<title>Recommended approach</title>
|
|
<para>
|
|
I strongly recommend to the eager reader making a first foray into the
|
|
discipline of traffic control, to become only casually familiar with the
|
|
&link-tc; command line utility, before concentrating on &link-tcng;. The
|
|
&tcng; software package defines an entire language for describing
|
|
traffic control structures.
|
|
At first, this language may seem daunting, but mastery of these basics
|
|
will quickly provide the user with a much wider ability to employ (and
|
|
deploy) traffic control configurations than the direct use of &tc;
|
|
would afford.
|
|
</para>
|
|
<para>
|
|
Where possible, I'll try to prefer describing the behaviour of
|
|
the Linux traffic control system in an abstract manner, although in
|
|
many cases I'll need to supply the syntax of one or the other common
|
|
systems for defining these structures. I may not supply examples in
|
|
both the &tcng; language and the &tc; command line, so the wise user
|
|
will have some familiarity with both.
|
|
</para>
|
|
<para>
|
|
</para>
|
|
</section>
|
|
|
|
<section id="i-missing">
|
|
<title>Missing content, corrections and feedback</title>
|
|
<para>
|
|
There is content yet missing from this HOWTO. In particular, the
|
|
following items will be added at some point to this documentation.
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
A section of examples.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
A section detailing the classifiers.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
A section discussing the techniques for measuring traffic.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
A section covering meters.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
More details on &tcng;.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Descriptions of newer qdiscs, specifically, Controlled Delay
|
|
(codel), Fair Queue Controlled Delay (fq_codel), Proportional
|
|
Integrated controller Enhanced (pie), Stochastic Fair Blue (sfb),
|
|
Heavy Hitter Filter (hhf), Choke (choke).
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
<para>
|
|
I welcome suggestions, corrections and feedback at &email;. All errors
|
|
and omissions are strictly my fault. Although I have made every effort
|
|
to verify the factual correctness of the content presented herein, I
|
|
cannot accept any responsibility for actions taken under the influence
|
|
of this documentation.
|
|
</para>
|
|
<para>
|
|
</para>
|
|
</section>
|
|
|
|
</section>
|
|
|
|
<!-- end of file -->
|