《ROS防火墙与服务质量.doc》由会员分享,可在线阅读,更多相关《ROS防火墙与服务质量.doc(56页珍藏版)》请在三一办公上搜索。
1、带宽控制总论摘要带宽控制是一组用于控制数据率分配、 延迟变化、 及时传输和确保传递可靠性的机制。MikroTik 的 RouterOS 支持以下的排队规则: PFIFO 包先进先出 BFIFO 字节先进先出 SFQ -随机公平队列 RED 随机早期检测 PCQ 每个连接排队 HTB 分层令牌桶技术要求所需安装包: system所需许可: Level1 (limited to 1 queue) , Level3子菜单级别: /queue技术规范: None硬件使用: significant描述服务质量 (QoS) 指路由器应该优化和整形网络流量。服务质量不像有关限制那样,而是为网络用户提供更多优
2、质的服务。下面列出了 MikroTik 的 RouterOS 流量控制机制的部分功能: 限制确定的IP地址、子网、协议、端口和其它参数的速率 限制点对点的流量 设置一些包流量优先别的包 使用队列突发加快web 浏览速度 定时应用队列。 共享可用流量做到用户平等或负载均衡该队列应用于通过实体接口离开路由器的数据包 (即,队列应用于相关数据流的输出接口),或任何一个3个辅助的虚拟接口 (global-in, global-out, global-total)QoS依靠丢弃包来执行。TCP 协议的情况下,被丢弃的数据包将会不满一个慢的速率,因此无需担心因整形而失去 TCP 的一些信息。用来描述网络应
3、用程序的服务质量水平的主要条件是: qdisc (队列规则) 保存并保留一个数据包队列的算法。它累计数据包,并决定输出数据包顺序 (这意味着排队规则可以对数据包进行重新排序)。Qdisc 还决定在没有空间的情况下丢弃哪些数据包。 CIR (忠于信息速率) - 保证数据速率。这意味着流通率不超过此值应始终送达 MIR (最大信息率) - 将提供最大数据速率路由 Priority 什么样的数据流将按重要的顺序处理。您可以给一些数据流设定优先级,以便在其它一些数据流前处理 Contention Ratio -所定义的数据速率是用户间共享(当某一数据传输率分配到多个用户时)的比率。它是将一些用户集合在
4、一起而进行单个的速度限制。例如,1:4的争用速率(contention ratio)意味着只是4个用户之间共享已分配的数据速率 通过接口发送数据前,它被排队规则(qdisc)处理。每个接口仅一个排队规则,默认情况下,每个物理接口在/queue interface下设置队列规则(虚拟接口没有定义排队规则)。一旦我们将第一个队列 (在 /queue tree或/queue simple里) 添加到一个物理接口,接口默认队列被该队列的HTB 层次结构替换,但一个在/queue interface中为该特定的接口的定义,不再起作用。qdiscs计划和整形 我们可以将排队规则分类,由分类器来影响包流量:
5、 计划 -排队规则只重新安排数据包的算法和丢弃数据包而并不组装数据包。计划程序排队规则是: BFIFO,PFIFO ,SFQ,PCQ (计划程序和整形机) ,RED 整形 整形排队规则同样还执行限制功能。整形有PCQ(计划程序和整形机)和 HTB虚拟接口 在RouterOS中,除实际接口外,有 3个虚拟接口: global-in -通常代表所有输入的接口(入口队列)。请注意附加到global-in的队列,适用于在数据包筛选之前接收路由器的数据流。global-in队列执行在mangle 和 dst-nat之后 global-out -通常表示所有输出的接口(出口队列)。队列附加到一个特定的接口
6、之前队列附加到的应用 global-total -表示一个经历路由器通过所有数据的虚拟接口。当附加一个 qdisc到global-total时, 限制是在两个方向。例如,如果我们设置total-max-limit为 256000,我们将得到上传+下载 = 256 kbps (最大)HTB导论 HTB (层次令牌桶)是一个有益于排队规则的总分类,它基于类采用不同的方法来处理不同类型的数据流。这种队列依靠主要层次令牌桶 (HTB)附加在/queue simple 和 /queue tree中。例如,您可以给一个工作组设置最高的数据传输率,然后在该工作组的成员之间分发数据流HTB队列规则详解:HTB
7、 项目: filter(过滤器) - 对包进行分类的程序。filter负责数据包的分类,以使他们都放入相应的队列规则。所有filter应用于 HTB 的根和直接进入qdiscs分类数据包,而不遍历HTB树。如果一个数据包,不分类为qdiscs的任何一种,它将穿越HTB直接发送出接口,所以没有 HTB 规则将应用于那些数据包 (它表示比HTB管理的任何数据包流优先级更有效)。 level(层) 类在层次结构中的位置。 class(类) 限制数据流到某一速率的算法。它并不存储任何的数据包(此功能只能执行于队列)。类可能包含一个或多个子类 (inner class)或唯一一个 qdisc (leaf
8、 class) 。 inner class(内部类) -具有一个或多个子类附加到它的类。由于inner classes不存储任何数据包,qdiscs 不可以附加到他们(因此,他们的 qdisc 和filter设置被忽略,虽然可能仍会显示在 RouterOS 配置中),所以他们只做数据流整形。优先级设置也会被忽略。 leaf class(叶类)-有父级,但没有子类的所有类。Leaf classes始终位于层次结构level 0 。每个leaf class有且只有一个 qdisc用某一优先级附加到它。 self feed(自馈)-各类活动在其所在的层次结构层的数据包出口(源自HTB树,至接口)。每
9、个level(层)有一个self feed,并由8个self slots组成代表优先级。 self slot(自槽)- 是self feed的元素,对应于每个特定的优先级。每级的每个优先级有一个self slot。作用在同一level(层)具有相同优先级的所有类附加到一个self slot,通过使用它发送出数据包。 active class(活动类)(在某个特定层) - 在给定的层附加到self slot上的类。 inner feed(内馈)-类似于self feed对象,它由inner self slot组成,存在于各自inner class中,每个inner class有一个inner f
10、eed。 inner feed slot(内馈槽)-类似于self slot。每个inner feed由inner slots组成,代表一个优先级。每个类有一个父类并可能有一个或多个子类。没有子类的类,放在level 0,队列保留并调用leaf classes。每个层次结构中的类能够优化和整形数据流。有两个主要的参数引用到整形,有一个列入优先: limit-at 保障一个类的标准速率 (CIR) max-limit 一个类能达到的最大速率 (MIR) priority - 在同一level(层)下,类服务的次序(8 是最低优先级,1为最高)每个HTB 类依赖占用的数据速率可以是下列3状态之一:
11、 green(绿色)-类的实际速率等于或低于limit-at时。这种状态下,这个类在它的level上附加到相应的优先级,可满足其CIR限制,而不管其父类的任何限制。例如,如果我们有一叶类,其limit-at=512000且其父有max-limit=limit-at=128000,该类仍会得到512 kbps !在相同层的所有MIRs和更高层的任何限制前,首先满足特定层的所有 CIRs。 yellow (黄色)-类的实际速率大于limit-at,且等于或小于max-limit (或burst-limit,如果突发限制处于活动状态)。在这种情况,如其父类为绿色状态,类将附加到其父类inner fe
12、ed相同优先级的inner slot上;如父类也是黄色的,依次,可能附加到父类的父类相同的优先级的inner slot。过渡到这种状态,类从它所在层的self feed断开并连接到其父的inner feed。 red (红色)- 类的实际速度超过max-limit (or burst-limit如果突发处于活动状态)。这个类不能借用其父类的速率。注: 像CIRs 总是先于MIRs或更高层其他限制的考量之前得到满足一样,您应该始终确保任何inner class的limit-at属性等于或大于其子类的所有limit-at参数的和。Priorities(优先级) 发送数据包可能发生的情况是,HTB查
13、询其所有self slots的优先级顺序,从最低层的最高优先级开始,直到最高层的最低优先级。每个叶类(包只在附加到各自叶类的qdiscs中存储并排队)直接或通过父类的一条链路最终将连接到某个self slot: 如图所示,叶类在绿色状态一定会比那些黄色的有效优先 (他们从父类中借用了速度),因为他们的优先级是在较低层(level 0)。图中,Leaf1(优先级7)将在Leaf2(优先级8)发送后才发送,虽然它比 Leaf2有更高的优先级。在同样的优先级及相同的状态情况下,HTB用循环复用算法服务这些类。HTB例子 下面是一些HTB 怎样工作的示例。假设以下情况-我们有3种不同的数据流(pack
14、et_mark1、 packet_mark2 和 packet_mark3),标记在 /ip firewall mangle下,现在建立 HTB 层次结构:adminMikroTik queue tree add name=ClassA parent=Local max-limit=2048000adminMikroTik queue tree add name=ClassB parent=ClassA max-limit=1024000adminMikroTik queue tree add name=Leaf1 parent=ClassA max-limit=2048000 . limit
15、-at=1024000 packet-mark=packet_mark1 priority=8adminMikroTik queue tree add name=Leaf2 parent=ClassB max-limit=1024000 . limit-at=256000 packet-mark=packet_mark2 priority=7adminMikroTik queue tree add name=Leaf3 parent=ClassB max-limit=1024000 . limit-at=768000 packet-mark=packet_mark3 priority=8adm
16、inMikroTik queue tree printFlags: X - disabled, I - invalid 0 name=ClassA parent=Local packet-mark= limit-at=0 queue=default priority=8 max-limit=2048000 burst-limit=0 burst-threshold=0 burst-time=0s 1 name=ClassB parent=ClassA packet-mark= limit-at=0 queue=default priority=8 max-limit=1024000 burst
17、-limit=0 burst-threshold=0 burst-time=0s 2 name=Leaf1 parent=ClassA packet-mark=packet_mark1 limit-at=1024000 queue=default priority=8 max-limit=2048000 burst-limit=0 burst-threshold=0 burst-time=0s 3 name=Leaf2 parent=ClassB packet-mark=packet_mark2 limit-at=256000 queue=default priority=7 max-limi
18、t=1024000 burst-limit=0 burst-threshold=0 burst-time=0s 4 name=Leaf3 parent=ClassB packet-mark=packet_mark3 limit-at=768000 queue=default priority=8 max-limit=1024000 burst-limit=0 burst-threshold=0 burst-time=0sadminMikroTik queue tree现在让我们描述一些情况,来使用此 HTB 层次结构。1. 假设数据包已经到达 Leaf1和 Leaf2的情况。因此,Leaf1把
19、自身放到此层(Level 0)的self slot ,priority = 8;Leaf2 依赖于self slot,priority=7;Leaf3 没什么可发送,所以它不执行任何操作。这是一个简单的情况:在Level 0有两个活动类 (Leaf1 和 Leaf2),他们都在绿色的状态,起先,他们按优先级顺序处理,先服务 Leaf2,然后 Leaf1。2. 现在假定 Leaf2 拥有超过 256 kbps的发送速率,因此它需要看一下它的绿色的限制。因状态的改变,它自身连接到其父类 (ClassB)的 inner feed,并以递归方式将自身附加到Level1的优先级 7 的self slot
20、。Leaf1将保持绿色状态-有数据包发送,但他们的速率是低于1Mbps,Leaf3一直没有数据可发送。这是很重要的,要明确 Leaf1 现在有比 Leaf2更高、更有效的优先级(如果它是在绿色的状态),尽管我们用比 Leaf2 低的优先级 (8) 配置了它。因为 Leaf2 已断开本身在Level 0的self feed,而附加到Level 1的self feed并正在从其父 (ClassB) 借用速率。因此,Leaf2的优先级已跳到Level1。请记住最先服务最低层, 层的优先级是先低层后高层,以满足附加类的优先级顺序。3. 考虑 Leaf1 已达到其最大限制,并更改其状态为红色,同时 Le
21、af2 现在用量已超过 1Mbps (且小于 2Mbps),因此它的父类ClassB已向ClassA借并变为黄色。Leaf3 仍未发送的数据包。这种情况显示 Leaf1 已达到其max-limit,不能再从其父 (ClassA) 借用,因此它断开所有self slots和inner slots。Leaf2已递归到达Level 2,因为它从 ClassB借,依次到ClassA借,然可利用的速率并没有足够。Leaf3 仍没有数据包发送,唯一发送的类是 Leaf2。4. 假定 ClassA 达到max-limit (2Mbps) ,这样,ClassB 和 Leaf2 都不可以发送,因为他们只能依靠借
22、用,又因ClassA不能发送而成不可能。但现在,Leaf3有一些数据包发送在这种情况下 Leaf2 是黄色的状态,但它不能借用 (因为ClassB类不能从Class A 借),并且Leaf3是唯一可以发送的类。请注意,即使没有其它类包括其父类能发送, Leaf3都能完好发送,因为它附加在Level 0 self feed。5. 最后,让我们看看发生了什么,如果Leaf1、 Leaf2、 Leaf3、 ClassB 在黄色的状态,并且ClassA 是绿色的。Leaf1从ClassA借、 Leaf2 和 Leaf3从ClassB借,而ClassB反而从ClassA借。现在所有的优先级移到Level
23、 2。如此,Leaf2 上有最高的优先级,而最先受服务。而 Leaf1 和 Leaf3在所在的同一层(2)上有相同的优先级 (8),他们受服务使用循环复用算法。Bursts突发 突发用于短时间内允许更高的数据速率。每个突发时间(burst-time)的1/16时,路由器在最近burst-time上计秒,计算每个类的平均数据速率。如果此时平均数据速率少于突发阈值(burst-threshold),突发被启用并且有效的速率限制 (过渡到红色状态) 设置为突发限制(burst-limit)bps,否则将有效的最大限制落在max-limit上。让我们看看下面的设置: max-limit=256000,
24、 burst-time=8, burst-threshold=192000 和 burst-limit=512000。当用户开始通过 HTTP下载文件时,我们可以看到这种情况:开始平均数据率在过去 8 秒是 0 bps,因为没有数据流通过,此ruke之前已经创建了它。自平均数据速率小于burst-threshold (192 kbps) 以后,突发被允许。第一秒时平均数据率是(0 + 0 + 0 + 0 + 0 + 0 + 0 + 512) / 8 = 64 kbps,这是少于burst-threshold值的。第二秒时平均数据率是(0 + 0 + 0 + 0 + 0 + 0 + 512 +
25、512) / 8 = 128 kbps。第三秒时来了个断点,因此时平均数据率大于突发阈值。在这一刻,突发被禁用,有效的数据速率限制跌到max-limit (256 kbps) 。请注意突发时间被使用的方式。突发的实际持续时间不只是burst-time!它还取决于burst-threshold/burst-limit比率和实际通过突发类的数据速率。在此示例中,突发率是 192000/512000 = 3/8,时间是 8,且队列一直试图利用该类提供的所有可用速率,所以突发是3秒时长。现在,您可以很容易看到,一个正常的操作为何是burst-threshold应限制在limit-at 和 max-li
26、mit之间。如果您指定的burst-threshold较max-limit高,则平均速率会倾向于burst-threshold,但有效的最大限制将不断地在max-limit和burst-limit点上跳转(取决于实际数据流的速率,它可能发生在每个评估点 (1/16 的burst-time)HTB in RouterOS 除接口队列之外(每个接口有一个队列或HTB树),RouterOS保留3个虚拟接口和4个HTB树: global-in global-total global-out 在添加一个简单队列(simple queue)时,它创建 3个HTB类 (在global-in, global-
27、total 和 global-out),但它不添加任何接口队列类。队列树(Queue tree)更灵活-您可以将其添加到这些HTB中的任何一个。当数据包传输通过路由器时,它将通过4 个HTB树- global-in, global-total, global-out和输出接口queue。如果它直达路由器,它将通过global-in和global-total HTB的队列。如果从路由器发送数据包,他们经历global-total, global-out和输出接口queue。辅助资源 http:/linux- http:/luxik.cdi.cz/devik/qos/htb/ http:/www.
28、docum.org/docum.org/docs/ Queue Types子菜单级别: /queue type描述在此子菜单中,您可以创建您自定义的队列类型。之后,您将能够在 /queue tree, /queue simple 或 /queue interface中使用它们。请注意这些排队规则不能限制所有的数据速率 (除了 PCQ)-他们只重组(调度)数据包和删除多余的(如果队列变得太长,管理类不能足够快地发送数据包),所以,在这里你找不到任何限制速率的参数(除了PCQ)-只有存储限制。另请注意调度只发生在数据包被加入到队列规则时并且数据包进入速度比管理类可以提供的更快(所以这只是一个缓冲区
29、),有 5 种可用于存储包的队列规则(qdiscs):PFIFO and BFIFO这些排队规则基于先进先出 (fifo) 算法 (First-In First-Out)。PFIFO 和 BFIFO 之间的区别是衡量单位- 一个是数据包另一个是字节。有且仅有一个参数调用 PFIFO(pfifo-limit)(或 bfifo-limit在BFIFO的情况下),它定义了数据先进先出 (fifo) 队列可以持有多少。每个数据包若不能加入队列(如果队列已满),则被删除。大的队列长度可以增加队列等待时间,但有利于更好地利用通道。如果您有一个不拥挤的链接,请使用先进先出 (fifo) 队列规则。SFQ 随
30、机公平队列 (SFQ)均衡交通流量(TCP 会话或 UDP 流)的链接时完全完整。通过循环的哈希算法确保了 SFQ 的公平性。哈希算法通过有限数量的子队列划分会话的数据流。数据流可能用元组 (src-address, dst-address, src-port和dst-port)唯一地标识,这些参数使用的SFQ哈希算法把数据包分类成子队列。整个 SFQ 队列包含 128 包,并且有 1024 子队列供这些数据包使用。每个包存储在有128 包缓冲区的先进先出 (fifo) 链中,属于某一子队列,由哈希函数 (元组的一个简单的函数使用 10 位输出值,因此子队列的数量是210=1024)。鉴于排队
31、规则的随机性,有不可预知的数量的流中的数据包实际上可能被分类到相同的子队列。在sfq- perturb秒后,哈希算法更改并将会话通信划分到其他的子队列,以便没有分离的数据流将长时间与同一个子队列相关联。循环复用算法依次从每一子队列将pcq-allot字节的数据从队列中分离输出。使用 SFQ到挤塞的链接,以确保连接不挨饿。SFQ特别有益于无线链路。PCQ 为解决SFQ的一些不足,创建每个连接队列 (PCQ)。在 RouterOS中,它是唯一无类的队列类型并能限制速率。除了它的stohastic属性外,它是SFQ的改良方案。PCQ基于pcq-classifier参数创建子队列。每个子队列具有pcq
32、-rate参数限制数据速率和pcq-limit参数限制数据包的多少。PCQ 队列限制数据包总大小不能大于参数pcq-total-limit的值。下面的示例演示如何使用PCQ按其源地址对数据包分类。如果你通过src-address把数据包分类,则用不同源 IP地址的所有包将被其分组到不同的子队列。现在您可以使用pcq-rate参数为每个子队列做限制或均衡。也许,最重要的部分是决定我们应附加此队列到哪个接口。如果我们将其附加到本地(Local)接口,来自公共(Public)接口的所有数据流将会通过src-address参数进行分组(这可能不是我们想要的),但如果我们将其附加到公共接口,来自客户端的
33、所有数据流将通过src-address进行分组-所以我们可以轻松地限制或均衡客户端的上传。同样对下载也可以做,但在这种情况下将使用dst-address分类器,并且PCQ要放在 local 接口上。要均衡子队列的速率,按pcq-classifier分类,将设置pcq-rate为 0 ! PCQ使用小的管理 为多用户动态地均衡或整形数据流。事实上,PCQ 总是均衡子队列,pcq-rate只是一个均衡的上限-一个子队列可能得到较小的速率,而决不会得到较高速率。RED 随机早期检测(Random Early Detection)(也称为随机早期丢弃,顾名思义,它是如何实际工作的) 是一个尝试控制平均
34、队列大小避免网络阻塞的排队机制。当平均队列大小达到red-min-threshold值时,RED开始按线性增加概率随机的丢弃数据包,使平均队列大小增长控制在达到red-min-threshold值前。有效的队列尺寸会抑制队列大小随时可能会高于red-min-threshold的概率不会增长很快,所以可以指定队列大小的硬限制。当平均队列大小达到red-min-threshold或将更大时,所有增长包被丢弃直到平均队列大小在这个值不掉包 (此时probalistic计算将再次被激活)。平均队列大小 avg = (1-W)*avg+W*q, q 当前队列长度 W 队列权重定义为 burst+1-mi
35、n=(1-(1-W)burst)/W. 注意 log(W) 值四舍五入为整数(W 可能是 1, 0.1, 0.01, 等). 它决心experimantally,在许多一般情况下,W总是接近 min/10*burst 这个pb概率值从 0%至 2%线性增加,同样的,平均队列大小从red-min-threshold 增长到 red-max-threshold: pb=0.02*(avg-min)/(max-min).从丢弃最后一个数据包开始,数据包丢弃概率pa随pb和排队数据包计数(count)的增加而逐渐增加: pa=pb/(1-count*pb)。用实验的方法定义它,这些值是很好用的。red
36、-burst=(min+2*max)/3,并且 red-max-threshold 是 red-min-threshold的两培。请注意上述公式中min = red-min-threshold, max = red-max-threshold and burst = red-burst。作为具有高数据率的拥堵链接,它是快速的和 TCP-friendly。属性说明bfifo-limit (integer; default: 15000) - 最大可保存在 BFIFO 队列的字节数kind (bfifo | pcq | pfifo | red | sfq) - 使用哪个排队规则PFIFO 包先进先
37、出 BFIFO 字节先进先出SFQ -随机公平队列RED 随机早期检测PCQ 每个连接排队 HTB 分层令牌桶name (name) - 引用的队列类型的名称pcq-classifier (dst-address | dst-port | src-address | src-port; default: ) -把数据包分组到PCQ 的子队列的列表分类器。是可以立即使用的几个分类器、 例如,src-address,src-port将用不同的源地址或源端口把所有的数据包按组分到子队列。pcq-limit (integer; default: 50) -一个单一的 PCQ子队列可容纳的数据包的数量p
38、cq-rate (integer; default: 0) - 每个 PCQ子队列所允许的最大数据速率。这是一个速率上限,子队列仍将均衡。0 不设置任何限制(仅在子队列之间均衡) pcq-total-limit (integer; default: 2000) - 可以容纳整个 PCQ 队列的数据包的数量pfifo-limit (integer) - 数据包可以容纳该 PFIFO 队列的最大数量red-avg-packet (integer; default: 1000) - 用于调整重新计算的平均排队时间的平均数据包大小red-burst (integer) - a measure of h
39、ow fast the average queue size will be influenced by the real queue size, given in bytes. Larger values will smooth the changes, so longer bursts will be allowed 以字节为单位,以实际队列大小来快速量度平均队列大小。更大值会使变化变得平滑,这样将允许长的突发red-limit (integer) -以字节为单位队列大小的硬限制。如果实际的队列大小(不是平均的)超过此值,则所有新增的包将丢弃直到队列大小落下。这应是比red-max-thr
40、eshold加上red-burst的和值更高。red-max-threshold (integer) - 以字节为单位,平均队列的大小的最高限额。所有增进的数据包大小达到此值时, 将被丢弃。red-min-threshold (integer) - 以字节为单位,平均队列大小的下限。当大小达到此值时,Red开始用随机的计算概率下降数据包量。sfq-allot (integer; default: 1514) -一个子队列在下一子队列取得轮回前允许发送的字节数(可以从单一的循环轮流的子队列发送的字节数量),用1500 字节 MTU链接时,此值应该至少为1514 。sfq-perturb (int
41、eger; default: 5) -以秒为单位,触发SFQ 的哈希算法。接口默认队列子菜单级别: /queue interface描述要通过接口发送数据包,他们肯定要在队列中排队,即使您不想完全限制交通。在这里,您可以指定队列类型,将用于传输数据。请注意一旦您配置所列接口的树队列,该特定接口的默认队列不再活动,您必需确保所有的数据包通过这个接口进入该接口HTB 树内的一些qdiscs过滤,再发出去。否则数据包不被筛选而直接(在有效高于HTB的树中的任何数据包的优先级),并且没有缓冲就发送了,而最终导致不理想的性能。属性说明interface (read-only: name) 接口名称que
42、ue (name; default: default) - 将使用的接口的队列类型Example设置使用wireless-default队列的无线接口:adminMikroTik queue interface set 0 queue=wireless-defaultadminMikroTik queue interface print # INTERFACE QUEUE 0 wlan1 wireless-defaultadminMikroTik queue interfaceSimple Queues描述用特定的 IP 地址和/或子网限制数据速率的简单的方法是使用simple queues。
43、同样,你能够使用simple queues构建高级的 QoS 的应用。他们集成了有用的功能: 对等数据流队列 队列规则应用于所选的时间间隔。 优先级 使用 /ip firewall mangle中的多个包标记 双向数据流整形 (一个限制适用于下载 + 上传的总数)属性说明burst-limit (integer/integer) 在突发处于活动状态时,突发可到达的最大数据速率。在in/out窗口中(目标 upload/download) burst-threshold (integer/integer) -平均数据速率的极限,直到允许突发。如果平均数据速率在最近的burst-limit秒内不超
44、过 burst-threshold, 实际的数据速率可达burst-limit。否则硬限制将重置为max-limit。在in/out窗口中设置(目标 upload/download) burst-time (integer/integer) -以秒为单位,计算的平均数据速率的时间段, 在in/out窗口中设置(目标 upload/download)direction (不用于上传下载) - 从接收此队列的目标点的看,数据流流动方向。none - 队列有效,处于非活动状态both -队列限制上传目标和下载目标两者upload - 队列只限制上载目标,离开下载率不限制download - 队列只限
45、制下载目标,离开上载率不限制dst-address (IP address/netmask) - 要匹配的目标地址dst-netmask (netmask) -dst-address的掩码interface (text) -接口,适用于队列(即,目标已连接到该接口) limit-at (integer/integer) - CIR, 标准信息速率,在in/out窗口中 (目标 upload/download) max-limit (integer/integer) - MIR (最大信息速率,突发没活动时作用), 在in/out窗口中 (目标 upload/download) name (te
46、xt) -队列的描述性名称 p2p (all-p2p | bit-torrent | blubster | direct-connect | edonkey | fasttrack | gnutella | soulseek | winmx) - 哪种类型的 P2P 交通以匹配all-p2p - 匹配所有的 P2P 通讯packet-marks (multiple choice: name; default: ) 用于匹配的包标记列表(在 /ip firewall mangle设置). 使用逗号分隔多个包标记(,) parent (name) - 在层次结构中父队列的名称。只能是另一个简单队列
47、priority (integer: 1.8) - 队列的优先级。1 是最高,8-最低queue (name/name; default: default/default) -队列的名称。在/queue type设置。target-addresses (multiple choice: IP address/netmask) - 限制目标 IP 地址 (source addresses)。使用逗号分隔多个地址time (time-time,sat | fri | thu | wed | tue | mon | sun+; default: ) - limit queue effect to a specified time period total-burst-limit (integer) 用于 global-total 队列的突发限制(总速率, upload + download) total-burst-threshold (int