Linux TC
tc - 显示/操作流量控制(traffic control)设置
tc 用于配置 Linux 内核中的流量控制。流量控制包括以下几个方面:
整形(SHAPING)当流量被整形时,其传输速率会受到控制。整形不仅仅是降低可用带宽,它还用于平滑流量的突发,以改善网络行为。整形发生在出口端(egress)。
调度(SCHEDULING)通过调度数据包的传输,可以改善需要交互的流量的表现,同时保证大流量传输的带宽。重新排序也称为优先级设置,仅在出口端发生。
检测(POLICING)整形处理的是传输中的流量,而检测处理的是到达的流量。因此,检测发生在入口端(ingress)。
丢弃(DROPPING)超出设定带宽的流量也可能会被立即丢弃,这在入口端和出口端都会发生。
流量处理由三种对象控制:qdiscs、classes 和 filters。
qdisc 是 “队列规则 (queueing disciplin)” 的简称,对于理解流量控制至关重要。每当内核需要将数据包发送到接口时,它会被排入配置好的 qdisc 中。紧接着,内核会尽可能多地从 qdisc 中取出数据包,交给网络适配器驱动。
简单的 QDISC 是 “pfifo”,它不进行任何处理,仅仅是一个纯粹的先进先出(FIFO)队列。它在网络接口暂时无法处理流量时,会存储这些流量。
一些 qdiscs 可以包含 classes,这些 classes 进一步...