确定性时延保障:队列整形器

Posted Ali forever

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了确定性时延保障:队列整形器相关的知识,希望对你有一定的参考价值。

队列整形器

前言

前一篇文章介绍了确定性时延的背景知识,这篇文章介绍一下比较常用的队列整形器

一、IEEE 802.1Qav CBS整形器

1.IEEE 802.1Qav的作用:

为了限制下游接收桥和/或终端站的A/V流量缓冲量,CBS间隔开A/V帧以减少流突发和聚集,A/V帧之间的间隔还通过限制接连的AVB流突发来保护AVB流量。由于最大的AVB流突发是有限的,因此A/V帧之间的这种间隔保护了尽力而为流。突发多媒体流量比例的增加会导致多媒体流量的大量缓冲,可能会导致缓冲区溢出和丢包,AVB流突发会干扰下游网桥并导致拥塞。数据包丢弃可能会触发重传,这会增加延迟,使重传数据包过时并降低体验质量(QoE)。

2.IEEE 802.1Qav的概述:

IEEE 802.1Qav通过流保留协议(SRP)与基于信用的整形器(CBS)一起限制接收站所需的缓冲量,CBS与SRP相结合的目的是将延迟限制在每桥250 μs以下。CBS 主要应用于AVB应用,它利用信用这个指标将传输时间分为允许高优先级流量和普通优先级流量传输这 2个时隙。然而,CBS的一些关键缺点是平均延迟增加,延迟可达每跳250 μs,这对于工业控制应用太高了。

3.CBS整形器的机制:

CBS整形器将队列分成两个流量类别,A类(严格延迟界限)和B类(松散延迟界限)。

  1. 当队列中没有可用的帧时,队列的信用(Credit)被设置为零。队列信用为非负时,队列才有资格传输。当队列中至少有一个帧时,信用值以idleSlope速率增加,当传输一个帧时,信用值通过sendSlope速率减少。
  2. idleSlope是网桥中为特定队列和流量类保留的实际带宽(单位是比特每秒),而sendSlope是底层MAC服务支持的端口传输速率(单位是比特每秒)。此外,还有两个关键的限制参数:1. loCredit是最大帧大小时函数2. hiCredit是最大干扰大小时函数。
  3. CBS对每个整形流(shaped)类别进行节流,使其不超过其预配置的带宽限制,由于带宽密集型应用如音频和视频限制最大带宽的75%。总的来说,IEEE 802.1Qav以太网AVB标准保证在7个网络跳的最坏情况下,A类延迟低于2毫秒,B类延迟低于50毫秒。

二、IEEE 802.1Qbv 时间感知整形器 (TAS)

1.IEEE 802.1Qbv的概述

  1. 针对IEEE 802.1 Qav的不足,TAS 可以提供更精确的确定性时延保障。TAS在时间触发窗口中调度关键流量流,这些窗口也称为受保护流量窗口或时间感知流量窗口。TAS遵循TDMA范式,类似于灵活时间触发以太网(FTT-E),其中每个窗口都有分配其自己的传输时间。
  2. TAS是目前最常使用的流量整形机制,TAS要求所有网络节点的时间同步,然后利用门控列表控制不同优先级队列的传输。为了防止低优先级流量(如尽力而为流)干扰预定流量传输,预定流量窗口之前有一个所谓的保护带。

2.TAS整形器机制

  1. TAS利用门驱动机构,根据已知的和商定的时间计划打开/关闭,为桥接中的每个端口。特别地,门控列表(GCL)表示门控入口(GCEs),即每个队列的打开或关闭分别为1或0。
  2. 根据符合GCL传输条件给定出口队列的帧,GCL通过802.1AS时间参考在时间上同步。GCL以周期性重复的周期时间执行,其中每个周期时间包含一次GCL执行。在一个周期内,闸门打开的时间段称为时间感知流量窗口,帧根据GCL和传输选择决策进行传输,每个单独的队列都有自己的传输选择算法。
  3. 如果队列包含准备传输的帧,具有打开门的高优先级流量类队列没有帧要传输,并且帧传输可以在给定队列的门关闭之前完成,就可以打开对应的门进行传输。请注意,这些传输选择条件确保只有在高优先级流量的预定流量窗口开始时传输将完成时,才允许低优先级流量开始传输。因此,这种传输选择有效地执行了一个“保护带”,以防止低优先级流量干扰高优先级流量。

