ADSL Bandwidth Management HOWTO by Dan Singletary (inspirational books for students TXT) π
-----
3.5. Attempting to Throttle Inbound Traffic
By using the Intermediate Queuing Device (IMQ), we can run all incoming packets through a queue in the same way that we queue outbound packets. Packet priority is much simpler in this case. Since we can only (attempt to) control inbound TCP traffic, we'll put all non-TCP traffic in the 0x00 class, and all TCP traffic in the 0x01 class. We'll also place "small" TCP packets in the 0x00 class since these are most likely ACK packets for outbound data that has already been sent. We'll set up a standard FIFO queue on the 0x00 class, and we'll set up a Random Early Drop (RED) queue on the 0x01 class. RED is better than a FIFO (tail-drop) queue at controlling TCP because it will drop packets before the queue overflows in an attempt to slow down transfers that look like they're about to get out of control. We'll also rate-limit bot
Read free book Β«ADSL Bandwidth Management HOWTO by Dan Singletary (inspirational books for students TXT) πΒ» - read online or download for free at americanlibrarybooks.com
- Author: Dan Singletary
- Performer: -
Read book online Β«ADSL Bandwidth Management HOWTO by Dan Singletary (inspirational books for students TXT) πΒ». Author - Dan Singletary
ADSL Bandwidth Management HOWTO
Dan Singletary
Revision History
Revision 1.3 2003-04-07 Revised by: ds
Added links section.
Revision 1.2 2002-09-26 Revised 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.1 2002-08-26 Revised by: ds
A few corrections (Thanks to the many that pointed them out!). Added
informational caveat to implementation section.
Revision 1.0 2002-08-21 Revised by: ds
Better control over bandwidth, more theory, updated for 2.4 kernels
Revision 0.1 2001-08-06 Revised 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
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
Background
2.1. Prerequisites
2.2. Layout
2.3. Packet Queues
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
Implementation
4.1. Caveats
4.2. Script: myshaper
Testing the New Queue
OK It Works!! Now What?
Related Links
Introduction
The purpose of this document is to suggest a way to manage outbound traffic
on an ADSL (or cable modem) connection to the Internet. The problem is that
many ADSL lines are limited in the neighborhood of 128kbps for upstream data
transfer. Aggravating this problem is the packet queue in the ADSL modem
which can take 2 to 3 seconds to empty when full. Together this means that
when the upstream bandwidth is fully saturated it can take up to 3 seconds
for any other packets to get out to the Internet. This can cripple
interactive applications such as telnet and multi-player games.
1.1. New Versions of This Document
You can always view the latest version of this document on the World Wide Web
at the URL: [http://www.tldp.org] http://www.tldp.org.
New versions of this document will also be uploaded to various Linux WWW and
FTP sites, including the LDP home page at [http://www.tldp.org] http://
www.tldp.org.
1.2. Email Discussion List
For questions and update information regarding ADSL Bandwidth Management
please subscribe to the ADSL Bandwidth Management email list at [http://
jared.sonicspike.net/mailman/listinfo/adsl-qos] http://jared.sonicspike.net/
mailman/listinfo/adsl-qos.
1.3. Disclaimer
Neither the author nor the distributors, or any other contributor of this
HOWTO are in any way responsible for physical, financial, moral or any other
type of damage incurred by following the suggestions in this text.
1.4. Copyright and License
This document is copyright 2002 by Dan Singletary, and is released under the
terms of the GNU Free Documentation License, which is hereby incorporated by
reference.
1.5. Feedback and corrections
If you have questions or comments about this document, please feel free to
contact the author at [mailto:[email protected]] [email protected].
Background2.1. Prerequisites
The method outlined in this document should work in other Linux
configurations however it remains untested in any configuration but the
following:
οΏ½οΏ½*οΏ½Red Hat Linux 7.3
οΏ½οΏ½*οΏ½2.4.18-5 Kernel with QoS Support fully enabled (modules OK) and including
the following kernel patches (which may eventually be included in later kernels): οΏ½οΏ½+οΏ½HTB queue - [http://luxik.cdi.cz/~devik/qos/htb/] http://luxik.cdi.cz /~devik/qos/htb/ Note: it has been reported that kernels since version 2.4.18-3 shipped with Mandrake (8.1, 8.2) have already been patched for HTB. οΏ½οΏ½+οΏ½IMQ device - [http://luxik.cdi.cz/~patrick/imq/] http://luxik.cdi.cz/ ~patrick/imq/οΏ½οΏ½*οΏ½iptables v1.2.6a or later (version of iptables distributed with Red Hat
7.3 is missing the length module)+---------------------------------------------------------------------------+
| |
| Note: Previous versions of this document specified a method of bandwidth |
| control that involved patching the existing sch-prio queue. It was found |
| later that this patch was entirely unnecessary. Regardless, the newer |
| methods outlined in this document will give you better results (although |
| at the writing of this document 2 kernel patches are now necessary. :) |
| Happy patching.) |
| |
+---------------------------------------------------------------------------+
2.2. Layout
In order to keep things simple, all references to network devices and
configuration in this document will be with respect to the following network
layout diagram:
+----------------------------------------------------------------------------+
| <-- 128kbit/s -------------- <-- 10Mbit --> |
| Internet <--------------------> | ADSL Modem | <-------------------- |
| 1.5Mbit/s --> -------------- | |
| | eth0 |
| V |
| ----------------- |
| | | |
| | Linux Router | |
|
Comments (0)