TSN关键技术-整形器

供稿:工控网

似乎对TSN感兴趣的人越来越多了,大家希望有些通俗易懂的介绍,不过,通俗易懂也非易事,前几期曾经写到了TSN的目标和任务,延迟测量、标准几个话题,现在继续试图通过“更为简单的方式”来介绍一下TSN的关键问题—整形器(Shaper)这个话题。


一、有人问为什么要一个网络?


关于TSN,也有些人问为什么要一个网络?因为现在的实时数据和非实时数据都是不在一个网络里传输的,因此,如果采用TSN就可以只用一个网络接口了,其实,这个非常容易理解—当年为何要开发现场总线?最直观的好处就是接线少,为此产生的接头也少,设备的体积也可以做的再小一些,能耗也会更低一些,你说这有什么意义? 


1.webp.jpg


图1-1少的电缆够绕地球N圈


如果有1亿个设备之前需要连接,设备-设备间平均电缆长度10米,那么节省的电缆就能绕地球25圈,对,你没看错,25圈!!!


这个很重要,牵扯到技术的经济性,不得不啰嗦几句,下面是这次的正题,关于整形器的事情。


二、数据队列排序


前面讲过了,TSN是一个“桥接”网络,就是有中间的交换机连接的,对于各种实时以太网而言,为了实时性,都是通过Hub连接,Hub属于直接端口转发的,而交换机就有数据队列,就像奥运会每个国家都要进入主席台亮个相,每个队列的数据都是有标配的,他的入场顺序虽然按字母顺序,但东道国在最后一个出场,这就是队列里的排列策略,而且每个国家的队列也有标配,就是旗手、国旗就是这个队列的标识—代表哪个国家,后面就是参赛选手,属于数据负载,大的国家参与的项目多,就队伍比较大,小国家比如什么萨尔多瓦,可能就几个人跳着舞过来了。


2.webp.jpg


图2-1关于数据队列


数据进入交换机后形成队列,然后队列的数据怎么被传输,这个策略由“Shaper”来决定的,这个Shaper,翻译为整形器也可以,或者赋形器也行,确定的翻译似乎也没有。


我们知道TSN是IEEE802.1Q发展起来的,IEEE802.1Q代表大的标准族,Qxx代表子集,IEEE802.1Q的大致发展顺序如下:


1.webp.jpg


下面第三部分略微详细的介绍一下这几个整形器,再增加一个IEEE802.1Qbu+IEE


E802.3br抢占式机制。


三、整形器的详细介绍


3.1.CBS基于信用的整形器


汽车行业最开始做的叫做IEEE802.1AVB,它由几个标准共同构成,前面说过的时钟同步IEEE802.1AS是一个,其中IEEE802.1Qav(采用FQTSS-为时间敏感数据流进行转发和队列排序),即为时间敏感型数据提供“Shaping”-整形,也可以理解为“整容”,在这里它采用了一个称为CBS(Credit-Based Shaper)整形器,简单说,除了其它Best Effort外,有两个队列被赋予较高的优先级,这两个队列依据Credit进行数据的交替传输,例如你是A队列,如果没有在传输你的信用会以idleSlope的速率增加,当你的队列正在传输数据时,你的信用会以SendSlope的速率下降,当你的队列传输完成时,你的信用就清0,你的信用低于B队列,你等待时间越长你的信用越高,因此,不会因为别人优先级高就轮不到你了。


1.webp (1).jpg


图3-1CBS整形器的工作


CBS限制每个整形流量类别不超过其预先配置的带宽限制(由于带宽密集型应用,例如音频和视频,最大带宽的75%)。 CBS与SRP(Stream Reserved Protocol-流预留协议,这个也需要单独介绍,因为它是属于IEEE802.1Qat作为IEEE802.1Q的基础协议)结合使用可将每个桥的延迟限制在250μs以下。总的来说,IEEE 802.1Qav以太网AVB标准保证A类的最差情况下延迟低于2毫秒,B类低于50毫秒,最多7个网络跳跃.


不过,CBS缺点是这种机制下平均延迟会增加,尽管CBS限制每个整形器流量类别不超过预先配置带宽限制(对于带宽密集型最大带宽75%),并且采用CBS与SRP结合可以让每个桥接延迟现在在250μs以下,不过这对于工业应用而言还是延迟太大,因此,工业网络参考的是Qbv和Qbu+802.3br的整形器。


汽车行业会让TSN快速成长


