在Linux中,流量控制都是通过TC(traffic control)这个工具来完成的。TC通过三种对象控制流量的处理,它们是:qdisc(排队规则)、class(类别)和filter(过滤器)。通常,要对网卡进行流量控制的配置,需要进行如下的步骤:
*◆ 为网卡配置一个队列;*
*◆ 在该队列上建立分类;*
*◆ 根据需要建立子队列和子分类;*
*◆ 为每个分类建立过滤器。*
步骤理解图:
QDISC(排队规则) QDisc(排队规则)是queueing discipline的简写,它是理解流量控制(traffic control)的基础。无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。
tc配置结构图解:
可分类队列可以在队列的class中嵌套队列或者过滤器,而不可分配队列没有class,仅仅只有一个队列属性。
tc可以使用以下命令对QDisc、类和过滤器进行操作: