ADSL Bandwidth Management HOWTO

Dan Singletary

Revision History
Revision 1.32003-04-07Revised by: ds
Added links section.
Revision 1.22002-09-26Revised by: ds
Added link to new Email Discussion List. Added small teaser to caveat section regarding new and improved QoS for Linux designed specifically for ADSL to be released soon.
Revision 1.12002-08-26Revised by: ds
A few corrections (Thanks to the many that pointed them out!). Added informational caveat to implementation section.
Revision 1.02002-08-21Revised by: ds
Better control over bandwidth, more theory, updated for 2.4 kernels
Revision 0.12001-08-06Revised by: ds
Initial publication

This document describes how to configure a Linux router to more effectively manage outbound traffic on an ADSL modem or other device with similar bandwidth properties (cable modem, ISDN, etc). Emphasis is placed on lowering the latency for interactive traffic even when the upstream and/or downstream bandwidth is fully saturated.

Table of Contents
1. Introduction
1.1. New Versions of This Document
1.2. Email Discussion List
1.3. Disclaimer
1.4. Copyright and License
1.5. Feedback and corrections
2. Background
2.1. Prerequisites
2.2. Layout
2.3. Packet Queues
3. How it Works
3.1. Throttling Outbound Traffic with Linux HTB
3.2. Priority Queuing with HTB
3.3. Classifying Outbound Packets with iptables
3.4. A few more tweaks...
3.5. Attempting to Throttle Inbound Traffic
4. Implementation
4.1. Caveats
4.2. Script: myshaper
5. Testing the New Queue
6. OK It Works!! Now What?
7. Related Links