Linux 提供了一套非常丰富的工具,用于管理和操作数据包的传输。更广泛的 Linux 社区非常熟悉 Linux 下可用的数据包处理和防火墙工具(netfilter,以及之前的 ipchains),以及可以在操作系统上运行的数百种网络服务。社区内部很少有人,Linux 社区之外的人就更少了,意识到流量控制子系统的巨大威力,这个子系统在 2.2 和 2.4 内核下成长和成熟。
本 HOWTO 旨在介绍流量控制的概念、传统要素(一般而言)、Linux 流量控制实现的组件,并提供一些指南。本 HOWTO 代表了对 LARTC HOWTO、来自各个项目的文档以及重要的 LARTC 邮件列表 在一段时间的研究中的收集、整合和综合。
对于只想立即进行实验的急躁的人,建议参考 使用 tcng 和 HTB 的流量控制 HOWTO 以及 LARTC HOWTO,以立即获得满足。
本 HOWTO 的目标受众是网络管理员或精通技术的家庭用户,他们希望了解流量控制领域的入门知识,并概述 Linux 下可用于实现流量控制的工具。
我假设读者熟悉 UNIX 概念和命令行,并具有 IP 网络的基本知识。希望实施流量控制的用户可能需要具备修补、编译和安装内核或软件包的能力[1]。但是,对于使用较新内核(2.4.20+,另请参见第 5.1 节)的用户而言,安装和使用软件的能力可能就是所需的全部。
广义上讲,本 HOWTO 是为经验丰富的用户编写的,也许是那些已经具有 Linux 下流量控制经验的用户。我假设读者可能没有先前的流量控制经验。
本文档使用 DocBook (版本 4.2) 和 vim 编写。所有格式均由 xsltproc 基于 DocBook XSL 和 LDP XSL 样式表应用。 字体格式和显示约定与大多数印刷和电子发行的技术文档类似。
我强烈建议渴望首次涉足流量控制学科的读者,在专注于 tcng 之前,仅对 tc 命令行实用程序略作熟悉。tcng 软件包定义了一种完整的语言,用于描述流量控制结构。乍一看,这种语言可能令人望而生畏,但是掌握这些基础知识将迅速为用户提供比直接使用 tc 更广泛地使用(和部署)流量控制配置的能力。
在可能的情况下,我将尝试以抽象的方式描述 Linux 流量控制系统的行为,尽管在许多情况下,我需要提供用于定义这些结构的常见系统之一或另一个的语法。我可能不会同时提供 tcng 语言和 tc 命令行中的示例,因此明智的用户将对两者都有一定的了解。
本 HOWTO 仍缺少内容。特别是,以下项目将在稍后添加到本文档中。
GRED、WRR、PRIO 和 CBQ 的描述和图表。
示例部分。
详细说明分类器的部分。
讨论流量测量技术的部分。
涵盖计量器的部分。
有关 tcng 的更多详细信息。
我欢迎提出建议、更正和反馈,请发送至<martin@linux-ip.net>。所有错误和遗漏都完全是我的责任。尽管我已经尽一切努力来验证此处提供的内容的事实正确性,但我无法对在本文档的影响下采取的行动承担任何责任。
[1] | 有关特定流量控制机制、内核或命令行实用程序的使用或安装的更多详细信息,请参见第 5 节。 |