Linux内核QoS实现机制
linux内核qos实现机制

linux内核qos实现机制Linux内核中的QoS实现机制在Linux内核中,Quality of Service(QoS)是一种网络管理机制,用于提供不同网络流量的不同服务质量。
QoS机制通过设置优先级和限制带宽来控制网络流量,以确保关键应用程序的性能和稳定性。
本文将介绍Linux内核中的QoS实现机制,以及它是如何工作的。
一、QoS的概念和作用QoS是一种网络管理技术,用于在网络上为不同类型的流量提供不同的服务质量。
它通过优先级和带宽限制来保证关键应用程序的性能和稳定性。
QoS可以确保实时应用程序,如语音和视频通话,在网络拥塞时仍能保持良好的用户体验。
同时,QoS还可以限制带宽消耗较大的应用程序,以保证其他应用程序的正常运行。
二、Linux内核中的QoS实现机制Linux内核中的QoS实现主要基于两个关键组件:Traffic Control (TC)和Class-based Queueing(CBQ)。
1. Traffic Control(TC):TC是Linux内核中用于实现QoS的主要工具。
它提供了一套灵活的机制,用于设置流量的优先级、限制带宽和进行流量分类。
通过使用TC,可以对流量进行过滤、重定向和限制,以实现不同应用程序的不同服务质量。
2. Class-based Queueing(CBQ):CBQ是TC中的一种队列调度算法,用于对流量进行分类和管理。
CBQ将流量分为不同的类别,并为每个类别分配带宽。
通过使用CBQ,可以根据应用程序的需求,为不同类型的流量分配不同的带宽,以实现更精确的QoS控制。
三、QoS实现的具体步骤在Linux内核中,实现QoS的具体步骤如下:1. 配置TC:首先,需要配置TC来启用QoS功能。
可以使用命令行工具tc来配置TC,例如:```tc qdisc add dev eth0 root handle 1: htb default 10```这个命令将在eth0接口上创建一个根队列,并使用Hierarchical Token Bucket(HTB)算法来进行队列调度。
请描述linux下常见的调度策略及调度原理

请描述linux下常见的调度策略及调度原理在Linux下,常见的进程调度策略包括:1.CFS(Completely Fair Scheduler)完全公平调度器:CFS是Linux内核默认的调度策略。
它通过使用红黑树数据结构来维护进程队列,以确保公平分配CPU时间片。
CFS基于进程的虚拟运行时间(vruntime)进行调度,根据进程的优先级和历史执行情况来分配CPU时间。
2.实时调度策略:Linux提供了多种实时调度策略,包括先来先服务(FIFO)和轮转(Round Robin)调度策略。
实时任务具有较高的优先级,可以实时响应系统事件,适用于对时间敏感的应用,如嵌入式系统和实时视频处理等。
3.基于优先级的调度策略:Linux还支持基于静态优先级和动态优先级的调度策略。
这些策略根据进程的优先级决定调度顺序,优先级较高的进程将获得更多的CPU时间。
调度原理是指操作系统如何决定哪个进程获得CPU资源的分配。
Linux的调度器使用时间片轮转和优先级调度等策略来实现公平和高效的调度。
调度器会根据不同的调度策略和优先级,分配给每个进程一定的CPU时间片。
时间片指定了进程能够运行的时间段。
当一个进程的时间片用完或发生了阻塞事件时,调度器会将CPU 分配给下一个就绪状态的进程。
CFS调度器基于虚拟运行时间(vruntime)来分配CPU时间。
vruntime表示进程所需的实际运行时间,CFS通过比较进程的vruntime来决定下一个运行的进程。
较长时间没有运行的进程会被赋予更长的时间片,以实现公平调度。
实时调度策略将优先级更高的实时任务放在优先级队列的前面,以确保它们及时地响应系统事件。
在实时任务运行期间,其他普通优先级的任务将被暂时挂起。
总的来说,Linux的调度器通过多种调度策略和优先级,根据不同类型的任务和进程的要求,合理分配CPU资源,以实现公平、高效和响应及时的调度。
这样可以确保系统的正常运转并提高性能。
Linux高级路由-QOS

Linux⾼级路由-QOS服务质量:在带宽⼀定的情况下,提供更好的服务质量多端⼝使⽤宽带,在各种服务抢带宽的时候以太⽹模型是慢启动模式延时ssh吞吐web先⼊先出快速通道和慢速通道++++++++++++++QOS服务质量++++++++++++[root@localhost ~]# tc qdisc ls[root@localhost ~]# tc qdisc ls dev eth0qdisc pfifo_fast 0: bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1默认情况下,⽹卡的队列规则为pfifo_fast。
不分类,尽可能快的先⼊先出队列规则分为两种: ⽆类队列规则pfifo/bfifopfifo_fastred⾻⼲⽹路由器上⽤,随机早期预测sfq 完全公平队列 tbf 令牌桶过滤 --- 流量整形(限速)添加删除队列规则]# tc qdisc add dev eth0 root pfifo]# tc qdisc del dev eth0 root什么叫做队列默认1个情况下,默认⽹卡的队列规则为pfifo_fast。
不分类,尽可能快的先进先出tc qdisc ls 查看队列规则设置流量控制tc class 创建tc filter 过滤:数据包优先级问题---通过队列来实现• 只有⼀个⽹卡,我们要设置⼀个队列规则• ⼀般情况下,应⽤程序产⽣数据包,⽹卡处理数据包,原则是先到先发(FIFO),队列。
• ⽽有些数据包需要先发出----再开⼀个队列,让队列与队列的优先级不⼀样。
==================什么叫做队列规则:• 队列规定:管理设备输⼊(ingress)或输出(egress)的⼀个算法。
• ⽆类的队列规定:⼀个内部不包含可配置⼦类的队列规定。
• 分类的队列规定:⼀个分类的队列规定内可⼀包含更多的类。
其中每个类⼜进⼀步地包含⼀个队列规定,这个队列规定可以是分类的,也可以是⽆类的。
linux QOS(TC) 功能实现分析

linux QOS 功能实现分析文档编号:00-6201-100当前版本:1.0.0.0创建日期:2008-7-24编写作者:wanghuaijialinux QOS 功能实现分析前言 (3)关于此文档 (3)参考资料 (3)Linux内核对QoS的支持 (5)对于入口数据包控制 (6)发送数据包的控制 (8)TC的具体设计与实现 (11)struct Qdisc_ops 说明 (15)LINUX 内核中安装策略对象过程 (17)前言关于此文档此文档是本人这段时间内学习QOS相关知识,总结并且整理出来的文档。
供大家参考。
本文档描述QOS相关知识,各章节说明如下:1前言,即此章节;2 QOS简介,介绍QOS基本知识、QOS提出的意义,以及QOS 的三种不同的服务模型;3:介绍QOS相关的技术,介绍了报文分类以及标记,拥塞管理技术,拥塞避免技术,以及流量整形和流量监管。
并且介绍了链路层相关的速度限制。
参考资料网络资源。
linux QOS 功能实现分析Linux内核对QoS的支持 (5)对于入口数据包控制 (6)发送数据包的控制 (8)TC的具体设计与实现 (11)struct Qdisc_ops 说明 (15)LINUX 内核中安装策略对象过程 (17)在传统的TCP/IP网络的路由器中,所有的IP数据包的传输都是采用FIFO(先进先出),尽最大努力传输的处理机制。
在早期网络数据量和关键业务数据不多的时候,并没有体现出非常大的缺点,路由器简单的把数据报丢弃来处理拥塞。
但是随着计算机网络的发展,数据量的急剧增长,以及多媒体,VOIP数据等对延时要求高的应用的增加。
路由器简单丢弃数据包的处理方法已经不再适合当前的网络。
单纯的增加网络带宽也不能从根本上解决问题。
所以网络的开发者们提出了服务质量的概念。
概括的说:就是针对各种不同需求,提供不同服务质量的网络服务功能。
提供QoS能力将是对未来IP网络的基本要求。
openwrt qos原理 -回复

