秒懂确定性网络之玩转队列(下)

网络 通信技术
本节分析队列的确定性增强,从令牌桶机制讲起,详解基于信用的整形(CBS)、时间感知整形(TAS)、循环排队转发(CQF)、帧抢占(FP)四种机制。

上一节介绍了队列的演进(秒懂确定性网络之玩转队列(中)),本节分析队列的确定性增强,从令牌桶机制讲起,详解基于信用的整形(CBS)、时间感知整形(TAS)、循环排队转发(CQF)、帧抢占(FP)四种机制。本文不仅介绍这些机制“是什么”,更力求分析清楚“为什么这样设计这个机制”、和“怎么样使用该机制”。

队列的确定性增强

队列调度分为入队、调度、出队三个过程,队列的确定性增强主要作用于出队。即调度依然可以选择严格优先级调度,在流量出队列进行链路传输时加以限制,因此也可以叫“整形”。确定性增强并不能“随心所欲”,而是只针对特定的场景有效,且需要对流量尽量已知。因此当我们了解一个新的调度机制时,最重要的切入点是流量的特征(流分布、流速率、包大小、包数量、周期/非周期)和流量的需求(带宽、时延、抖动、丢包率)。

令牌桶

令牌桶就是在交换机的出端口放一个“桶”,然后往桶里以一定的速率放令牌,令牌(Token)是一种单位为字节的虚拟数据包。

举个例子,假设有红绿两条流经过同一个10G大小的端口,如果绿流的大小直接是10Gbps,红流就没了传输空间,导致其大量丢包;为了使他俩和睦相处,必须给他们定规矩,即速率限制、或者叫带宽分配。假设绿流被分配的带宽是8Gbps(即1GBps),那么只需要每隔1纳秒往令牌桶里放1个令牌(理论情况),或者每隔1毫秒往令牌桶里放10^6个令牌(考虑设备处理能力),拿到令牌的数据包被允许发送,没拿到的直接丢弃或者存储等有令牌时再发送,就能在带宽层面保证流量调度的确定性。

令牌桶只能做到秒级的时延保障粒度,即最坏情况下的时延是1s。对于网页类互联网流量,几百毫秒的延迟并不影响用户使用,因此传统的互联网服务质量保障主要追求路由优化和带宽分配,尽量选择轻载不拥塞的路径、并为流量分配尽量富余的带宽,即可降低丢包和重传。

基于信用的整形

在保证带宽的基础上,能不能进一步降低时延,甚至保证最坏时延有界?比如音视频流量,其具有持续发送、体积大的特点,又要求时延抖动不能太大,以避免语音中断和画面卡顿。为解决音视频流量的传输服务质量保障问题,基于信用的整形(Credit Based Shaper, CBS)被提出。

CBS在出端口的队列放一个整形器,整形器包含一个信用计算组件。

该整形器遵循如下五条规则:

1)如果队列里没有数据包,则将队列的信用置为0。

2)如果队列的信用非负,则队列里的数据包允许被传输,否则不允许传输。

3)当队列里有至少一个数据包处于等待,则队列的信用以idleSlope的速率增加,idleSlope是空闲速率,单位是bps。

4)当队列里的包被传输时,队列的信用以sendSlope的速率减少,sendSlope是发送速率,单位也是bps。

5)一般情况下,发送速率等于空闲速率减去链路带宽,比如空闲速率是200Mbps,带宽1Gbps,则发送速率为-800Mbps。

为什么要设计这些规则?因为CBS的核心思想是流量互相“谦让”。令牌桶直接为每条流分配一定数值的令牌,当红绿两条同等优先级的流到达时,传输的先后和占用的传输时间是不确定的。而CBS初始的信用是0,流量必须要“等一等”信用值才会增加,增加后才能传输,而传输导致信用逐渐下降,因此一条流传一小会后信用为负停止传输,又轮到另一条流传输。

