队列是使用预先定义的结构方法共同等待由网络设备传输的数据包的集合。在银行和超市排队的方法几乎是一样的,在这些地方,顾客根据到达地点来接受对待。
队列用于:
MikroTik RouterOS中的队列实现基雷竞技网站于HTB (Hiel雷竞技rarchical令牌桶)。HTB允许创建分层队列结构,并确定队列之间的关系。这些层次结构可以附加在两个不同的地方,即报文流图说明这两个输入而且postrouting)链。
RouterOS中有两种不同的配置队列的方法:l雷竞技
限速用于控制网络接口发送或接收流量的速率。小于或等于指定速率的流量将被发送,超过指定速率的流量将被丢弃或延迟。
速率限制有两种方式:
下图解释了两者之间的区别速度限制和速率均衡:
正如您在第一种情况中所看到的,所有流量都超过了特定的速率并被丢弃。在另一种情况下,流量超过特定的速率并在队列中延迟,并在可能的情况下稍后传输,但请注意,数据包只能延迟到队列未满为止。如果队列缓冲区中没有更多的空间,数据包将被丢弃。
对于每个队列,我们可以定义两个速率限制:
/队列简单
简单队列是限制特定目标流量的一种简单方法。此外,还可以使用简单队列构建高级QoS应用程序。它们具有有用的综合功能:
简单队列有一个严格的顺序-每个数据包必须经过每个队列,直到它到达一个符合数据包参数的队列,或者直到到达队列列表的末尾。例如,在1000个队列的情况下,最后一个队列的数据包需要通过999个队列才能到达目的地。
在下面的例子中,我们有一个SOHO设备,它有两个连接的单元PC和服务器。
在这种情况下,我们从ISP获得了15 Mbps的连接。我们希望确保服务器接收到足够的流量,因此我们将配置一个简单的队列的限制参数,以保证服务器接收5Mbps:
/queue简单添加limit-at=5M/5M max-limit=15M/15M name=queue1 target=192.168.88.251/32
仅此而已。不管其他流量如何,服务器将获得5mbps的流量速率。如果您正在使用默认配置,请确保FastTrack规则已针对此特定流量禁用,否则它将绕过简单队列,它们将无法工作。
/队列树
队列树只在其中一个htb中创建一个单向队列。这也是在单独的接口上添加队列的唯一方法。这样可以简化mangle配置-你不需要单独的下载和上传标记-只有上传会到达公共接口,只有下载会到达私有接口。与简单队列的主要区别是队列树没有排序所有的车辆一起经过。
在下面的例子中,我们将标记所有来自预配置的数据包in-interface-list =局域网并将基于这些包标记使用队列树来限制流量。
让我们创建一个防火墙地址列表:
[admin@雷竞技网站MikroTik] > /ip firewall address-list add address=www.youtube.com list=Youtube [admin@MikroTik] > ip firewall address-list print Flags: X - disabled, D - dynamic # list address create - time TIMEOUT 0 Youtube www.youtube.com oct/17/2019 14:47:11 1 D;;;www.youtube.com Youtube 216.58.211.14 oct/17/2019 14:47:11 2 D;;;www.youtube.com Youtube 216.58.207.238 oct/17/2019 14:47:11 3d;;;www.youtube.com Youtube 216.58.207.206 oct/17/2019 14:47:11 4 D;;;www.youtube.com Youtube 172.217.21.174 oct/17/2019 14:47:11 5 D;;;www.youtube.com Youtube 216.58.211.142 oct/17/2019 14:47:11 6 D;;;www.youtube.com Youtube 172.217.22.174 oct/17/2019 14:47:21 7 D;;;www.youtube.com Youtube 172.217.21.142 oct/17/2019 14:52:21
用防火墙设备标记数据包:
[admin@雷竞技网站MikroTik] > /ip firewall mangle add action=mark-packet chain=forward dst-address-list=Youtube in-interface-list=LAN new-packet-mark=pmark-Youtube passthrough=yes
根据之前标记的数据包配置队列树:
[admin@雷竞技网站MikroTik] /队列树add max-limit=5M name= limitation - youtube packet-mark=pmark-Youtube parent=global
检查队列树统计信息,确保流量匹配:
[admin@雷竞技网站MikroTik] > queue tree print stats标志:X - disabled, I - invalid 0 name=" limited - youtube " parent=global packet-mark=pmark-Youtube rate=0 packet-rate=0 queue -bytes=0 queue -packets=0 bytes=67887 packets=355 dropped=0
/队列类型
这个子菜单列表默认创建了队列类型,并允许添加新的特定于用户的队列类型。
默认情况下,Routel雷竞技rOS会创建以下预定义的队列类型:
[admin@雷竞技网站MikroTik] > /queue type print标志:* -default 0 * name="default" kind=pfifo pfifo-limit=50 1 * name="ethernet-default" kind=pfifo pfifo-limit=50 2 * name="wireless-default" kind= " sfq- default" sfq-perturb=5 sfq- allocate =1514 3 * name="sync -default" kind=red red-limit=60 red-min-threshold=10 red-max-threshold=50 red-burst=20 red-avg-packet=1000 4 * name="hotspot-default" kind=sfq sfq-perturb=5 sfq- allocate =1514 5 * name="pcq-上传-default" kind=pcq pcq-rate=0 pcq-limit=50KiB pcq-classifier=src-address pcq-total-limit=2000KiBpcq-burst-rate = 0 pcq-burst-threshold = 0 pcq-burst-time = 10 s pcq-src-address-mask = 32 pcq-dst-address-mask = 32 pcq-src-address6-mask = 128 pcq-dst-address6-mask = 128 6 * name =“pcq-download-default”= pcq pcq-rate = 0 pcq-limit = 50简约pcq-classifier = dst-address pcq-total-limit = 2000简约pcq-burst-rate = 0 pcq-burst-threshold = 0 pcq-burst-time = 10年代pcq-src-address-mask = 32 pcq-dst-address-mask = 32 pcq-src-address6-mask = 128 pcq-dst-addre雷竞技官网网站下载ss6-mask = 128 7 * name =“only-hardware-queue”= 8 *Name ="multi-queue-ethernet-default" kind=mq-pfifo mq-pfifo-limit=50 9 * Name ="default-small" kind=pfifo pfifo-limit=10
所有roios版雷竞技官网入口uterboard都有默认队列类型only-雷竞技官网网站下载hardware-queue”“=没有”。“only-雷竞技官网网站下载hardware-queue”使接口只留下硬件传输描述符环缓冲区,该缓冲区本身充当一个队列。通常,在传输描述符环缓冲区中至少可以有100个数据包排队等待传输。对于不同类型的以太网mac,传输描述符环缓冲区大小和可以在其中排队的数据包数量是不同的。在SMP系统上没有软雷电竞app下载官方版苹果件队列尤其有益,因为它消除了从不同cpu /内核同步对它的访问的需求,这是资源密集型的。具有设置的可能性"only-雷竞技官网网站下载hardware-queue"需要以太网驱动程序的支持所以它只适用于routerboard上的一些以太网接口。ios版雷竞技官网入口
一个“multi-queue-ethernet-default”对于具有以太网接口的SMP系统(这些接口支持多个传输队列)和具有支持多个传输队列的Linux驱动程序是有益的。通过为每个硬件队列设置一个软雷电竞app下载官方版苹果件队列,可以减少同步访问它们的时间。雷竞技官网网站下载
只有当没有“/queue树”条目以特定的接口雷竞技官网网站下载作为父节点时,才会对“仅硬件队列”和“多队列以太网缺省”进行改进。
队列类型是数据包处理算法。Kind描述一行中下一个要传输的数据包。l雷竞技RouterOS支持以下几种排队类型:
这些类型是基于FIFO算法(先进先出)。两者之间的区别PFIFO而且BFIFO一个是以数据包为单位,另一个是以字节为单位。这些队列使用pfifo-limit而且bfifo-limit参数。
每个不能进入队列的包(如果队列已满)将被丢弃。大队列会增加延迟,但可以更好地利用通道。
MQ-PFIFO是pfifo支持多个传输队列。这个队列对于带有以太网接口的SMP系统非常有用,这些系统支持多个传输队列,并且Linux驱动程序支持多个传输队列(主要在x86平台上)。这种方法使用mq-pfifo-limit参数。
随机提前丢弃是一种排队机制,试图通过控制网络阻塞来避免网络阻塞平均队列大小.平均队列大小与两个阈值进行比较:最小(minth)和maximum (max .th)阈值。如果平均队列大小(avg问)小于最小阈值,则没有丢包。当平均队列大小大于最大阈值时,所有入包将被丢弃。但如果平均队列大小介于最小和最大阈值之间,则随机丢弃包的概率为Pd其中概率是平均队列大小的函数:Pd= P马克斯(avg问-分钟th) /(马克斯th-分钟th).如果平均队列增加,丢弃传入数据包的概率也会增加。P马克斯- ratio,它可以调整突发丢弃包的概率,(最简单的情况P马克斯可以等于1。8.2图显示了RED算法的丢包概率。
随机公平排队(SFQ)通过哈希和轮询算法来保证。SFQ之所以被称为“随机”,是因为它并没有为每个流分配一个队列,它有一个算法,使用哈希算法将流量划分到有限数量的队列(1024)上。
交通流量可由4个选项唯一识别(Src-address, dst-address, src-port而且dst-port),因此SFQ哈希算法使用这些参数将数据包分类为1024个可能的子流之一。然后循环算法将开始分配可用带宽给所有子流,在每一轮给予sfq-allot流量字节数。整个SFQ队列可以包含128个包,有1024个子流可用。8.3图显示了SFQ操作:
PCQ算法非常简单——首先,它使用选择的分类器来区分一个子流和另一个子流,然后对每个子流应用单独的FIFO队列大小和限制,然后将所有子流分组在一起并应用全局队列大小和限制。
PCQ参数:
属性可以为子流分配速度限制pcq-rate选择。如果“pcq-rate=0”子流将平均分配可用流量。
例如,我们可以用一个PCQ队列和100个子流来代替100个队列和1000kbps的下载限制
PCQ具有与简单队列和队列树相同的突发实现:
PCQ还允许使用不同大小的IPv4和IPv6网络作为子流标识符。在它被锁定到一个IP地址之前。这主要用于IPv6,因为从ISP的角度来看,客户将使用/64网络表示,但客户网络中的设备将使用/128。PCQ可以用于这两种场景,甚至更多。PCQ参数:
以下队列类型CoDel、FQ-Codel和CAKE从RouterOS 7.1beta3版本开始使用。l雷竞技
CoDel(受控延迟主动队列管理)算法使用本地最小队列作为持久队列的度量,类似地,它使用最小延迟参数作为持续队列延迟的度量。队列大小是根据数据包在队列中的停留时间来计算的。
属性
财产 | 描述 |
---|---|
codel-ce-threshold(默认的:) | 用ECN标记超过配置阈值的数据包。 |
codel-ecn(默认的:没有) | 选项用于标记数据包,而不是丢弃它们。 |
codel-interval(默认的:100毫秒) | 间隔应该按照通过瓶颈的最坏情况RTT的顺序设置,以便端点有足够的时间做出反应。 |
codel-limit(默认的:1000) | 队列限制,当达到限制时,进入的数据包被丢弃。 |
codel-target(默认的:5女士) | 表示可接受的最小持久队列延迟。 |
CoDel -有控制延迟的公平排队(FQ) (CoDel)使用随机决定的模型将传入的数据包分类到不同的流中,并用于使用队列向所有流提供公平的带宽共享。每个流都使用CoDel排队规程进行管理,该规程内部使用FIFO算法。
属性
财产 | 描述 |
---|---|
fq-codel-ce-threshold(默认的:) | 用ECN标记超过配置阈值的数据包。 |
fq-codel-ecn(默认的:是的) | 选项用于标记数据包,而不是丢弃它们。 |
fq-codel-flows(默认值:1024) | 对传入数据包进行分类的若干流。 |
fq-codel-interval(默认的:100毫秒) | 间隔应该按照通过瓶颈的最坏情况RTT的顺序设置,以便端点有足够的时间做出反应。 |
fq-codel-limit(默认的:10240) | 队列限制,当达到限制时,进入的数据包被丢弃。 |
fq-codel-memlimit(默认值:32.0 mib) | 可以在这个FQ-CoDel实例中排队的字节总数。会不会强制从fq-codel-limit参数。 |
fq-codel-quantum(默认的:1514) | 在公平排队算法中用作“赤字”的字节数。默认值(1514字节)对应于以太网MTU加上14字节的硬件头长度。雷竞技官网网站下载 |
fq-codel-target(默认的:5女士) | 表示可接受的最小持久队列延迟。 |
常用应用程序持续改善(饼)实现为排队规则(qdisc)供Linux内核使用COBALT(结合Codel和BLUE的AQM算法)和用于流隔离的drr++的变体。换句话说,Cake的基本设计目标是用户友好性。所有设置都是可选的;选择默认设置是为了在大多数常见部署中实用。在大多数情况下,配置只需要带宽参数就可以得到有用的结果,
属性
财产 | 描述 |
---|---|
cake-ack-filter(默认值:没有一个) | |
cake-atm(默认值:) | 补偿ATM小区帧,通常在ADSL链路上发现。 |
cake-autorate-ingress(是/否,默认值:) | 基于到达这个qdisc的流量的自动容量估计。这对于蜂窝链接最有可能有用,因为蜂窝链接往往会随机改变质量。带宽限制参数可以结合使用来指定初始估计。整形器将周期性地设置为略低于估计速率的带宽。此估计器无法估计其下游链路的带宽。 |
cake-bandwidth(默认值:) | 设置整形器带宽。 |
cake-diffserv(默认值:diffserv3) | CAKE可以根据Diffserv字段将流量划分为“罐头”:
|
cake-flowmode(dsthost / dual-dsthost / dual-srchost / flowblind /流/主机/ srchost / triple-isolate,默认值:triple-isolate) |
|
cake-memlimit(默认值:) | 将Cake消耗的内存限制为Limit字节。缺省情况下,根据带宽和RTT设置计算限制。 |
cake-mpu-64…256年,默认值:) | 舍入每个包(包括开销)到最小长度字节。 |
cake-nat(默认值:没有) | 指示Cake在应用流隔离规则之前执行NAT查找。 |
cake-overhead-64…256年,默认值:) | 增加字节到每个包的大小。BYTES可能是负的。 |
cake-overhead-scheme(默认值:) | |
cake-rtt(默认值:100毫秒) | 手动指定RTT。默认100ms适用于大多数互联网流量。 |
cake-rtt-scheme(设在/互联网/星际/ lan /地铁/没有/海洋/区域/卫星,默认值:) |
|
饼清洗(默认值:没有) | 在优先级排队发生后,应用wash选项清除所有额外的DiffServ(但不包括ECN位)。 |
/队列接口
在通过接口发送数据之前,它由队列处理。这个子菜单列出了RouterOS中所有可用的接口,并允许更改特定接口的队列类型。l雷竞技该列表是自动生成的。
[admin@雷竞技网站MikroTik] > queue interface print接口,队列,ACTIVE-QUEUE # INTERFACE QUEUE ACTIVE-QUEUE 0 ether1 only-雷竞技官网网站下载hardware-queue -hardware- QUEUE 1 ether2 only-hardware-queue -hardware- QUEUE 2 ether3 only-hardware-queue -hardware- QUEUE 3 ether4 only-hardware-queue -hardware- QUEUE 5 ether6 only-hardware-queue -hardware- QUEUE 6 ether7 only-hardware-queue -hardware- QUEUE 7 ether8 only-hardware-queue -hardware- QUEUE 8 ether9 only-hardware-queue -hardware- QUEUE 9 ether1010 sf雷竞技官网网站下载p-sfpplus1 Only-hardware-queue Only-hardware-queue -queue 11 wlan1 wireless-default wireless-default 12 wlan2 wireless-default wireless-default