【译+理解】Time sensitive network -- FQTSS

说明:入了一个新坑,是基于IEEE Std802.1Q的TSN协议蔟,之后会持续更新对整个协议架构,以及相关桥接设备,终端设备学习后的总结。

相关内容连接:
<这里会逐渐添加一些相关的资料>

资料连接:整理了较为完整的TSN协议簇各个标准,后期也会持续更新。传送门:提取码:5f0c

暂时包含如图所示的相关协议:
【译+理解】Time sensitive network -- FQTSS_第1张图片

#

对时间敏感流(FQTSS)的转发和队列增强
#
This article is based on IEEE Std802.1 Q-2018 Clause 34.

And i’ll update more details for some terms such as CBS(credit-based shaper selection) or SRP(Stream Reservation Protocol) and so on in the future.

Session 1.OverView

       本节描述一组工具,可用于支持时间敏感流的转发和排队要求。在这种情况下,将“时间敏感流”视为从单个源站发送到一个或多个目的站的业务流,其中业务对及时递送敏感,并且特别需要限制传输延迟。此类流包括视频或音频数据流,其中期望限制接收站中所需的缓冲量。

注1:这一要求的一个例子是现场表演,表演的视频图像同时投影在礼堂的屏幕上,声音和图像与表演“同步”是可取的。

为了解决这种桥中业务的需求,提供了以下方法:

       a)检测支持SRP(SRP域)的一组桥和不支持SRP的周围桥之间的边界的方法。session.2中描述了这种机制。

注2:这些函数的主要目的是支持SRP;但是,这些函数与SRP之间没有特定的相互依赖关系,因此如果实现了它们,它们同样可以用于支持其他接纳控制机制。

       b) 每个端口的一组带宽可用性参数,用于记录给定出站队列的最大可用带宽以及为该队列保留的实际带宽。session.3中描述了这些参数。

       c) 802.1Q 中8.6.8.1节定义的一种基于信用的整形器算法,用于根据给定出站队列上保留的带宽来整形基于流的流量传输。

       d) 讨论帧中携带的第2层“有效载荷”(MSDU)的大小与在特定端口上传输MSDU时将消耗的实际带宽(session.4)之间的关系。

       e) 一种用于确定与接收帧相关联的优先级映射到网桥(session.5)的传输端口上可用的业务类的算法。

       f) 作为时间敏感数据流源的终端站所需行为的定义(session.6)。

Session 2.Detection of SRP domains

       音频/视频(AV)流、流保留协议(SRP),以及支持流传输转发和整形业务,依赖于每个网桥检测其每个端口,是否位于支持特定优先级的SRP,所连接网桥区域的边缘的能力,这样,与进入SRP域的业务相关联的优先级码位值(Priority Code Point values),可以在域的边界处正确地重新生成。

       网桥通过观察SRP行为来检测SRP域的边缘。如果网桥使用特定优先级接收SRP注册,则有理由相信它们是从具有SRP能力的设备接收的;因此,SRP引擎可以发出信号,表明网桥的哪些端口位于SRP域的边界。per-port,per-SR-class,SRPdomainBoundaryPort参数确定端口是位于SRP域的边缘还是域的核心,如SRP中所定义。此参数由SRP的操作控制。

注-SRP域检测基于这样的假设,即连接到端口的设备对于给定的SR类是使用SRP的,或者对于该SR类,不使用SRP。SRP通过MSRPDUs的交换提供了一种边界检测机制;因此,域的边界随着SRP属性的声明而扩展到包括端口。域边界的位置对SRP帧的传输没有影响;相反,它反映了SRP活动发生的位置。当端口从活动拓扑中删除时,它们将从SRP域中删除。

Session 3.The bandwidth availability parameters

