Queue types

MikroTik RouterOS 的队列类型定义用于管理数据包流的排队规则:BFIFO 与 PFIFO 提供基础 FIFO 行为,CAKE 与 FQCoDel 等高级类型则提供延迟管理。

队列类型

概述

队列类型类似于无类排队规则的模板,这些算法控制数据包在进一步传输前如何被丢弃或排队到内存缓冲区中。它们对确保良好的服务质量至关重要,不仅能在带宽超限时提供帮助,还会影响延迟等其他方面。

队列类型的复杂度与属性差异很大。例如,先进先出(FIFO)队列简单,能保证数据包处理顺序的公平性,但可能导致队头阻塞等问题。更复杂的队列类型(例如实现公平排队或拥塞避免的类型)能更有效地管理网络性能,但可能需要更多资源与配置。

因此,队列类型的选择取决于网络的具体需求与特征。

队列类型概览

  1. BFIFO(Byte First-In, First-Out,字节先进先出):

    • 特性: BFIFO 是一种简单的面向字节的排队规则,按数据包到达顺序并基于其大小发送。
    • 优点: 数据包管理简单且公平。
    • 缺点: BFIFO 可能导致队头阻塞,一个大包会延迟其后所有小包。此外,它没有拥塞预防或数据包优先级机制。
  2. PFIFO(Packet First-In, First-Out,数据包先进先出):

    • 特性: 类似 BFIFO,但以数据包而非字节为单位运行。
    • 优点: 易于实现和理解,在数据包数量方面较为公平。
    • 缺点: 与 BFIFO 一样,存在队头阻塞且没有拥塞管理机制。
  3. CAKE(Common Applications Kept Enhanced):

    • 特性: 一套全面的队列管理系统,旨在对抗缓冲区膨胀并确保公平排队。它结合了 CoDel、FQ 等技术。
    • 优点: 在任何网络条件下都能出色地管理延迟,尤其适用于消费级宽带连接。
    • 缺点: 配置比简单排队规则更复杂。并非适用于所有场景,尤其是需要精细控制的场合。
  4. CoDel(Controlled Delay,受控延迟):

    • 特性: CoDel 通过丢包控制队列延迟,以改善缓冲区膨胀。
    • 优点: 擅长管理延迟并避免缓冲区膨胀。
    • 缺点: CoDel 本身不提供公平排队。
  5. FQ_CoDel(Fair Queuing Controlled Delay,公平排队受控延迟):

    • 特性: 结合 CoDel 的延迟管理与公平排队。
    • 优点: 出色的延迟管理,并在各流之间公平分配带宽。通常被认为是良好的默认选择。
    • 缺点: 比简单排队规则更复杂,配置难度更高。
  6. MQ_PFIFO(Multiqueue Packet First In, First Out,多队列数据包先进先出):

    • 特性: MQ_PFIFO 是 PFIFO 的扩展,支持多个队列。
    • 优点: 可为不同流量类型或优先级使用不同队列。
    • 缺点: 仍存在队头阻塞,且缺少内置拥塞管理机制。
  7. RED(Random Early Detection,随机早期检测):

    • 特性: RED 通过在队列满之前随机丢包来预测并预防拥塞。
    • 优点: 有助于预防拥塞并改善整体网络性能。
    • 缺点: 配置可能较复杂,需要根据网络特征调优。错误配置可能导致性能下降。
  8. SFQ(Stochastic Fairness Queuing,随机公平排队):

    • 特性: SFQ 通过将各流分配到不同的动态队列,确保资源在流之间公平分配。
    • 优点: 有助于防止单个流独占连接。
    • 缺点: SFQ 不管理延迟或拥塞。队列数量增加还会提高内存占用。

选择排队规则时,需要考虑网络特征以及你最看重的方面,例如延迟、公平性、简单性或拥塞管理。

相关主题