3.TAS整形器的缺点

  1. TAS的一个关键缺点是由于额外的采样延迟而引起一些延迟,即由于等待时间直到下一个时间触发窗口开始。当未同步的数据从端点传递到网络时,就会出现这种采样延迟。终端节点中的任务和消息调度需要与网络中的TAS门调度相结合,以实现最低的延迟。
  2. 此外,在中等规模的网络中,同步TSN网桥、帧选择和整个网络的传输时间并不简单,并且需要一个完全管理的网络。此外,TAS对带宽的有效利用也需要彻底检查。总的来说,TAS具有较高的配置复杂度。


三、IEEE 802.3br 帧抢占机制

1.帧抢占的概述:

  1. 为了减少在时隙转换时,低优先级流量对高优先级流量的干扰,TSN 采用 IEEE 802.1Qbu 帧抢占机制,利用保护频带为 TAS 确保传输信道对于下一个高优先级流量的传输是可用的,同时显著减小保护频带的字节数。
  2. 使用帧抢占技术前,保护频带的持续时间必须与安全传输的最大帧尺寸一样长,即 1542 B 的传输时间;加入帧抢占后,保护频带可以减少到帧的最小尺寸,即最小帧 64 B 和不能预占的剩余长度 63 B 的和,总共 127 B。帧预抢占造成的低优先级帧中断只发生在链路层,在下一个网桥的接口处,被中断的帧会被重新整合成为完整的帧。

2.帧抢占的机制

  1. 通过抢占,保护频带可以减少到最短的低优先级帧片段的传输时间。因此,在最坏的情况下,低优先级帧片段的传输可以在开始下一个高优先级帧的传输之前完成。
  2. 剩余的碎片帧的传输然后可以恢复并完成。这种抢占只发生在链路级,任何碎片帧都在MAC接口上重新组装,交换机内部只处理完整的帧。也就是说,任何通过物理链路传输到下一个网桥的帧片段都在链路层接口中重新组装,下一个网桥只处理完整帧。每个抢占操作都会引起一些计算开销,这是由于网桥的封装处理。

四、IEEE 802.1Qch 循环排队和转发(CQF)

1.CQF的概述

  1. CQF可以通过同步入口和出口的队列操作以降低 TAS 配置的复杂性,实现与网络拓扑无关的零拥塞丢失和有界延迟, 但对时间同步的要求也很高。
  2. 虽然带有CBS的IEEE 802.1Qav 可以很好地处理软实时约束,例如A/V流量,会使病态拓扑可能导致延迟增加,
  3. 最坏情况下的延迟是拓扑依赖的,而不仅仅是跳数依赖,因为交换机中的缓冲区需求是拓扑依赖的。

2.CQF整形器的机制

  1. TSN TG引入了循环排队和转发(CQF),也称为蠕动整形器(PS),作为同步入队和出队操作的方法。同步操作有效地允许局域网网桥以循环的方式同步它们的帧传输,实现零拥塞损失和有限的延迟,独立于网络拓扑。
  2. 假设所有网桥的时间都是同步的,也就是说,所有网桥都是启用802.1AS的网桥,为了讨论的简单起见,假设导线长度和传播时间可以忽略不计。
  3. 然后,时间敏感流在每个时间间隔或周期时间被调度(进入队列和退出队列),发送方(说话者)和下游中间接收方之间的最坏情况确定性延迟为周期时间的两倍,从本质上讲,一个帧的网络传输延迟完全由周期时间和跳数来表征。因此,帧时延完全独立于拓扑参数和其他非TSN流量。