openwrt qos原理-回复OpenWRT QoS原理及实现方法引言:随着计算机网络的广泛应用,对于网络性能的要求也越来越高。
在网络中,带宽是一个重要的资源,但是网络上的应用程序很多,它们竞争有限的带宽资源,导致网络拥塞和延迟。
为了优化网络性能,提供更好的用户体验,引入了QoS(Quality of Service,服务质量)技术。
OpenWRT是一个基于Linux的嵌入式操作系统,它允许用户对路由器进行自定义配置和优化。
本文将详细介绍OpenWRT QoS的原理和实现方法。
一、QoS原理1. 什么是QoS?QoS是指在网络中根据不同的应用和服务要求,通过对网络流量进行管理和控制,使得重要的应用和服务能够获得更好的性能和保证,同时限制非关键应用的带宽使用。
QoS可以实现带宽管理、流量控制和优先级调度等功能。
2. QoS实现的基本原理QoS的实现基于两个重要的机制:流量分类和队列调度。
流量分类是将网络流量按照不同的规则进行分类,确定不同流量的优先级;队列调度是按照分类优先级对不同的流量进行排队处理,确保高优先级流量优先发送。
3. 分类和标记在QoS中,首先需要对流量进行分类和标记。
分类可以根据不同的指标进行,比如源IP地址、目的IP地址、端口号等。
标记则是给流量设置一个优先级的标签,用于后续的队列调度。
4. 队列调度队列调度是QoS的核心机制,通过对不同流量的排队处理来实现服务质量控制。
通常使用的调度算法有FIFO(First In First Out)、WFQ (Weighted Fair Queueing)、CBQ(Class Based Queueing)等。
其中,WFQ常用于公平调度,CBQ常用于按照不同流量的优先级进行调度。
5. 限速和带宽分配QoS还涉及到限速和带宽分配的问题。
由于带宽资源是有限的,需要通过限速来控制流量的使用。
限速可以按照不同的分类进行设置,确保高优先级流量的带宽需求得到满足。
openwrt qos原理 -回复

openwrt qos原理-回复OpenWrt QoS原理OpenWrt是一个基于Linux的自由软件,它广泛应用于嵌入式设备、路由器等网络设备。
OpenWrt不仅提供了路由器的基本功能,还可以使用各种额外的软件包来扩展其功能。
其中一个重要的功能就是QoS(Quality of Service,服务质量)管理。
本文将从头开始,一步一步讲解OpenWrt QoS的原理。
1. 什么是QoS?QoS是一种网络管理机制,用于在网络拥塞或带宽限制条件下,为不同的网络流量分配优先级和资源。
QoS可以确保关键应用程序的性能,同时防止其他占用带宽的应用程序对网络的过度占用。
2. OpenWrt中的QoSOpenWrt提供了一个名为"SQM"(Smart Queue Management,智能队列管理)的软件包,用于实现QoS功能。
SQM是一个独立的软件包,它可以在OpenWrt路由器上运行,并允许用户为不同的网络流量设置优先级和带宽限制。
3. SQM的工作原理SQM基于一种名为"fq_codel"的队列管理算法,该算法被广泛认为是一种高效的队列管理算法。
它可以在网络拥塞或带宽限制的情况下,避免常见的网络问题,如延迟、抖动和丢包。
4. SQM的配置在OpenWrt中,配置SQM可以通过编辑"/etc/config/sqm"文件来完成。
该文件定义了不同的队列管理规则,可以根据用户的需求进行调整。
4.1 队列管理规则常见的队列管理规则包括以下几种:- Interface: 指定要应用QoS的接口,例如"eth0"或"pppoe-wan"。
- Download: 设置下载(入口)流量的优先级和带宽限制。
- Upload: 设置上传(出口)流量的优先级和带宽限制。
- Link Layer Adaptation(LLA): 指定链路层适配器,用于检测网络的实际带宽和延迟,以便更好地调整队列管理算法。
linux下常见的调度策略及调度原理