以下图为例,音视频流f1在入队时有黄色干扰流正在传输,f1等待传输且信用值不断增加;T0时刻干扰流传输完,f1开始传输且不断消耗信用,当绿色、蓝色两个包传输后T1时刻信用为负,第三个粉色的包无法传输,只能存储等待,直到T2时刻信用恢复到0,粉色的包被允许传输。最终的结果是绿、蓝、粉三个数据包不再是连续传输,而是间隔传输。下图需注意的是横轴是时间线,图中数据包的宽度不是数据包的大小;在队列深度中,宽度代表的是数据包的到达时间和传输开始时间,在当前传输的数据中,宽度代表的是传输开始时间和传输完成时间。

CBS的关键问题是如何配置idleSlope空闲速率这个参数,idleSlope是我们想保留的带宽,idleSlope越大,流量越容易发送,该参数需要通过一系列的约束求解得到。CBS典型使用方法是在优先级队列6(Q6)和优先级队列5(Q5)后面放置信用整形器,并将Q6的流量设置为A类流量,传输的持续时间(一跳时延)为125us,将Q5的流量设置为B类流量,一跳时延为250us。通过确定的一跳时延大小可以倒推得到空闲速率的配置参数值。

时间感知整形

在工业网络中还有一类控制命令流量对时延抖动要求极高,比如通过主机械臂操作从机械臂的控制命令流量,其每间隔1毫秒发送一个100字节大小的数据包,且要求端到端时延小于1毫秒。对于这种周期性的时间敏感的小流,CBS无能为力,因此时间感知整形(Time-Aware Shpaer, TAS)被提出。

TAS在每个出队列的后面放置一个“门”,当门处于打开(open,o)状态时,数据包被允许传输,当门处于关闭(close,c)状态时,数据包不允许传输。门在什么时候打开、什么时候关闭受一个门控列表驱动。此外,TAS的前提是所有的终端和网络设备需要采用802.1AS实现纳秒级全网时钟同步,即保证所有出端口的门控列表时间是同步的,且链路时延可以忽略不计。

TAS的关键问题是如何为控制类流量分配时隙,从而生成全局的门控列表。以下图为例,红流有两个1500字节的数据包,绿流有三个1500字节的数据包,假设端口带宽为1Gbps,则红流传输所需预留的时隙为24us,绿流传输所需预留的时隙为36us,在无等待调度模型下,将这两个时隙逐跳完全排开(即时隙不重叠),就能生成如图所示的门控列表,即在T0时刻Q7门打开、Q6门关闭,在T1时刻Q7门关闭、Q6门打开。

循环排队转发

TAS能够实现微秒级的逐跳逐包的细粒度调度,但其需要逐跳的逐条目的配置门控列表,导致配置十分复杂,且单台设备的门控条目数一般不超过1024条,在海量流量场景下存在可扩展性的问题,因此循环排队转发(Cyclic Queuing and Forwarding, CQF)被提出。

循环排队转发在入队和出队处各放置一个门(标记为Rx-gate和Tx-gate),当门打开时包进行入队或传输,当门关闭时禁止入队或传输。循环排队转发机制将出端口的传输时间分为一系列相等的时间间隔,每个时间间隔称为一个周期T。

CQF要求:

1)全网时钟同步,

2)链路时延可忽略不计,

3)周期T要至少大于一跳时延(即处理时延、排队时延、传输时延、链路时延之和)。然后通过奇偶两个队列交替执行入队和出队操作,CQF可以确保在一个周期内从上游节点发送数据包,并在同一周期内在下游节点接收到数据包,且在下一个周期将数据包发送出去。因此,端到端延迟仅取决于周期大小T和路径跳数H,其中最大延迟界限为(H +1)T,最小延迟界限为(H-1)T,端到端抖动最大为2T。

比如假设链路带宽为1Gbps,CQF最大队列深度为10个数据包,则按MTU大小的数据包计算得出一跳的排队和传输时延最大为120us,再加上5us的处理时延,可以将周期T的大小设为125us。那么如下图所示,在T0偶周期时刻,偶队列Q6发送、奇队列Q7接收,因此Tx-gate中Q6打开、Q7关闭, Rx-gate中Q6关闭、Q7打开;在T1奇周期时刻,奇队列Q7发送、偶队列Q6接收,因此Tx-gate中Q7打开、Q6关闭, Rx-gate中Q7关闭、Q6打开。