对于每个端口和支持基于信用的shaper算法的每个流量类别N,存在以下带宽可用性参数:

       a)802.1Q第8.6.8.2节中定义的portTransmitRate(端口传输速率);

       b)deltaBandwidth(N):附加带宽,表示为portTransmitRate的百分比,除了与高优先级队列关联的deltaBandwidth(N)值之外,还可以保留给与流量类N关联的队列使用。对于给定的流量类别N,可以保留的总带宽是流量类别N和所有更高流量类别的deltaBandwidth值之和,减去支持基于信用的shaper算法的更高流量类别保留的任何带宽(请参见session.3.1)。

       c) adminIdleSlope(N):是为了管理traffic class N对应的队列,而预留的一段带宽,其单位为bits/sec。如果SRP正在运行,则此参数无效;如果SRP未运行,则operIdleSlope(N)的值始终等于adminIdleSlope(N)的值。

       d) operIdleSlope(N):当前为与流量类别N相关联的队列保留的实际带宽(以位/秒为单位)。此值由基于信用的shaper算法(802.1Q 中8.6.8.2)用作对应队列的idleSlope。
在所有情况下,带宽都是根据通过端口传输帧时实际消耗的带宽来定义的,而不是这些帧中携带的MSDU“有效载荷”的大小。子条款session.4讨论了MSDU大小和实际带宽消耗之间的关系。

注—虽然针对特定流量类别指定了deltaBandwidth值,并表示可以为属于特定流量类别的流量保留的带宽量,但这并不意味着这些流量类别可以优先访问该部分带宽。 例如,给定流量类别的优先级,并不等同于使用该类别流内数据的重要性。 因此,预留策略可能会导致使用包含重要信息,但是本身流被分配的优先级比较低的情况。

Session 3.1 Relationships among bandwidth availability parameters

       对于支持的编号最高的流量类别,建议的deltaBandwidth(N)默认默认值为75%,对于任何编号较低的流量类别,建议的默认值为0%。 给定N的deltaBandwidth(N)以及任何更高优先级队列(N的较大值)的deltaBandwidth(N)值,定义了可为该队列和所有更高优先级队列保留的端口带宽的总百分比。

       对于最高优先级队列,这意味着operIdleSlope(N)的最大值为portTransmitRate的deltaBandwidth(N)%。 但是,如果operIdleSlope(N)实际上小于此最大值,则任何支持基于信用的整形算法的较低优先级队列都可以利用较高优先级队列未使用的可保留带宽。 因此,对于队列N-1,(operIdleSlope(N)+ operIdleSlope(N-1))的最大值为:

portTransmitRate*(deltaBandwidth(N) + deltaBandwidth(N1))%

*注1 例如,假设两个队列3和2分别支持SR类A和B的基于信用的整形器算法。 假设SR类A的deltaBandwidth(3)当前为20%,而SR类B的deltaBandwidth(2)当前为30%。 如果operIdleSlope(3)当前为portTransmitRate的10%,则队列3的最大分配的一半未使用,因此operIdleSlope(2)的最大值当前为portTransmitRate的40%。 但是,如果operIdleSlope(3)增加到有权使用的全部20%,则operIdleSlope(2)的最大值将减小为portTransmitRate的30%。

注2:选择默认值,以使deltaBandwidth(N)值的总和为75%,因此允许保留不超过端口的可用带宽的75%。 这样可以确保在使用默认设置时,至少有25%的端口带宽可用于非预留流量。 但是,由于这些默认设置可能不适用于某些情况(例如,提供非常高带宽的链接,或者具有非常低水平的非保留流量的网络),因此可以由管理人员进行修改。*

Session 3.2 Bandwidth availability parameter management

       管理人员可以使用标准中第12.20中定义的管理操作来更改deltaBandwidth(N)和adminIdleSlope(N)的值。 如果支持SRP中定义的流保留机制,则operIdleSlope(N)的值仅由SRP的操作确定。 如果不支持SRP中定义的流保留机制,则operIdleSlope(N)的值等于管理在相应adminIdleSlope(N)参数中请求的值。

端口的portTransmitRate的值可能会由于基础MAC服务的正常运行而发生变化(例如,由于IEEE 802.1AX链路聚合的运行,或者由于带宽的动态变化) 物理层技术本身的特性,例如无线局域网技术中可能出现的特性); 管理操作也可以更改端口的deltaBandwidth(N)的值。 在这两种情况下,结果都可能是以下之一:

       a)端口的operIdleSlope(N)值的总和现在可以超过该端口允许的总可预留带宽,或者给定队列的operIdleSlope(N)值现在可以超过该队列允许的可预留带宽(已定义) 在session 3.1。 因此,端口上可能存在当前活动的流,这些流不再受支持。

       b)现在给定队列可用的带宽可能意味着端口上当前可以支持某些当前处于非活动状态的流。

       c)更改后可能会看到,继续受支持的流,其延迟保证发生更改。