不过,大家要注意,TSN在汽车行业的大量使用的话会对TSN有非常大的推进作用,目前已经在进入测试运行阶段(你们知道,汽车行业列装可是需要非常长的测试验证周期的,不是随便上车就用的),像大牌厂商Audi、BMW、Benz这种总是要为天下先的德国大牌已经开始进入应用阶段了,而且,据说目前汽车行业对TSN的意见比较统一,因为CAN总线带宽已经不能胜任未来辅助驾驶(ADAS)的需求了,汽车迈入“以太网”时代已然指日可待了—前几天和石林才聊起这个TSN在汽车行业的应用,他就摔给我一条消息“三星在欧洲车展宣布成立汽车产业发展基金,投了9000万美元给TTTech,因为后者为奥迪提供了车载以太网系统”,说的就是TSN。


汽车要是用上TSN,那就未来前景诱人了,因为一个车上面得多少个TSN节点啊?少说也得30个吧?想想TSN的芯片提供商们一定在算,全球有5000万台车,以后每个车30个节点,那就是15亿个芯片的需求啊!


这个潜在的市场会让TSN的成本降低的,想想当年,CAN总线在汽车行业的大量应用才让CAN总线在其它的领域变得经济—是的,只有规模才能经济。


2.时间感知整形器TAS


IEEE802.1Qbv定义了TAS(Time Awareness Shaper),如图3-2,在TAS的整形器中,GCL(Gate Control List)周期性的控制门的开/关,TAS需要从发送方(Talker)到接收方(Listener)中间的所有网桥进行时间同步,对于桥中的每个端口,TAS根据已知且商定的时间表进行开关驱动动作,而数据调度则可以根据每个节点及队列的优先级进行定义,在IEEE802.1Qbv的实现中,那些需要实时传输的数据流通常被第一个安排进行传输,这就是所谓的“Schedule Traffic Quene”,需要在时间调度配置时预先予以确定,而另一个数据队列称为“Reserved Traffic”--可以理解为预留通道,它并非周期性的,但是,可能一来就得紧急走,就像高速公路的应急通道一样,平时不用,但是遇到消防车、救护车的时候这个车道可以被拿来用,因为这种事情并非周期性发生,但是,它发生的时候又别紧急。


当然,TAS可以和CBS整形器混用-像图3-3,除了原定计划的Schedule和Reserved外,还可以增加一个CBS整形器对其队列内部的数据进行按照信用的排序调度。


2.webp.jpg


图3-2 TAS时间感知整形器


 图3-3即是一个TAS门控制机制与CBS的混合机制。


3.webp.jpg


图3-3 TAS+CBS混合的整形器


工业领域的开发者通常会基于Qbv机制来开发整形器,在时钟同步和门控制的基础上,融合各种数据流调度方式,可以将CBS、CQF等进行整合构成自身的应用,而另一方面IEC60802工作组也将会协同各个企业进行互操作的统一规范与标准。


3.抢占帧机制IEEE802.1Qbu+IEEE802.3br


在IEEE802.1Qbv中所采用的TAS整形器存在一个问题,就是“Guardband”,因为除了Scheduled和Reserved帧外,其它队列的称为“Best Effort”--这些是非周期性的数据帧,因此,它们的特点就是“虽然,他们的时间要求并非严格,但是你不知道它什么时候需要传输”,但是为了确保严格时间要求的数据传输时,网络是可用的,即空闲的,因此,Qbv给每个周期预留了一个“标准以太网”帧作为“Guard Band”称为保护带宽,这个长度要说起来,对于千兆网络而言,这个Guardband所预留的1.5kb也是需要大约1.25微秒左右的时间损耗的。为了节省这么点带宽,TSN工作组的人们又开发了抢占式MAC的IEEE802.1Qbu+IEEE802.3br的抢占式MAC的方式,以便能够不要浪费这些带宽。


4.png


图3-4抢占式MAC的结构


对于图3-4而言,MAC层分为eMAC(快速)和pMAC(可被抢占),它可以使得以太网帧被最小到64字节的传输,这也同样为了保护高优先级队列的传输特性,因为如果在高优先级需要传输时,前面有一个低优先级队列正在传输数据,而且,它还特别长,占用较多的传输时间,它就可以抢占方式获得传输,而被抢占的则会拆分,然后在下一个时段传输。


当然,对于被抢占帧而言,其传输必须以完整的帧方式汇合,这中间牵扯到重新的分包和CRC校验,然后再到MAC聚合层进行重新封装为完整包。抢占式MAC这种机制主要解决低优先级队列对于高优先级队列传输的影响,当然了抢占式机制也可以与TAS整形器混用,如图3-5所示。


5.webp.jpg


3-5 TAS+抢占式MAC的混合模式