CQF通过限制最大队列长度,将一跳的时隙设定为固定周期值T,奇偶两个队列交替执行,相当于只有一条门控条目,从而简化了TAS复杂的门控条目配置。CQF的关键问题是如何确定周期T的大小、以及计算流的发送开始时间。如果周期T太小,则队列太短,会导致大量不可调度的情况;如果周期T太大,又会导致端到端最坏时延变大,部分低时延的流量无法被调度,且浪费片上缓存资源。

帧抢占

时间感知整形中还有一个细节问题是需要设置保护带宽。当时间敏感流(优先级为7)和尽力而为流(优先级为0)共传,如果时间敏感流进入队列时尽力而为流已经开始传输,那么时间敏感流必须等待至少一个尽力而为数据包的传输时间(在1Gbps带宽下传输1500字节大小的包为12us),导致其时隙无法对齐,即无法按照既定的门控列表进行传输。因此,在时间敏感流到达之前,所有的门应该关闭一个MTU大小包传输的时间,以形成保护带宽。

然而,不是所有的时间敏感流到达前都有尽力而为流在传输,也不是所有尽力而为流的包大小都是MTU大小,事实上,互联网流量的平均包大小在256字节左右,因此保护带宽在密集门控切换情况下会造成大量的带宽浪费。为减少带宽浪费,帧抢占(Frame Preemption, FP)被提出。

帧抢占将MAC分为eMAC和pMAC,时间敏感流(高速帧)走eMAC,尽力而为流(低速帧)走pMAC,当低速帧传输时若有高速帧到达,首先会判断低速帧是否能被分片,如果能则将低速帧分片,然后高速帧执行抢占传输,最后低速帧进行分片重组。因为以太网帧有最小64字节的发送限制,所以必须保证低速帧切片后两个切片(包括校验和)均不小于64字节。因此当低速帧的数据长度小于124字节时,该低速帧将不能被分片。

此外,帧抢占可以减少高速帧的排队阻塞时间,从而有效降低高速帧的时延,但是以增加低速帧时延为代价。低速帧切片时机存在不确定性,会导致高速帧被阻塞的时间存在波动,从而引入一定的时延抖动。

总结

本文分析了令牌桶、基于信用的整形(CBS)、时间感知整形(TAS)、循环排队转发(CQF)、帧抢占(FP)五种机制。五种机制既可以单独使用,也可以部分融合使用,比如时间感知整形融合基于信用的整形,时间感知整形融合帧抢占。机制使用的前提条件和机制的适用场景,是值得关注的重点;令牌桶被广泛应用于互联网,后四种机制当前主要应用于车载以太网、工厂内网、航空航天装备系统等局域网场景;在调度时延保障粒度方面,五种机制逐渐递进,粒度越来越细。为通俗易懂,

本文对相关细节有所简化,更多机制的配置参数和技术实现可以参考相关标准协议和产品文档。

 

 

责任编辑:赵宁宁 来源: SDNLAB
相关推荐

2021-09-09 16:21:35

队列网络端口

2021-12-08 05:56:06

队列网络带宽

2021-06-23 14:22:37

时隙流量网络

2021-11-03 06:25:58

确定性网络网络无线网络

2022-06-02 15:47:24

元宇宙确定性网络流量

2022-09-26 10:46:59

网络技术以太网流量

2022-06-22 11:09:16

新华三

2023-11-13 08:00:00

Python开发

2020-05-15 10:47:08

5G网络运营商

2022-09-29 13:15:14

新华三

2020-05-25 10:45:48

曙光

2021-05-15 09:00:43

全光网光纤网络

2022-11-24 14:45:18

物联网边缘计算

2017-03-15 13:42:12

互联网

2022-11-04 12:27:35

2009-09-02 22:41:29

802.11n无线网络Wi-Fi部署

2024-02-23 14:31:19

云计算云优化

2020-08-24 07:04:57

边缘计算云计算网络

2022-05-11 09:00:00

人工智能金融犯罪机器学习

2022-09-14 22:51:08

机器学习模型高斯过程
点赞
收藏

51CTO技术栈公众号