TC源码分析一,tc命令

本文详细介绍Linux的TC流量控制系统,涵盖其基本概念、工作原理及配置方法。解释了TC的三种核心组件:qdiscs、classes与filters,并展示了如何利用CBQ等队列管理算法进行带宽管理和流量调度。

TC

Traffic Control
TC 框架可以理解为一个控发不控收的框架,在 ingress 的位置只能做简单的控制,且不能有其他子项。如想对 ingress 进行控制请参考 IMQ 以及 ifb。

流控方式

  • SHAPING: 限流,平滑激增流量使得网络更加稳定。只适用于出口的流量。
  • SCHEDULING: 调度,管理类数据包传输,按优先级分配带宽。只适用于出口流量。
  • POLICING : 策略,用于入口流量。
  • DROPPING : 丢弃,超过带宽的流量,可以用于入口和出口流量。

处理这几种方式的方法有三种 qdiscs、classes、filters。

QDISCS

Queueing Discipline,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc (排队规则)把数据包加入队列。内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。

CLASSES

某些QDisc(排队规则)可以包含一些类别,不同的类别中可以包含更深入的QDisc(排队规则),通过这些细分的QDisc还可以为进入的队列的数据包排队。通过设置各种类别数据包的离队次序,QDisc可以为设置网络数据流量的优先级。

FILTERS

Filters 用来为 classful qdiscs 去判定如何进行分类排序。当数据包进入一个包含子类的类别中的时候就需要分类,filters 就是其中一种分类的方式。再一个有一个具体的结果被分类器挑选出来之前,所有的 filters 将被尝试的去调用。如果最终也没有返回结果,那么可能需要除了 filters 之外其他的分类方式。Filters 是 qdiscs 内部的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值