3.CQF与帧抢占的结合

  1. CQF可以与IEEE 802.3Qbu中规定的帧抢占相结合,将从全尺寸帧的传输时间缩短到最小尺寸帧片段的传输时间(加上所有TSN流量)。但是请注意,要使CQF正确工作,所有帧必须保持在其分配的周期内,即在接收下游中间桥的预期周期内必须接收所有传输帧。
  2. 因此,需要仔细考虑周期时间、网络中网桥之间的周期时间对齐以及周期内第一次和最后一次传输的时间,以确保实现所需的延迟边界。为此,CQF与IEEE 802.1Qci入路监管和IEEE 802.1Qbv TAS一起确保所有帧都保持在确定的延迟内,并保证在分配的周期时间内传输。

五、IEEE 802.1Qcr异步流量整形(ATS)

1.ATS的概述:

  1. 为了有效利用网络带宽,ATS 基于 UBS(Urgencybased Scheduler),通过在每一跳重塑 TSN 流,提供无需严格时间同 步的确定性时延。
  2. ATS旨在通过重塑每跳TSN流、实现逐流队列以及优先处理紧急流量而不是放松流量来平滑流量模式。ATS的操作是异步的,即网桥和端点不需要及时同步。因此,即使ATS在混合流量负载(即周期性流量和零星流量)的高链路利用率下运行,也可以有效地利用带宽

2.IEEE 802.1Qcr的作用

虽然CQF和TAS为关键流量提供了ULL,但它们依赖于全网协调时间,而且重要的是,由于强制数据包以强制周期传输,它们不能有效利用网络带宽。为了克服这些缺点,TSN TG提出了基于紧急的调度器(UBS) IEEE 802.1Qcr异步流量整形器(ATS)。

3.UBS机制概述

  1. UBS基于速率控制服务规程(RCSDs)。RCSDs是一种不保存工作的包业务规程,包括速率控制静态优先级和速率控制最早截止日期。
  2. RCSD报文调度由两个部分组成:速率控制器实现速率控制策略,调度器根据某些调度策略(例如静态优先级、先到先服务或最早到期日期优先)实现报文调度。通过分离速率控制器和调度器,RCSD有效地将每个流的带宽从其延迟限制中分离出来,即分配指定数量的带宽给单个流与延迟限制无关。
  3. 因此,RCSD可以支持低延迟和低带宽流。RCSD的基本目标是在发射机和接收机之间的每一跳分别控制帧的选择和传输,即每一跳整形。

4.UBS机制问题

RCSD存在多个可伸缩性问题,包括根据数据包的资格时间在不同队列中动态重新排序数据包,即优先级队列实现具有非恒定的复杂数据结构,如堆。专门的日历队列被提出来实现恒定的复杂度。然而,日历队列要求支持RCSD的交换机具有较大的内存池,随着网络规模的扩大很难控制,并且仅适用于具有特殊属性的某些特定应用程序。:

总结

本文针对确定性网络里面的队列整形器进行了描述,对各种队列整形器的作用进行了一个粗略总结。

以上是关于确定性时延保障:队列整形器的主要内容,如果未能解决你的问题,请参考以下文章

阿里开源分布式限流框架 - Sentinel Go 0.3.0 发布,支持熔断降级能力

阿里开源分布式限流框架 -Sentinel Go 0.3.0 发布,支持熔断降级能力

阿里开源分布式限流框架 -Sentinel Go 0.3.0 发布,支持熔断降级能力

阿里开源分布式限流框架 - Sentinel Go 0.3.0 发布,支持熔断降级能力

阿里开源分布式限流框架 -Sentinel Go 0.3.0 发布,支持熔断降级能力

阿里开源分布式限流框架 -Sentinel Go 0.3.0 发布,支持熔断降级能力