linux下常见的调度策略及调度原理Linux是一种开源的操作系统,广泛应用于服务器和嵌入式设备中。
在Linux系统中,进程调度策略是操作系统的核心组成部分之一,它决定了进程的执行顺序和时间分配。
本文将介绍Linux下常见的调度策略及其调度原理。
在Linux系统中,常见的进程调度策略包括先来先服务(FCFS)、最短作业优先(SJF)、时间片轮转(RR)和优先级调度(Priority Scheduling)等。
先来先服务(FCFS)是一种简单而直观的调度策略,它按照进程到达的先后顺序进行调度。
即当一个进程到达系统时,它将被放入就绪队列的末尾,并等待CPU的分配。
当CPU空闲时,系统将选择就绪队列中的第一个进程分配给CPU执行。
这种调度策略的优点是公平性强,但缺点是无法处理长作业和短作业的差异,容易产生"饥饿"现象。
最短作业优先(SJF)调度策略是根据进程的执行时间来决定优先级的调度策略。
即系统会选择执行时间最短的进程先执行,以减少平均等待时间。
这种调度策略的优点是能够最大程度地减少平均等待时间,但缺点是可能会出现长作业等待时间过长的问题。
时间片轮转(RR)是一种基于时间片的调度策略,每个进程被分配一个固定长度的时间片。
当一个进程的时间片用完时,系统将把CPU分配给下一个进程。
这种调度策略的优点是能够有效地平衡进程之间的响应时间,但缺点是可能会导致频繁的上下文切换。
优先级调度(Priority Scheduling)是一种根据进程优先级来决定调度顺序的策略。
每个进程被分配一个优先级,优先级越高的进程越容易被调度执行。
这种调度策略的优点是能够根据不同进程的需求进行灵活调度,但缺点是可能会导致低优先级进程的"饥饿"问题。
在Linux系统中,调度算法的实现是通过内核的进程调度器来完成的。
内核中的调度器会根据不同的调度策略来选择下一个要执行的进程,并将其上下文切换到CPU中执行。
tc qdisc 原理