无论哪种情况,都需要通过管理或SRP中定义的流保留机制采取纠正措施,以将参数恢复为一组一致的值。 为了指示带宽可用性数据库中已有更改,每当更改带宽可用性参数portTransmitRate或deltaBandwidth(N)时,就会为每个Port生成一个号widthAvailabilityChanged。 SRP使用此信号来触发可在端口上保留的一组流的重新计算。

注—在重新计算流预留期间,网桥可能暂时无法兑现带宽预留承诺或转发尽力而为流量。

Session 4.Deriving actual bandwidth requirements from the size of the MSDU

       本节中定义的转发和排队机制使用的带宽参数是根据在支持通过端口提供的MAC服务的介质上传输帧时使用的实际带宽来定义的。 相反,SRP对每个流使用业务规范(TSpec),该业务规范定义了每帧的最大比特数(MaxFrameSize)、由网桥的中继功能中继的mac_service_data_unit参数以及该流的最大帧速率(MaxIntervalFrames)(以每类测量间隔的帧为单位);

注1:TSpec中的帧速率是在依赖于与流相关联的SR类的“类测量间隔”上测量的。SR等级A对应于125μs的等级测量间隔;SR等级B对应于250μs的等级测量间隔。这些等级测量间隔适用于流的源,即“talker”终端站,并且不一定适用于流通过桥接网络传输的后续阶段。

       为了计算流的带宽消耗,假定流数据基本上具有恒定的大小和传输速率,因此可以使用这些最大值直接定义假定的最大有效载荷大小和最大帧速率(以帧/秒为单位);即。,

assumedPayloadSize = MaxFrameSize

maxFrameRate = MaxIntervalFrame * (1/classMeasurmentInterval)

其中classMeasurmentInterval的单位是秒。

注2-如前所述,从TSpec参数计算带宽假定流数据基本上是恒定帧大小,因此,本节中所示的近似值是有效的。如果数据在帧大小上变化很大,那么使用这些假设计算每帧开销可能会有很大的错误。

       由此,以及从支持网桥端口的协议栈的本地知识,可以确定在发送帧时添加到每帧MSDU负载的开销。每帧开销至少有以下来源:

       a)任何VLAN标记和安全标记(请参阅IEEE Std 802.1AE),当它们通过端口协议堆栈中的各种服务接口时添加到第2层负载。

       b) 底层MAC服务添加的MAC帧(头八位字节和尾八位字节,加上满足最小帧大小限制所需的任何填充八位字节)。

       c) 任何物理层开销,如前导字符和帧间间隔。

因此,精确的每帧开销将取决于协议栈和底层MAC技术。
因此,支持给定流所需的实际带宽定义如下[使用等式中的assumedPayloadSize]:

actualBandwidth = (perFrameOverhead + assumedPayloadSize) * maxFrameRate

Session 5.Mapping priorities to traffic classes for time-sensitive streams

在支持FQTSS的网桥中,优先级到流量类的默认映射满足以下约束:

       a)与SR类相对应的优先级值,映射到支持基于信誉的shaper算法作为传输选择算法的流量类。

       b) 支持基于信用的shaper算法的流量类,比支持严格优先级(或任何其他)传输选择算法的流量类,具有更高的优先级。

       c) 至少一个业务类支持基于信用的shaper算法,至少一个业务类支持严格的优先级传输选择算法。

注1:至少有一个业务类支持严格的优先级传输选择的约束确保至少有一个业务类可以支持不受带宽预留限制的业务,例如“最大努力”业务。

表34-1显示了支持SR class a(使用优先级3)和SR class B(使用优先级2)的系统的建议的默认优先级到流量类映射。表34-2显示了仅支持SR类B(使用优先级2)的系统的通信量类映射的建议默认优先级。

       传输选择算法表(见8.6.8)的相应默认配置是,表中阴影部分的流量类配置为使用基于信用的shaper算法,其余流量类配置为使用严格优先级算法。

