概述

队列是使用预先定义的结构方法共同等待由网络设备传输的数据包的集合。在银行和超市排队的方法几乎是一样的,在这些地方,顾客根据到达地点来接受对待。

队列用于:

  • 限制某些IP地址、子网、协议、端口等的数据速率;
  • 限制点对点流量;
  • 数据包优先级;
  • 配置流量突发以加速流量;
  • 应用不同的时间限制;
  • 在用户之间平等地共享可用流量,或者取决于信道的负载

MikroTik RouterOS中的队列实现基雷竞技网站于HTB (Hiel雷竞技rarchical令牌桶)。HTB允许创建分层队列结构,并确定队列之间的关系。这些层次结构可以附加在两个不同的地方,即报文流图说明这两个输入而且postrouting)链。

RouterOS中有两种不同的配置队列的方法:l雷竞技

  • /队列简单菜单-旨在简化配置简单,每天排队的任务(如单客户端上传/下载限制,p2p流量限制等)。
  • /队列树菜单——用于实现高级排队任务(如全局优先级策略,用户组限制)。需要标记的数据包流/ip防火墙损坏设施。

费率限制原则


限速用于控制网络接口发送或接收流量的速率。小于或等于指定速率的流量将被发送,超过指定速率的流量将被丢弃或延迟。

速率限制有两种方式:

  1. 丢弃所有超过速率限制的报文限速(滴管或成型机)(当queue-size=0时,100%速率限制器)
  2. 延迟队列中超过特定速率限制的数据包,并在可能的情况下传输它速率均衡(调度器)(100%利率均衡时队列大小=无限

下图解释了两者之间的区别速度限制和速率均衡

正如您在第一种情况中所看到的,所有流量都超过了特定的速率并被丢弃。在另一种情况下,流量超过特定的速率并在队列中延迟,并在可能的情况下稍后传输,但请注意,数据包只能延迟到队列未满为止。如果队列缓冲区中没有更多的空间,数据包将被丢弃。

对于每个队列,我们可以定义两个速率限制:

  • 圆形的(承诺资讯率)- (的限制在Rol雷竞技uterOS中)最坏的情况下,不管其他流量流如何,流都会获得这个流量速率。在任何给定的时间,带宽都不应该低于承诺速率。
  • 米尔(最高资讯率)- (max-limit在Rol雷竞技uterOS中)的最佳情况下,如果有任何部分带宽可用,则流量的最大可用数据速率。

简单的队列


/队列简单

简单队列是限制特定目标流量的一种简单方法。此外,还可以使用简单队列构建高级QoS应用程序。它们具有有用的综合功能:

  • 点对点流量排队;
  • 在选定的时间间隔上应用队列规则;
  • 优先级;
  • 使用多个包标记/ip防火墙损坏
  • 双向流量整形(调度)(上传+下载总数一个限制)

简单队列有一个严格的顺序-每个数据包必须经过每个队列,直到它到达一个符合数据包参数的队列,或者直到到达队列列表的末尾。例如,在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 (bfifo, pfifo, mq pfifo)
  • 红色的
  • SFQ
  • PCQ

先进先出

这些类型是基于FIFO算法(先进先出)。两者之间的区别PFIFO而且BFIFO一个是以数据包为单位,另一个是以字节为单位。这些队列使用pfifo-limit而且bfifo-limit参数。

每个不能进入队列的包(如果队列已满)将被丢弃。大队列会增加延迟,但可以更好地利用通道。

MQ-PFIFOpfifo支持多个传输队列。这个队列对于带有以太网接口的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)通过哈希和轮询算法来保证。SFQ之所以被称为“随机”,是因为它并没有为每个流分配一个队列,它有一个算法,使用哈希算法将流量划分到有限数量的队列(1024)上。

交通流量可由4个选项唯一识别(Src-address, dst-address, src-port而且dst-port),因此SFQ哈希算法使用这些参数将数据包分类为1024个可能的子流之一。然后循环算法将开始分配可用带宽给所有子流,在每一轮给予sfq-allot流量字节数。整个SFQ队列可以包含128个包,有1024个子流可用。8.3图显示了SFQ操作:

PCQ

PCQ算法非常简单——首先,它使用选择的分类器来区分一个子流和另一个子流,然后对每个子流应用单独的FIFO队列大小和限制,然后将所有子流分组在一起并应用全局队列大小和限制。

PCQ参数:

  • pcq-classifier(dst-address | dst-port | src-address | src-port;默认值:""):子流标识符的选择
  • pcq-rate(number):各子蒸汽最大可用数据速率
  • pcq-limit(number):单个子流队列大小(KiB单位)
  • pcq-total-limit(number):所有子流中最大排队数据量(KiB)

属性可以为子流分配速度限制pcq-rate选择。如果“pcq-rate=0”子流将平均分配可用流量。

例如,我们可以用一个PCQ队列和100个子流来代替100个队列和1000kbps的下载限制