tc qdisc 原理TC(Traffic Control)是Linux系统中的一个网络流量控制工具,通过对网络流量进行管理和调度,可以实现对网络带宽的合理分配和流量控制。
而Qdisc(Queueing Discipline)是TC中的一种队列规则,用于管理和调度网络数据包的排队和发送。
本文将围绕着TC Qdisc的原理展开,介绍其作用、分类、工作原理以及常见的应用场景。
一、TC Qdisc的作用在计算机网络中,当多个主机同时进行数据传输时,往往会出现网络拥塞的情况,导致网络性能下降、延迟增加等问题。
TC Qdisc的作用就是通过对网络数据包进行管理和调度,实现对网络带宽的合理分配和流量控制,从而提高网络的性能和稳定性。
二、TC Qdisc的分类TC Qdisc根据其实现的功能和特点可以分为多种类型,常见的有以下几种:1. pfifo(Priority First In, First Out):按照数据包的到达顺序进行排队和发送,没有对数据包进行任何处理。
适用于对延迟要求较低的应用场景。
2. bfifo(Byte First In, First Out):按照数据包的大小进行排队和发送,较大的数据包会优先发送。
适用于对带宽要求较高的应用场景。
3. sfq(Stochastic Fairness Queueing):采用随机算法对数据包进行排队和发送,实现公平的带宽分配。
适用于对带宽公平分配要求较高的应用场景。
4. tbf(Token Bucket Filter):通过令牌桶算法对数据包进行排队和发送,实现对网络流量的限制和控制。
适用于对网络流量进行严格控制的应用场景。
三、TC Qdisc的工作原理TC Qdisc的工作原理主要包括以下几个步骤:1. 分类(Classification):根据规则将网络数据包进行分类,可以根据源IP地址、目标IP地址、端口号等进行分类。
2. 排队(Queueing):将分类后的数据包按照一定的规则放入相应的队列中,等待发送。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux内核QoS实现机制1.QoS介绍QoS(Quality of Service)即服务质量。
对于网络业务,服务质量包括传输的带宽、传送的时延、数据的丢包率等。
在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量。
网络资源总是有限的,只要存在抢夺网络资源的情况,就会出现服务质量的要求。
服务质量是相对网络业务而言的,在保证某类业务的服务质量的同时,可能就是在损害其它业务的服务质量。
例如,在网络总带宽固定的情况下,如果某类业务占用的带宽越多,那么其他业务能使用的带宽就越少,可能会影响其他业务的使用。
因此,网络管理者需要根据各种业务的特点来对网络资源进行合理的规划和分配,从而使网络资源得到高效利用。
流量控制包括以下几种方式:⏹SHAPING(限制)当流量被限制,它的传输速率就被控制在某个值以下。
限制值可以大大小于有效带宽,这样可以平滑突发数据流量,使网络更为稳定。
shaping(限制)只适用于向外的流量。
⏹SCHEDULING(调度)通过调度数据包的传输,可以在带宽范围内,按照优先级分配带宽。
SCHEDULING(调度)也只适于向外的流量。
⏹POLICING(策略)SHAPING用于处理向外的流量,而POLICIING(策略)用于处理接收到的数据。
⏹DROPPING(丢弃)如果流量超过某个设定的带宽,就丢弃数据包,不管是向内还是向外。
2.内核实现过程图表 1 流量控制过程绿色部分就是Linux内核实现的QoS模块,其中ingress policing 是处理输入数据包的,而output queueing 则是处理输出数据包的。
2.1.Ingress实现机制Ingress QOS在内核的入口点有两个,但是不能同时启用,这取决于内核编译选项。
当打开了CONFIG_NET_CLS_ACT(from 2.6.8 release still available on 2.6.39 release)时,入口点在src/net/core/dev.c的netif_receive_skb函数中;当没有打开CONFIG_NET_CLS_ACT,而是打开了CONFIG_NET_CLS_POLICE (from 2.6.9 release to 2.6.24, thus this is an obsolete configuration)和CONFIG_NETFILTER时,就会在netfilter的PREROUTING钩子点处调用ing_hook函数。
CONFIG_NET_CLS_ACT CONFIG_NET_CLS_POLICE &&CONFIG_NETFILTER图表 2 ingress策略实现当filter中有规则时,遍历规则表,寻找与skb->mark(由ebtables或iptables来配置)相匹配的表项,如果找到了则会进一步调用tcf_exts_exec函数对扩展的action进行处理。
图表 3 FW分类器实现过程2.2.Egress实现机制系统在注册网络设备时会在register_netdevice函数中调用dev_init_scheduler函数注册一个qdisc的接口,它是一个特殊的qdisc,不做任何处理。
当创建好设备,用ifconfig up命令把设备拉起后,会调用到内核的src/net/core/dev.c中的dev_open函数,在dev_open函数中又会调用到src/net/sched/sch_generic.c中的dev_activate函数,给设备配置默认的root qdisc 处理机制:pfifo_fast。
注册网络设备ifconfig up出口队列调度的入口点在src/net/core/dev.c的dev_queue_xmit函数中,通过q = rcu_dereference(dev->qdisc)可以获取到设备上root qdisc的指针q(struct Qdisc *)。
在下面的处理过程中并没有判断q是否为NULL,这就说明设备上一定会存在egress qdisc,这一点和ingress是不同的,一个设备上可以没有ingress qdisc,即dev-> qdisc_ingress指针一般是NULL,除非通过tc qdisc命令配置了ingress qdisc。
数据包发送图表 5 以htb+pfifo qdisc为例的egress处理流程3.内核与TC的交互3.1.交互方式Netlink3.2.内核处理接口⏹Qdisc和class交互接口tc qdisc和tc clsss配置命令对应的配置函数在src/net/sched/sch_api.c的pktsched_init函数中进行了初始化注册,由subsys_initcall函数对系统进行申明,该函数在linux系统初始化的时候会被调用到。
代码片断如下:⏹filter交互接口tc filter配置命令对应的配置函数在src/net/sched/cls_api.c的tc_filter_init函数中进行了初始化注册,该函数也会在系统初始化的时候被调用到。
代码片段如下:3.3.TC与netlink交互的数据格式Netlink数据头部+tc消息头部⏹Netlink头部⏹TC数据头部:4.TC规则4.1.流量控制模型图表 6 流量控制实现模型4.2.流量控制处理对象流量的处理由三种对象控制,它们是:qdisc(排队规则)、class(类别)和filter(过滤器)。
4.2.1.QdiscQDisc(排队规则)是queueing discipline的简写,它是理解流量控制(traffic control)的基础。
无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。
然后,内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。
最简单的QDisc是pfifo它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。
不过,它会保存网络接口一时无法处理的数据包。
QDISC分为无类队列(CLASSLESS QDisc)和分类队列(CLASSFUL QDISC)类别。
使用中,无类队列只能作为叶子节点出现,而分类队列作为双亲节点出现,不能作为叶子节点出现。
4.2.1.1.无类队列a)Pfifo_fast默认参数,先进先出的队列,内核参照数据包的TOS标记,将数据包分为3个频道。
如果在0频道有数据包等待发送,1频道的包就不会被处理,1频道和2频道之间的关系也是如此。
TOS字段说明:TOS字段的4个bit定义:图表7 TOS值与频道的对应b)TBF只允许以不超过事先设定的速率到来的数据包通过,但可能允许短暂突发流量超过设定值。
3种情景:1)数据流以等于令牌流的速率到达TBF。
这种情况下,每个到来的数据包都能对应一个令牌,然后无延迟地通过队列。
2)数据流以小于令牌流的速度到达TBF。
通过队列的数据包只消耗了一部分令牌,剩下的令牌会在桶里积累下来,直到桶被装满。
剩下的令牌可以在需要以高于令牌流速率发送数据流的时候消耗掉,这种情况下会发生突发传输。
3)数据流以大于令牌流的速率到达TBF。
这意味着桶里的令牌很快就会被耗尽。
导致TBF中断一段时间,称为“越限”。
如果数据包持续到来,将发生丢包。
⏹参数选项:➢limit/latency:limit确定最多有多少数据(字节数)在队列中等待可用令牌。
你也可以通过设置latency参数来指定这个参数,latency参数确定了一个包在TBF中等待传输的最长等待时间。
后者计算决定桶的大小、速率和峰值速率。
➢burst/buffer/maxburst:桶的大小,以字节计。
这个参数指定了最多可以有多少个令牌能够即刻被使用。
通常,管理的带宽越大,需要的缓冲器就越大。
在Intel体系上,10兆bit/s的速率需要至少10k字节的缓冲区才能达到期望的速率。
如果你的缓冲区太小,就会导致到达的令牌没有地方放(桶满了),这会导致潜在的丢包。
➢Mpu:一个零长度的包并不是不耗费带宽。
比如以太网,数据帧不会小于64字节。
Mpu(Minimum Packet Unit,最小分组单位)决定了令牌的最低消耗。
➢Rate:速度操纵杆,参见上面的limits。
➢Peakrate:如果有可用的令牌,数据包一旦到来就会立刻被发送出去,就象光速一样。
那可能并不是你希望的,特别是你有一个比较大的桶的时候。
峰值速率可以用来指定令牌以多块的速度被删除。
用书面语言来说,就是:释放一个数据包,但后等待足够的时间后再释放下一个。
我们通过计算等待时间来控制峰值速率。
然而,由于UNIX定时器的分辨率是10毫秒,如果平均包长10k bit,我们的峰值速率被限制在了1Mbps。
➢mtu/minburst:但是如果你的常规速率比较高,1Mbps的峰值速率对我们就没有什么价值。
要实现更高的峰值速率,可以在一个时钟周期内发送多个数据包。
最有效的办法就是:再创建一个令牌桶!⏹配置范例:c)SFQSFQ(Stochastic Fairness Queueing,随机公平队列)是公平队列算法家族中的一个简单实现。
它的精确性不如其它的方法,但是它在实现高度公平的同时,需要的计算量却很少。
SFQ的关键词是“会话”(或称作“流”) ,主要针对一个TCP会话或者UDP流。
流量被分成相当多数量的FIFO队列中,每个队列对应一个会话。
数据按照简单轮转的方式发送, 每个会话都按顺序得到发送机会。
⏹参数选项:➢Perturb:多少秒后重新配置一次散列算法。
如果取消设置,散列算法将永远不会重新配置(不建议这样做)。
10秒应该是一个合适的值。
➢Quantum:一个流至少要传输多少字节后才切换到下一个队列。
却省设置为一个最大包的长度(MTU的大小)。
不要设置这个数值低于MTU!⏹配置范例:d)[p|b]fifo使用最简单的qdisc,纯粹的先进先出。
只有一个参数:limit,用来设置队列的长度,pfifo 是以数据包的个数为单位;bfifo是以字节数为单位。
⏹参数选项➢Limit:规定了队列的长度。
对于bfifo用字节计,对于pfifo用包的个数计。
缺省值就是网卡的txqueuelen个包那么长(参见pfifo_fast那一章),对于bfifo就是txqueuelen*mtu个字节。
e)redred是Random Early Detection(随机早期探测)的简写。
如果使用这种QDISC,当带宽的占用接近于规定的带宽时,系统会随机地丢弃一些数据包。
它非常适合高带宽应用。
为了使用RED,你必须确定三个参数:min、max和burst。