【译+理解】Time sensitive network -- FQTSS_第2张图片

       当前这个表34-1的理解方式是这样的,首先是我们的有一组数据流Si,Si中含有很多不同优先级的数据流(priority S0~7),当我的网桥设备为这组流Si注册了SR之后(即通过自动,或者管理员配置等方式进行告知),我的网桥设备当接收到Si流中,某个流S的数据帧之后,就会对数据帧进行一次映射(Priority --> traffic class)。映射的方式如下所述:

       我们来看第一列:当前网桥总共为一组数据流Si提供了两个traffic classes用于映射,假设我们需要对Si中优先级为2和3的数据流进行特殊处理(优先处理,或进行流控等)(如图的灰色部分),应为只有两个traffic classes可用于映射,所以我们将我们希望进行特殊处理的流映射为class 1,将剩下优先级所对应的流,映射为class 0,这样子,我们对class 0就可以采用正常的PFC(严格优先级算法)进行传输选择,而对于class 1的流,就可以用特殊方法进行处理(如CBS:基于信用度的选择传输算法)。

【译+理解】Time sensitive network -- FQTSS_第3张图片

注2:表34-1中所示的映射仅适用于两个可用流量类,将两个SR类映射到一个流量类。虽然这是一种允许的配置,但一般来说,将SR类分配给不同的流量类是可取的,并且在某些应用中,这是一项要求,如本表中针对三个或更多流量类可用的情况所做的那样。所示映射仅处理一个或两个受支持的SR类;如果支持两个以上的SR类,则可以采用类似的映射策略。

Session 6.End station behavior

       我为了使终端站成功参与对时间敏感的流的发送和接收,它们的行为必须与网桥中使用的转发和排队机制的操作兼容。 参与作为“talker”的终端站(即时间敏感流的源)的要求与适用于“listener”(即流的目标站)的要求不同。

Session 6.1 Talker behavior

       我为了使源自talker的数据流能够利用网桥中基于信用的整形器行为,talker需要使用网络中,网桥识别为与SR类相关联的优先级来专门传输流数据。对talker和到listener的路径中的网桥,也有必要具有必要的带宽共通视图,以便传输talker的数据流,并在通往listener的路径上保留该带宽。可以通过诸如SRP中定义的流保留机制或其他管理手段来满足后者的要求。
实际上,可以考虑将Talker端口以及给定优先级的排队模型看起来像图34-1。

【译+理解】Time sensitive network -- FQTSS_第4张图片

       Talker基于该流的Tspec将帧放入与单个流关联的队列中。 也就是说,在每个类别测量间隔内,它最多可以将MaxIntervalFrames数据帧放置在该流的队列中,每个数据帧的长度不超过MaxFrameSize。

       每个队列对应单独一个stream,使用基于信用度的整形算法。通过idleSlope来设置带宽,以使当前传输的流满足端口带宽的需求。同时还作为决定,当前流所使用的优先级中的数据帧传输的速率。该优先级的出站队列进而使用基于信用的整形算法,将idleSlope设置为在该传输端口上使用该优先级的所有流的idleSlope值的总和,作为确定速率的手段。 选择该流的哪些数据帧进行传输。

       Talker中的传输选择操作与桥接器中的操作相同。 从这个角度来看,可以将Talker视为单端口网桥。
对于使用SR类A或SR类B的流,要求选择任何给定流的帧以放置在其每个流队列中的速率不超过,为该流保留的带宽 SR类的类测量间隔(SR类A为125 µs,SR类B为250 µs。)对于流带宽要求和传输端口数据速率的某些组合,这可能会限制传输流数据时可使用的帧大小。

注意—观察间隔的唯一含义是它对帧大小的影响,因为整形器的行为本身与观察间隔无关。 限制观察间隔的目的是限制帧大小,因为这是帧通过音频/视频桥接(AVB)网络传输时所经历的等待时间的主要贡献。

Session 6.2 Listener behavior

       对侦听器站的主要要求是,它能够缓冲在一段时间内的数据量,这段时间量,等于在Talker和侦听器之间传输中的流数据帧可能经历的累积最大抖动。 从对时间敏感流的转发和排队要求的规范的角度来看,假定侦听器将会把,对于该流所需的缓冲量,作为实现所采用的流带宽保留机制的一部分。

你可能感兴趣的:(Time,sensitive,network)