Queue types

MikroTik RouterOS 中的队列类型定义了用于管理数据包流的排队规则,其中 BFIFO 和 PFIFO 等选项提供基本的 FIFO 行为,而 CAKE 和 FQ_CoDel 等高级类型则提供延迟控制和公平的带宽分配。选择哪种类型取决于网络的优先事项,例如简单性、公平性或拥塞管理。

队列类型

概述

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

它们的复杂性和属性差异很大。例如,先进先出(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):

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

    • 特性: CoDel 旨在通过丢包来控制队列延迟,从而改善 bufferbloat。
    • 优点: 擅长管理延迟并避免 bufferbloat。
    • 缺点: 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 不管理延迟或拥塞。队列数量增加还可能增加内存使用量。

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

相关主题