PCQ具有与简单队列和队列树相同的突发实现:

  • pcq-burst-rate(number):允许子流突发时可以达到的最大上传/下载数据速率
  • pcq-burst-threshold(数字):这是突发开关的值
  • pcq-burst-time(time):计算平均数据速率的一段时间,单位为秒。(这不是真正爆发的时间)

PCQ还允许使用不同大小的IPv4和IPv6网络作为子流标识符。在它被锁定到一个IP地址之前。这主要用于IPv6,因为从ISP的角度来看,客户将使用/64网络表示,但客户网络中的设备将使用/128。PCQ可以用于这两种场景,甚至更多。PCQ参数:

  • pcq-dst-address-mask(number):用来作为dst-address子流标识符的IPv4网络大小
  • pcq-src-address-mask(number):用来作为src-address子流标识符的IPv4网络的大小
  • pcq-dst-address6-mask(number):用来作为dst-address子流标识符的IPV6网络大小
  • pcq-src-address6-mask(number):用来作为src-address子流标识符的IPV6网络大小


以下队列类型CoDel、FQ-Codel和CAKE从RouterOS 7.1beta3版本开始使用。l雷竞技

CoDel

CoDel(受控延迟主动队列管理)算法使用本地最小队列作为持久队列的度量,类似地,它使用最小延迟参数作为持续队列延迟的度量。队列大小是根据数据包在队列中的停留时间来计算的。

属性

财产 描述
codel-ce-threshold默认的:)

用ECN标记超过配置阈值的数据包。

codel-ecn默认的没有

选项用于标记数据包,而不是丢弃它们。

codel-interval默认的100毫秒

间隔应该按照通过瓶颈的最坏情况RTT的顺序设置,以便端点有足够的时间做出反应。

codel-limit默认的1000 队列限制,当达到限制时,进入的数据包被丢弃。
codel-target默认的5女士

表示可接受的最小持久队列延迟。

FQ-Codel

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字段将流量划分为“罐头”:

  • diffserv4提供了一个通用的Diffserv实现,有四个罐头:Bulk (CS1), 6.25%的阈值,通常低优先级。Best Effort(一般),100%阈值。视频(AF4x, AF3x, CS3, AF2x, CS2, TOS4, TOS1), 50%阈值。语音(CS7, CS6, EF, VA, CS5, CS4), 25%阈值。

  • diffserv3(默认)提供了一个简单的通用的Diffserv实现,有三个罐头:Bulk (CS1), 6.25%阈值,通常低优先级。Best Effort(一般),100%阈值。语音(CS7, CS6, EF, VA, TOS4), 25%阈值,缩短编码间隔。

cake-flowmode(dsthost / dual-dsthost / dual-srchost / flowblind /流/主机/ srchost / triple-isolate,默认值:triple-isolate
  • flowblind-禁用流隔离;所有流量都通过每个罐头的单个队列。
  • srchost—流仅由源地址定义。
  • dsthost流仅由目的地址定义。
  • 主机—流由源目的主机对定义。这是主机隔离,而不是流隔离。
  • —流由源地址、目的地址、传输协议、源端口、目的端口5元组定义。这是由SFQ和fq_codel执行的流隔离类型。
  • dual-srchost流由5元组定义,公平性首先应用于源地址,然后应用于各个流。很好地用于从局域网到互联网的出口流量,在那里它将防止任何局域网主机垄断上行链路,无论他们使用的流量有多少。
  • dual-dsthost流由5元组定义,公平性首先应用于目的地址,然后应用于各个流。很好地用于从互联网到局域网的入口流量,在那里它将防止任何局域网主机垄断下行链路,无论他们使用流量的数量。
  • triple-isolate—流由5元组定义,公平智能地应用于源地址*和目的地址*。不仅仅是通过主机对),也可以通过单个流。
  • nat指示饼在应用流隔离规则之前执行NAT查找,以确定数据包的真实地址和端口号,以提高NAT“内部”主机之间的公平性。这在“流盲”或“流”模式下没有实际效果,或者如果NAT在不同的主机上执行。
  • nonat(默认)饼将不执行NAT查找。流隔离将使用饼所附接口直接可见的地址和端口号执行。
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 /地铁/没有/海洋/区域/卫星,默认值:
  • 公司设在—仅适用于超高性能的10GigE+网络。相当于RTT 100。
  • 局域网-用于纯以太网(不是Wi-Fi)网络,在家里或在办公室。在为Internet访问链接塑形时不要使用此选项。相当于RTT 1毫秒。
  • 地铁-主要用于单个城市内的交通。相当于RTT10 ms。区域主要是在一个欧洲大小的国家内。相当于RTT 30 ms。
  • 互联网(默认值)这适用于大多数互联网流量。相当于RTT 100 ms。
  • 海洋-用于一般高于平均延迟的互联网流量,例如澳大利亚居民所遭受的延迟。相当于RTT 300 ms。
  • 卫星-通过地球同步卫星的交通。相当于RTT1000 ms。
  • 星际-之所以这样命名是因为木星距离地球大约1光小时。使用它(几乎)完全禁用AQM操作。相当于3600年代RTT。
饼清洗(默认值:没有

在优先级排队发生后,应用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
  • 没有标签