5个核心功能揭秘:Mermaid在线编辑器如何让图表制作变得如此简单
2026/6/4 10:49:43
QoS(Quality of Service)的基本原理是根据可用网络速度来决定输入/输出数据包的接收和传输速率。在Linux中,网络接口默认的队列规则(qdisc)是 “pfifo_fast_qdisc”,不过根据需求,也可以替换为其他类型的队列规则。基于类的队列规则(Class - Based Queueing,CBQ)能够对不同子类之间的链路速度进行整形,从而实现基于质量的传输,并有效利用分配的带宽进行接收和传输。
cbq_dequeue()函数的参数是网络设备的队列规则(qdisc)。当该函数首次在从队列中开始出队数据包之前被调用时,它会在第995行使用宏PSCHED_GET_TIME获取当前(开始)时间。接着,它会检查并确定传输类(即q → tc_class)。最初,第998行的这个条件为假,因为该值将在cbq_dequeue_prio()函数从活动类列表中选择传输类之后进行设置。
如果传输类(q → tx_class)已设置,那么它会调用cbq_update()函数。该函数主要用于计算CBQ参数(空闲时间idle和平均空闲时间avgidle),这些参数将用于根据分配的带宽速率来判断传输类是否正在使用