帮助我们改善您的体验。

让我们了解您的想法。

您是否能抽出两分钟的时间完成一份问卷调查?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
本页内容
keyboard_arrow_right

机器翻译对您有帮助吗?

starstarstarstarstar
Go to English page
免责声明:

我们将使用第三方机器翻译软件翻译本页面。瞻博网络虽已做出相当大的努力提供高质量译文,但无法保证其准确性。如果对译文信息的准确性有任何疑问,请参阅英文版本. 可下载的 PDF 仅提供英文版.

了解 CoS 虚拟输出队列 (VOQs)

date_range 11-Apr-23

通过交换机转发流量的传统方法是在入口接口上的输入队列中缓冲入口流量,通过交换机交换矩阵将流量转发到出口接口上的输出队列,然后在输出队列上再次缓冲流量,然后再将流量传输到下一跃点。入口端口上数据包的传统方法是将发往不同出口端口的流量存储在同一输入队列(缓冲区)中。

在拥塞期间,交换机可能会在出口端口丢弃数据包,因此交换机可能会花费资源将流量通过交换机交换矩阵传输至出口端口,而只是丢弃该流量而不是转发。由于输入队列存储了发往不同出口端口的流量,因此一个出口端口上的拥塞可能会影响不同出口端口上的流量,这种情况称为线头拦截 (HOLB)。

虚拟输出队列 (VOQ) 架构采用不同的方法:

  • 交换机使用每个数据包转发引擎 (PFE) 芯片入口管道上的物理缓冲区来存储每个出口端口的流量,而不是为输入和输出队列提供单独的物理缓冲区。一个出口端口上的每个输出队列在交换机上所有 PFE 芯片的每个入口管道上都有缓冲区存储空间。入口管道存储空间到输出队列的映射为 1 比 1,因此每个输出队列都会在每个入口管道上接收缓冲区空间。

  • 每个输出队列都有一个专用 VOQ,其中包含专用于该输出队列的每个数据包转发芯片上的输入缓冲区(1 对 映射),而不是一个输入队列包含多个不同输出队列的流量(一对多映射)。此架构可防止任何两个端口之间的通信影响另一个端口。

  • VOQ 不会将流量存储在物理输出队列中,直到可以转发,直到出口端口有资源转发流量,才会从入口端口通过交换矩阵传输到出口端口。

VOQ 是输入队列(缓冲区)的集合,用于接收和存储发往一个出口端口上一个输出队列的流量。每个出口端口上的每个输出队列都有自己的专用 VOQ,其中包含向该输出队列发送流量的所有输入队列。

VOQ 架构

VOQ 表示特定输出队列的入口缓冲区。唯一缓冲区 ID 标识 PFE 芯片上的每个输出队列。这六个 PFE 芯片对特定输出队列使用相同的唯一缓冲区 ID。在 6 个 PFE 芯片上使用特定缓冲区 ID 存储的流量包括发往一个端口上一个特定输出队列的流量,以及该输出队列的 VOQ。

交换机具有 72 个出口端口,每个端口上有 8 个输出队列,每个 PFE 芯片上都有 576 个 VOQ(72 x 8 = 576)。由于交换机具有六个 PFE 芯片,因此交换机共有 3,456 个 VOQ(576 x 6 = 3,456)。

VOQ 分布于所有主动向输出队列发送流量的 PFE 芯片上。每个输出队列都是所有 PFE 芯片上分配给该输出队列的总缓冲区数(按其唯一缓冲区 ID)的总和。因此,虽然输出队列由物理输入队列组成,但输出队列本身是虚拟的,而不是物理的。

往返时间缓冲

虽然拥塞期间没有输出队列缓冲区(无长期存储),但出口线卡上有一个小的物理输出队列缓冲区,用于容纳流量从入口到出口的往返时间。往返时间包括入口端口请求出口端口资源、从出口端口接收资源授权以及跨交换机交换矩阵传输数据所需的时间。

这意味着,如果数据包未在交换机入口处丢弃,并且交换机将数据包通过交换矩阵转发到出口端口,则数据包不会丢弃,并将转发到下一跃点。所有数据包丢弃都在入口管道中发生。

交换机有 4 GB 的外部 DRAM 用作延迟带宽缓冲区 (DBB)。DBB 为入口端口提供存储,直到端口可以将流量转发到出口端口。

请求和授予出口端口带宽

当数据包到达入口端口时,入口管道会使用目标输出队列的唯一缓冲区 ID 将数据包存储在入口队列中。交换机在执行数据包查找后,会做出缓冲决策。如果数据包属于已超过最大流量阈值的类,则数据包可能不会受到缓冲,可能会被丢弃。要通过交换机交换矩阵将数据包传输至出口端口:

  1. 入口线卡 PFE 请求调度器向出口线卡 PFE 授予计划程序发送请求,通知出口 PFE 有数据可供传输。

  2. 当有可用的出口带宽时,出口线卡授予计划程序会向入口线卡 PFE 发送带宽授权,从而做出响应。

  3. 入口线卡 PFE 从出口线卡 PFE 接收授权,并将数据传输到出口线卡。

入口数据包会保留在入口端口输入队列上的 VOQ 中,直到输出队列准备好接受和转发更多流量。