当然对于抢占式机制而言,需要桥节点和终端节点支持LLDP(IEEE802.1AB-链路层发现协议),因此802.1Qbu+802.3br这个是需要交换机在硬件上的支持能力的,也不知道会增加多少硬件成本。


4.IEEE802.1Qch运行的CQF整形器


为了提高数据的确定性,人们继续努力寻找一种更为有效的整形器,在IEEE802.1Qbv和Qci基础上设计了CQF机制,并定义为IEEE802.1Qch标准,CQF是Cyclic Queuing and Forwarding,即周期性排队与转发机制,这个机制由Qci-用于流滤波与监测标准对入口的队列进行处理,然后在队列里将2个缓冲(也可以是3个或更多),其核心机制在于“数据包每个周期在每个桥仅走一步”,如果选择4和5两个队列,则这两个队列对数据进行排队,在同一跳转节点上,队列4的门是写入数据,而对队列5发送数据,而到了下一个周期,队列4发送,而队列5则接收数据,这样,交替开关4和5队列的门,这样就可以形成一个TAS中的Gate Control List所开/关的门会使得队列形成一个周期性排队,转发的过程,这使得整个数据的延迟为一个传输过程+一个跳转过程的延迟,即,数据传输的延迟被“确定”了。




6.jpg


3-6CQF的排队机制


下面几张图用于显示数据包各个End节点经过桥节点然后数据的整个传输过程,分为四个周期,每个周期中,数据包仅移动一步。


image.png


图3-7CQF机制中数据包每个周期经过一个桥


图3-7显示了各个终端节点的数据经过桥节点的过程,我们可以看到每个颜色的数据包在每个周期里仅移动经过每个桥(Hop)。


Qci是按照流量进行过滤和监测(Per-Stream Filtering and Policing),它是处于队列的入口端与排队前的处理部分。它的角色就是在数据进入队列时进行过滤与监测处理,包含了三个主要的功能:


8.webp.jpg


图3-8 Qci的功能(蓝色部分)


(1).通过MAC地址、目标地址、VLAN和/或IP地址组件识别特定的数据流;


(2).基于每个端口输入调度来接受或放弃数据,正确的包必须正确的时间窗口内到达并在正确的端口被接收


(3).指派数据包到一个输出队列选择器。


在Qci中对数据进入队列进行预先的判断,然后排队转发构成整个CQF机制,这个在IEEE定义为IEEE802.1Qch标准。


CQF也可以与抢占机制进行配合,使得可以在队列中避免低优先级反转压制高优先级数据的传输。


5.ATS-IEEE802.1Qcr


为了解决非周期性数据的传输零拥堵丢包问题,并且对于周期性的数据传输而言,网络的严格时钟同步和队列保护带宽等原因无法最大的使用到网络带宽,又进一步优化那些对于时间同步非严苛任务的带宽利用,开发了ATS整形器,在IEEE802.1Qcr中定义,IEEE802.1Qcr是一个异步数据流整形器ATS(Asynchronous Traffic Shaper),它的是一个基于紧急度的调度器(Urgency Based Scheduler),ATS旨在通过每跳重塑TSN数据流,ATS并不要求桥和终端节点同步,对于高实时要求和非实时业务混合业务模式下,ATS也能保持带宽的最大利用率。


9.webp.jpg


图3-9ATS的处理机制


它采用了一种称为RCSD(速率控制服务规则),RCSD是一种非工作保存类的分组服务规程,包括速率控制静态优先级和速率控制的最早期限优先。 RCSD分组调度由两部分组成:速率控制器实现速率控制策略,调度器根据一些调度策略实现分组调度,例如静态优先级,先到先服务或最早到期日期。 。通过分离速率控制器和调度器,RCSD有效地将每个流的带宽与其延迟界限解耦,即,为单个流分配规定量的带宽与延迟界限无关。因此,RCSD可以支持低延迟和低带宽流。


引入为了解决相对于CBS/TAS-时间感知整形器属于Time-Trigged,那么ATS则属于Event-Trigged方式,各个整形器基于数据调度的不同应用需求而设计,而且是可以混用的。


以上关于Shaper的介绍属于学习笔记性质,期间也曾经请教过多位业界专家,并试图以较为简单的形式介绍,但是,仍然难免过于技术,因此,还有待进一步的学习,并希望大家就TSN问题留言--即便再简单的问题其实都是大家未必了解的--因为,TSN本身也是一个正在成熟的通信方案。

发布时间:2019年10月14日 9:56 人气: 审核编辑:刘婷
更多内容请访问(工控网

我有需求