Linux 流量控制介绍Linux 提供了一系列可用于修改和调整网络数据包的工具
Linux 社区对修改数据包、应用防火墙策略(如 netfilter或更古老的 ipchains)以及在 Linux 上运行着的各种各样的网络服务已经非常熟悉
然而,Linux 社区内部却很少有人知道 Linux 的流量控制子系统已经非常成熟,并且有着强大的功能
在 Linux 社区外,Linux 流量控制的功能更是鲜有人知
本指南将会介绍 流量控制的思想、 方法以及 Linux 流量控制的组件
同时会提供一些一般性的指导
这份指南是笔者根据 LARTC HOWTO、对各种软件项目的研究,以及在 LARTC mailing list 上的一些重要主题整理而成的
对于急于实施 Linux 流量控制的人,建议直接阅读 Tra cffi Control using tcng and HTB HOWTO 何 LARTC HOWTO这两份资料
Linux 流量控制思想简介本节将会简要介绍 Linux 流量控制并说明为什么要实施流量控制,同时指出实施流量控制的一些优点 和缺点,最后再介绍 Linux 流量控制思想中的关键要素
什么是流量控制流量控制就是在路由器上通过一系列队列,对数据包进行排序以控制它们的发送顺序,并通过一系列策略控制收到的和发送的数据包是否应该被丢弃,同时还要对数据包的发送速率进行控制
在大部分情况下,流量控制只有一个队列,接收收到的数据包(译者注:这里的接收到的数据包指的是由本机应用程序产生的数据包,而不是指从网络上接收到的数据包),把它们放入队列,并以网络硬件所能支持的最大速度发送出去
这种类型的队列叫做 FIFO
注意:Linux 默认的排队规则是 pfifo_fast,这是一种比 FIFO 稍微复杂一点的排队规则
不同的应用有不同类型的队列