在大多数情况下,交换矩阵的速度足够快,足以对出口服务等级 (CoS) 策略透明,因此将流量从入口管道通过交换机交换矩阵转发到出口端口的过程不会影响为流量配置的 CoS 策略。只有在发生交换矩阵故障或存在端口公平性问题时,交换矩阵才会影响 CoS 策略。

当数据包入口和出口同一 PFE 芯片(本地交换)时,数据包不会遍历交换机交换矩阵。但是,交换机使用与通过交换矩阵的数据包相同的请求和授权机制来接收出口带宽,因此,当流量争夺相同输出队列时,本地交换的数据包和跨交换矩阵后到达 PFE 芯片的数据包将得到公平对待。

VOQ 优势

VOQ 架构提供两大优势:

消除线头阻塞

VOQ 架构消除了线头阻塞 (HOLB) 问题。在非 VOQ 交换机上,当某个出口端口的拥塞影响未拥塞的不同出口端口时,HOLB 将发生。当拥塞端口与未拥塞的端口在入口接口上共享相同的输入队列时,将发生 HOLB。

HOLB 场景的一个示例是,交换机有流量流进入一个入口端口 (IP-1),该入口端口发往两个不同的出口端口(EP-2 和 EP-3):

  1. 出口端口 EP-2 出现拥塞。出口端口 EP-3 没有拥塞,如图 1 所示。

    图 1:EP-2 Congestion Occurs on EP-2 上出现拥塞
  2. 出口端口 EP-2 向入口端口 IP-1 发送反压信号,如图 2 所示。

    图 2:EP-2 背压 IP-1 EP-2 Backpressures IP-1
  3. 回压信号会使入口端口 IP-1 停止发送流量并缓冲流量,直到收到信号继续发送,如图 3 所示。到达入口端口 IP-1、发往未拥塞出口端口 EP-3 的流量与发往拥塞端口 EP-2 的流量一起被缓冲,而不是转发到端口 EP-3。

    图 3:EP-2 的背压导致 IP-1 缓冲流量而不是发送流量,从而影响 EP-3 Backpressure from EP-2 Causes IP-1 to Buffer Traffic Instead of Sending Traffic, Affecting EP-3
  4. 只有当出口端口 EP-2 清除足以允许入口端口 IP-1 恢复发送流量时,入口端口 IP-1 才会将流量传输到不拥群的出口端口 EP-3,如图 4 所示。

    图 4:EP-2 清除拥塞,允许 IP-1 继续向两个出口端口 Congestion on EP-2 Clears, Allowing IP-1 to Resume Sending Traffic to Both Egress Ports发送流量

这样,拥塞的出口端口 EP-2 会对未拥塞的出口端口 EP-3 产生负面影响,因为两个出口端口在入口端口 IP-1 上共享相同的输入队列。

VOQ 架构通过为每个接口上的每个输出队列创建不同的专用虚拟队列来避免 HOLB,如图 5 所示。

图 5:每个出口端口在 IP-1 Each Egress Port Has a Separate Virtual Output Queue on IP-1 上都有一个单独的虚拟输出队列

由于不同的出口队列不共享相同的输入队列,因此一个端口上拥塞的出口队列不会影响不同端口上的出口队列,如图 6 所示。(出于同样的原因,一个端口上拥塞的出口队列不会影响同一端口上的另一个出口队列—每个输出队列都有自己的专用虚拟输出队列,由入口接口输入队列组成。)

图 6:EP-2 上的拥塞不会影响未拥塞的端口 EP-3 Congestion on EP-2 Does Not Affect Uncongested Port EP-3

在入口接口执行队列缓冲可确保交换机仅当出口队列准备好接收该流量时,通过交换矩阵将流量发送至出口队列。如果出口队列尚未准备好接收流量,则流量在入口接口处保持缓冲。

提高交换矩阵效率和利用率

传统的输出队列架构在 VOQ 架构中存在一些固有的效率低下问题。

  • 数据包缓冲区 — 传统的队列架构在长期 DRAM 存储中对每个数据包进行两次缓冲区,一次在入口接口,一次在出口接口。VOQ 架构在入口接口上在长期 DRAM 存储中只对每个数据包进行一次缓冲。交换机交换矩阵足够快,对出口 CoS 策略透明,因此交换机可以不需要深度出口缓冲区的速率转发流量,而不会影响配置的出口 CoS 策略(调度),而不是在出口接口处对数据包进行第二次缓冲。

  • 资源消耗 — 传统队列架构通过交换机交换矩阵将数据包从入口接口输入队列(缓冲区)发送到出口接口输出队列(缓冲区)。在出口接口上,数据包可能会丢失,即使交换机消耗了通过交换矩阵传输数据包并将其存储在出口队列中的资源。在出口接口准备好传输流量之前,VOQ 架构不会通过交换矩阵向出口接口发送数据包。这提高了系统利用率,因为不会浪费任何资源来传输和存储以后丢弃的数据包。

瞻博网络交换架构独立于 VOQ 架构,还可以提高交换矩阵利用率,因为交换机可将数据包转换为信元。单元具有可预测的大小,使交换机能够将单元均匀喷洒到交换矩阵链路上,并更充分利用交换矩阵链路。数据包大小差异很大,数据包大小无法预测。由于数据包大小的变化和不可预测性,基于数据包的交换矩阵的利用率不会超过 65-70%。瞻博网络基于信元的交换矩阵具有近 95% 的交换矩阵利用率,因为可预测性和对信元大小的控制能力。

footer-navigation