1. Linux 流量控制简介

Linux 提供了一套非常丰富的工具,用于管理和操作数据包的传输。更广泛的 Linux 社区非常熟悉 Linux 下可用的数据包处理和防火墙工具(netfilter,以及之前的 ipchains),以及可以在操作系统上运行的数百种网络服务。社区内部很少有人,Linux 社区之外的人就更少了,意识到流量控制子系统的巨大威力,这个子系统在 2.2 和 2.4 内核下成长和成熟。

本 HOWTO 旨在介绍流量控制的概念传统要素(一般而言)Linux 流量控制实现的组件,并提供一些指南。本 HOWTO 代表了对 LARTC HOWTO、来自各个项目的文档以及重要的 LARTC 邮件列表 在一段时间的研究中的收集、整合和综合。

对于只想立即进行实验的急躁的人,建议参考 使用 tcng 和 HTB 的流量控制 HOWTO 以及 LARTC HOWTO,以立即获得满足。

1.1. 目标受众和对读者的假设

本 HOWTO 的目标受众是网络管理员或精通技术的家庭用户,他们希望了解流量控制领域的入门知识,并概述 Linux 下可用于实现流量控制的工具。

我假设读者熟悉 UNIX 概念和命令行,并具有 IP 网络的基本知识。希望实施流量控制的用户可能需要具备修补、编译和安装内核或软件包的能力[1]。但是,对于使用较新内核(2.4.20+,另请参见第 5.1 节)的用户而言,安装和使用软件的能力可能就是所需的全部。

广义上讲,本 HOWTO 是为经验丰富的用户编写的,也许是那些已经具有 Linux 下流量控制经验的用户。我假设读者可能没有先前的流量控制经验。

1.2. 约定

本文档使用 DocBook (版本 4.2) 和 vim 编写。所有格式均由 xsltproc 基于 DocBook XSLLDP XSL 样式表应用。 字体格式和显示约定与大多数印刷和电子发行的技术文档类似。

1.3. 推荐方法

我强烈建议渴望首次涉足流量控制学科的读者,在专注于 tcng 之前,仅对 tc 命令行实用程序略作熟悉。tcng 软件包定义了一种完整的语言,用于描述流量控制结构。乍一看,这种语言可能令人望而生畏,但是掌握这些基础知识将迅速为用户提供比直接使用 tc 更广泛地使用(和部署)流量控制配置的能力。

在可能的情况下,我将尝试以抽象的方式描述 Linux 流量控制系统的行为,尽管在许多情况下,我需要提供用于定义这些结构的常见系统之一或另一个的语法。我可能不会同时提供 tcng 语言和 tc 命令行中的示例,因此明智的用户将对两者都有一定的了解。

1.4. 缺少的内容、更正和反馈

本 HOWTO 仍缺少内容。特别是,以下项目将在稍后添加到本文档中。

我欢迎提出建议、更正和反馈,请发送至。所有错误和遗漏都完全是我的责任。尽管我已经尽一切努力来验证此处提供的内容的事实正确性,但我无法对在本文档的影响下采取的行动承担任何责任。

注释

[1]

有关特定流量控制机制、内核或命令行实用程序的使用或安装的更多详细信息,请参见第 5 节