摘要
在依据时间敏感网络(time-sensitive networking, TSN)标准估算相邻节点之间的最大传输延迟Δt时,将不可避免地引入额外的无效等待时间,这种等待时间被称为“泡沫延时”。分析了泡沫延时对增加端到端延时和降低规划成功率的负面影响,并通过细粒度地分析Δt的延时组成,首次提出Δt的精确测量方法。基于精确的Δt,消除了TSN规划时产生的泡沫延时。基于两款定制的TSN交换设备搭建了真实的测试环境,测试结果显示,泡沫延时至少占端到端延时的26.4%,并且消除泡沫延时后规划成功率提升了8.9%~ 39.1%。
Abstract
When estimating the maximum transmission delay Δt between adjacent nodes according to TSN (time-sensitive networking) standards, it was inevitable to introduce additional ineffective waiting time, which was referred to as “bubble delay”. The negative effect of bubble delay on increasing the end-to-end delay and decreasing the planning success rate was analyzed, and the precise measurement method of Δt was proposed for the first time based on analyzing the delay composition of Δt in fine granularity. Based on the exact Δt, the bubble delay caused by TSN planning was eliminated. A real test environment was built based on two customized TSN switching devices. The test results show that the bubble delay accounted for 26.4% of the end-to-end delay at least, and the planning success rate increased by 8.9% to 39.1% after eliminating the bubble delay.
时间敏感网络(time-sensitive networking,TSN)通过在传统以太网技术基础上增加时间相关功能(时间同步和时间感知整形等),使其能够继承传统以太网良好兼容性和高带宽等特点,同时保证关键流量传输的确定性和实时性[1-2],关键流量在TSN中是被调度的对象,因此也被称为被调度流量(scheduled traffic,ST)。这使TSN技术的应用场景从音视频传输和工业控制扩展至5G前传、汽车自动化和航空航天等多个领域[3]。
与软件定义网络[4](software-defined network,SDN)类似,TSN系统集成了数据平面与控制平面的组件。系统工作前,TSN规划工具(控制平面组件)采用约束求解的方式规划所有ST报文的传输路径以及在传输路径上各节点的发送时间,各TSN设备(数据平面组件)根据规划结果执行按时转发操作,进而保证ST流的确定性传输。延时约束是规划求解时必不可少的一类约束,包括流约束和流隔离约束等[5-6]。延时约束的核心输入参数是ST报文在相邻节点间传输可能经历的最大传输延时。Δt表示在相邻节点中,ST报文从上一节点开始调度输出至开始到达下一节点的输出队列中可能经历的最大延时。
TSN标准并未直接提供延时参数Δt,其提供报文长度相关延时dependentDelay(len)和报文长度无关延时independentDelay[7]。报文在设备中经历的这两种延时之和表示报文在设备内头进头出的交换延时。不同TSN设备的实现架构和端口速率等特征可能不同,使得不同设备间的延时参数相差也很大。例如,在千兆TSN设备中,dependentDelay(len)一般为十微秒级,independentDelay一般为微秒级,然而在百兆TSN设备中,dependentDelay(len)一般为百微秒级,independentDelay为十微秒级。
当相邻节点采用不同的TSN设备时,目前的TSN延时参数不能用以准确地计算Δt。TSN规划器在设置延时约束时需要根据TSN标准提供的延时参数对Δt进行预估,预估值设为Δt_Estimate。为了保证延时约束的正确性,Δt_Estimate必须不小于实际的Δt,因此Δt_Estimate的取值为相邻节点的最大交换延时之和,这导致Δt_Estimate可能远大于实际的Δt。
为了对上述现状的后果进行分析,本文提出泡沫延时概念,以表示Δt_Estimate中超过实际Δt的无效延时。泡沫延时必然造成ST报文在交换节点中无效的等待延时,进而导致其传输延时急剧增加,增加的端到端延时是传输路径中各相邻节点间的泡沫延时之和。此外,泡沫延时使ST报文可分配的发送时间解空间缩小,进而降低规划成功率,导致规划算法的计算延时增加(具体分析见2.2节)。由于部分TSN应用对ST报文端到端延时和规划算法的计算延时具有苛刻要求(例如汽车中的动力总成和底盘控制要求ST报文的传输延时保持在10 μs以内[8],而且TSN系统中的虚拟机迁移要求规划工具进行高频的规划更新,为了提升系统的工作效率,规划算法的计算延时需要尽可能低[9]),因此消除泡沫延时以降低端到端延时和降低规划算法的计算延时成为目前亟待解决的问题。
为了消除泡沫延时,本文细粒度地分析Δt的延时组成。通过分析得出,Δt包括相邻节点中上游节点的最大输出延时egressDelayMax,下游节点的最大输入延时ingressDelayMax,相邻节点间的链路传播延时和时钟偏差最大值δ。与TSN标准提供的延时参数类似, ingressDelayMax和egressDelayMax都由报文长度相关延时的最大值和报文长度无关延时的最大值组成。
为了获取精确的Δt值,本文提出了泡沫释放方法(bubble release method,BRM)。该方法首先通过精确地测量Δt的各组成延时,进而计算出准确的Δt。基于准确的Δt,该方法进一步将有泡沫延时约束优化成无泡沫延时约束,以消除泡沫延时带来的负面影响。
为了验证BRM的有效性,本文基于OpenTSN开源项目[10]定制了两款TSN交换设备,并搭配TSN测试仪(T200)搭建了真实的测试环境。在该环境中,本文首先通过BRM获取相邻节点间的精确Δt值,而后通过控制变量法对延时约束进行验证。
1 背景知识
1.1 TSN基本原理
TSN技术的基本功能包括时间同步和时间感知整形。其中时间同步功能用以提供全局统一的时间观念。其功能原理为主从式时钟同步,即主时钟将本地时间分发给所有从时钟,从时钟根据主时钟分发的时间调整本地时钟,进而实现主从时钟的一致性[11]。
在TSN中各节点时间同步的前提下,时间感知整形功能[12]保证ST报文传输延时的确定性和实时性。该机制需要数据平面中TSN设备和控制平面中规划器协同实现。其中TSN设备在每个输出队列后附上一个门控(类似于开关)。当门控状态为开,其对应队列中的数据允许被调度输出。反之,则不允许。每个输出端口中所有输出队列的门控状态都记录在对应的门控列表(gate control lists,GCL)中,GCL内容由TSN规划器统一计算。
如图1所示,时间感知整形机制的工作流程主要分为以下四步。第一步,收集场景特征参数,如图1(a)所示。TSN规划器收集ST流特征(包括报文发送周期、报文长度、传输延时要求等)、设备特征(包括端口速率、设备延时参数等)和网络特征(网络拓扑等)。第二步,设置规划约束,如图1(b)所示。TSN规划器根据收集的特征对TSN系统进行建模,并设置与场景特征相适配的约束(例如延时约束),以保证规划结果满足目标应用的所有要求。第三步,计算发送时间窗口,如图1(c)所示。TSN规划器通过约束求解的方式计算满足所有约束时,每个ST报文在传输路径中的各节点输出队列的发送时间。发送时间一般以窗口的形式表示,包括发送开始时间和发送结束时间。第四步,生成GCL,如图1(d)所示。TSN规划器将ST报文的规划发送时间转换成每个输出端口的GCL。转换规则为当有ST报文规划传输时,对应队列的门控状态为开,其他时间该队列的门控状态为关。例如,根据图1(c)可知,ST1报文在S1节点的Q1队列发送时间窗口为[t0,t1],因此S1节点的Q1队列在时间点t0时开门控,在时间点t1时关门控,如图1(d)所示。

图1时间感知整形机制工作流程
Fig.1Workflow of time-aware shaper
1.2 延时约束
为了保证规划的发送时间与实际的发送时间一致,进而保证ST流的传输确定性和实时性,TSN规划器计算发送时间时需要设置一系列与场景特征相适配的规划约束,其中延时约束是必不可少的一类约束。延时约束指约束函数中将Δt作为变量的约束,例如参考文献[5-6]规划算法中提出的流约束和流隔离约束。
Δt定义:在相邻节点间传输时,报文从上游节点的输出队列中开始调度输出至在下游节点输出队列中就绪所可能经历的最大延时,如图2(a)所示。就绪状态指ST报文可立即从输出队列中被调度输出。
以延时约束中典型的流约束为例。流约束保证ST报文在任意节点的输出队列就绪后才允许被调度输出,如图2(b)所示。以ST1在相邻节点S1和S2间传输为例,流约束的表达式为t2-t1≥Δt,其中t1为ST1在上游节点规划的发送结束时刻, t2为ST1在下游节点规划的开始发送时刻。流约束可保证ST报文在上游节点的发送窗口为[t0,t1]时,ST报文在下游节点的输出队列中就绪的时刻必然早于t2,使ST报文在下游节点的实际开始发送时间也为t2,进而实现规划与实际发送时间的一致性。

图2Δt和流约束示意
Fig.2Δt and flow constrain
1.3 TSN标准中的延时参数
TSN标准并未直接提供Δt,其提供报文长度相关延时dependentDelay和报文长度无关延时independentDelay。这两种延时之和为设备的交换延时switchDelay(文中所有参数含义如表1所示)。
表1参数列表
Tab.1 Parameter list

报文长度相关延时(dependentDelay)定义:将交换延时划分成每个模块的处理延时。若计算报文在某个模块的处理延时需要将报文长度作为输入参数,则该模块的处理延时属于dependentDelay,例如存储和交换报文所需的延时。目前TSN设备只提供所有模块中报文长度相关延时之和dependentDelay。该延时参数具有最大值dependentDelayMax和最小值dependentDelayMin。
报文长度无关延时(independentDelay)定义:将交换延时划分成每个模块的处理延时。若报文在某个模块的处理延时与报文长度无关,则该模块的处理延时属于independentDelay,例如处理报文首部所需的延时。目前TSN设备只提供所有模块中报文长度无关延时之和independentDelay。该参数也包括最大值independentDelayMax和最小值independentDelayMin。
2 动机
2.1 泡沫延时的产生
TSN标准提供的报文长度相关延时和报文长度无关延时只能累加成设备的交换延时。当上下游节点使用不同TSN设备时, Δt不等于任一节点的报文长度相关延时、报文长度无关延时、交换延时或任意两种延时之和。TSN标准中的延时参数如图3所示,Δt包含时间段5的部分延时、时间段6、时间段7和时间段8的部分延时,而基于标准研发的TSN设备仅提供图3方框内的4个延时参数,无论方框内的延时参数怎么组合都不能构成精确的Δt。因此基于TSN标准中提供的延时参数,无法精确计算Δt,需要对Δt进行估算(预估值设为Δt_Estimate),并将图2(b)所示流约束设置成t2-t1≥Δt_Estimate。

图3TSN标准中的延时参数
Fig.3Delay parameters in TSN standard
若Δt_Estimate小于实际的Δt,则可能发生规划发送时间与实际发送时间不一致的现象,造成ST帧传输延时不确定现象。具体以图4为例(传输128 B的ST报文时,实际Δt的取值为6 μs)。在该示例中,设Δt_Estimate为2 μs,满足Δt_Estimate<Δt,设ST1报文在S1节点的发送时间设为[0,1]μs,在S2节点的发送时间设为[4,5]μs(4-1>Δt_Estimate,满足流约束)。此时当ST报文在S1节点按照规划的时间发送时,ST可能在6 μs(=0+Δt)才开始到达S2节点的输出队列,使得ST报文在S2节点的实际发送时间大于6 μs,进而导致规划的发送时间与实际的发送时间不一致。由于ST报文未按照规划的发送时间发送,则可能占用其他ST报文的时间资源,产生崩溃式连锁反应,造成ST报文传输延时不确定现象。这对于任一TSN应用都是难以接受的,因此为了保证流约束的正确性, Δt_Estimate取值必须恒大于实际的Δt。

图4相邻节点的延时参数
Fig.4Delay parameters of adjacent nodes
为了分析上述现象,本文提出泡沫延时概念。泡沫延时(bubbleDelay):因规划不当导致ST报文在下游节点中的无效等待延时。其表达式为bubbleDelay=Δt_Estimate-Δt。
根据TSN标准提供的延时参数, Δt_Estimate的取值只能为上游节点的最大交换延时,或下游节点最大交换延时,或上下游节点的最大交换延时之和。为了保证Δt_Estimate大于Δt恒成立,Δt_Estimate的取值必为上下游节点的最大交换延时之和。以图4为例, Δt_Estimate的取值为10 μs(=5+1+4),此时泡沫延时为4 μs(=10-6)。
2.2 泡沫延时的负面影响
泡沫延时的负面影响主要包括增加端到端延时和降低规划解空间。
增加端到端延时。泡沫延时越大,ST报文在下游节点的无效等待延时越长,进而导致端到端延时也相应地增加,额外增加的部分是传输路径中各相邻节点间的泡沫延时之和。当传输路径中各节点都为千兆TSN设备时,泡沫延时之和容易达到数十微秒或百微秒级,这对ST传输延时具有苛刻要求的TSN应用是难以接受的[3]。具体以汽车中底盘控制场景为例,其拓扑可简化成图4所示的线性拓扑。底盘控制要求ST报文的传输延时(报文开始进入A设备至从B设备输出的所需时间)保持在10 μs以内[3]。当规划时采用有泡沫延时约束时,ST报文从A设备缓冲区开始发出至该报文从B设备缓冲区开始发出的延时至少为10 μs(即Δt_Estimate值),加上报文在A设备的输入延时和B设备的输出延时,必然导致无法找到可行解。因此针对该类场景需要消除延时约束中的泡沫延时,以实现无等待传输,进而获取可行解。
降低规划解空间。解空间为满足所有规划约束的发送时间集合的个数,其中每个集合都记录了所有ST报文在传输路径中各节点的规划发送时间窗口。另一个相对的概念为搜索空间。搜索空间为发送时间集合的个数,包括满足或不满足所有规划约束的解。解空间/搜索空间为搜索一次获取可行解的概率。搜索空间不变时,解空间越小,每次搜索获取可行解的概率越小,相应地所需的搜索次数就越多,这无疑会增加计算可行解所需的时间,导致难以满足部分应用对规划延时的要求。
解空间的大小与规划约束密切相关。设ST流的报文在传输路径中第i个节点的发送时间为[t2i,t2i+1],其中i≥0(当i=0时,表示源节点)。流传输约束如式(1)所示,Δti表示第i、i-1节点间的Δt_Estimate。当流传输约束满足式(2)所示的关系时,可获取ST流的最小端到端延时。
(1)
(2)
而且为了保证ST流的实时性要求,应用要求ST流的端到端延时具有上限,上限值设为deadline,因此需要设置deadline约束,其表达式如式(3)所示,其中第j个节点为该ST流的目的节点。
(3)
根据式(2)可获取最小端到端延时e2eDelay(min),其表达式如式(4)所示。其中len为报文长度,Rb为链路传输速率,len/Rb等于t2j+1-t2i,即报文发送窗口尺寸。
(4)
结合式(3)和式(4),当解空间大于0时,可知式(5)所示表达式恒成立。
(5)
因此各节点累计的等待延时小于deadline与e2eDelay(min)的差值,即满足式(6)所示表达式时,规划的发送时间集合为流约束可行解。
(6)
进而可将求解空间大小问题转换成典型的排列组合问题,即将小于个相同的小球放入编号不同的j个盒子里。采用隔板法可获取解空间的大小spaceSize。
(7)
根据解空间表达式可知,当Δti值越大时,解空间越小,进而导致求可行解所需的计算延时增加。
综上所述,为了降低端到端延时且增加解空间,缩小或消除泡沫延时成为目前亟待解决的关键问题。
3 Δt延时的精确组成
缩小或消除泡沫延时的关键是精确获取Δt。为了精确获取Δt,首先对Δt延时组成进行细粒度分析,如图5所示。Δt延时组成包括上游节点的输出延时最大值,链路传播延时,时钟偏差最大值,和下游节点的输入延时最大值。

图5Δt延时组成
Fig.5Δt delay composition
Δt中的输入、输出延时基于典型的TSN设备实现架构进行描述,如图6所示。ST报文在典型的TSN设备内首先经输入流水线处理,然后存储在共享缓冲中,同时报文摘要(携带报文关键信息)缓存在相应的输出队列中。当ST报文规划的发送时间到达时,输出流水线中的调度器将对应的ST报文摘要取出,而后根据摘要携带的地址信息从报文共享缓存中读取相应的报文并输出。
输入延时最大值ingressDelayMax定义:报文的开始进入设备至对应报文摘要到达输出队列所需的最大延时,即报文由图6中a点传输至b点可能经历的最大延时。ingressDelayMax的组成部分包括报文长度相关延时和报文长度无关延时。其中报文长度相关延时使用函数式F1(len)表示,该函数式以报文长度len为变量,表示不同长度的报文在输入过程中经历的最大报文长度相关延时不同。报文长度无关延时使用常量C1表示。

图6典型的TSN实现架构
Fig.6Typical TSN implementation architecture
输出延时最大值egressDelayMax定义:报文摘要开始被调度至对应报文从链路输出时所需的最大延时,即报文由图6中c点传输至d点可能经历的最大延时。egressDelayMax的组成部分也包括报文长度相关延时和报文长度无关延时。与输入延时最大值相似,输出延时最大值中报文长度相关延时使用函数式F2(len)表示,报文长度无关延时使用常量C2表示。
链路传播延时linkDelay定义:报文开始从上游节点输出到链路至该报文开始输入至下游节点所需的最大延时,可通过链路长度除以链路传播速率计算得出,链路传播速率为常量。
时钟偏差最大值δ定义:上下游节点的时钟差值,其值与上下游节点的同步频率和晶振品质等因素相关。为了Δt的取值恒大于实际的Δt值,在设置Δt时需要考虑最坏情况下的时钟偏差。并且为了简化计算,时钟偏差一般设置为TSN域中任意两节点最大的时钟差值。例如,最大的主从时钟偏差为100 ns,最小的主从时钟偏差为-100 ns,则时钟偏差设置为200 ns。
4 泡沫释放方法
基于Δt的精确组成,提出BRM。该方法对设备中组成Δt的各延时参数组成进行精确测量,具体步骤如下。
步骤1:测量时钟偏差最大值δ。首先在TSN中设定质量最好的时钟为主时钟(可通过最佳主时钟算法选举产生或静态配置[13]),其他时钟设定为从时钟。而后收集一段长时间(一般以d为时间单位)内所有时钟的主从时钟差值(从时钟值大于主时钟值时,差值为正,否则为负)。最后将收集到的时钟差值的最大值减去最小值,进而计算出δ。
步骤2:测量链路传播延时linkDelay。该步可直接测量链路长度,将链路长度除以链路传播速率(3.0×108 m/s),进而计算出链路传播延时。当链路长度稍短时, linkDelay可忽略。
步骤3:测量输出延时最大值egressDelayMax。该步要求测试仪与被测设备进行时钟同步,并且测试仪支持记录ST报文的发送与接收时间戳,具体操作如算法1(伪代码)所示。首先将被测设备与测试仪直连,并且构造一条ST流,剩余带宽构造满负荷的背景流量。而后配置ST报文在被测设备的发送时间窗口[tm,tm+1],并且收集ST报文经被测设备到达测试仪的接收时间戳tr,则tr-tm为粗略的输出延时。为了获取被测设备更精确的输出延时,还需减去被测设备至测试仪的单程链路传播延时,和报文开始进入测试仪至记录接收时间戳所经历的延时(本文称为接收记录延时rxRecordDelay,由测试仪厂家提供)。基于每个ST报文的接收时间戳都能计算出对应的输出延时,然后对长时间收集的所有输出延时进行比较,以获取输出延时最大值egressDelayMax。最后,不断改变ST流的报文长度并通过上述步骤收集egressDelayMax,通过分析可获取输出延时与报文长度的函数式egressDelayMax=F1(len)+C1。
算法1 egressDelayMax测量
Alg.1 Measuring egressDelayMax

步骤4:测量输入延时最大值ingressDelayMax。输入延时等于交换延时(未在输出队列中排队)减去对应输出延时的最大值。具体步骤如算法2所示。交换延时的测量操作与输出延时类似:首先将被测设备与测试仪直连,并且构造一条ST流,剩余带宽构造满负荷的背景流量。而后通过设置门控使测试仪发出的ST报文到达被测设备的输出队列后立即转发输出给测试仪。测试仪收集ST报文的发送和接收时间戳。接收时间戳与发送时间戳的差值为粗略的交换延时。为了更精确地获取被测设备的交换延时,还需减去测试仪的回环延时loopD(当ST报文从测试仪输出后直接从测试仪的另一个接口输入时,ST报文的接收时间戳减去发送时间戳的差值为回环延时)。然后将获取的交换延时减去当前的输出延时,可计算得出输入延时。每个ST报文的时间戳都能测出对应的输入延时,再对长时间收集的所有输入延时进行比较,以获取被测设备的输入延时最大值ingressDelayMax。最后不断改变报文长度并通过上述方法收集输入延时,进而可获取输入延时与报文长度的关系式ingressDealyMax=F2(len)+C2。
算法2 ingressDelayMax测量
Alg.2 Measuring ingressDelayMax

步骤5:设置无泡沫延时约束。基于上述延时可计算出精确的Δt,进而可将现有延时约束中的Δt_Estimate替换成精确的Δt。具体以流约束为例,可将有泡沫流约束优化成式(8)所示的无泡沫流约束。使用无泡沫延时约束替换有泡沫延时约束是优化现有TSN规划算法的思路。该思路对于所有TSN规划算法都是通用的,与规划算法所采用的具体策略无关,因此使用已有的TSN规划算法[5,14-15]验证优化思路的正确性。
(8)
5 评估
为了对BRM的有效性进行测试,基于OpenTSN开源项目在FPGA平台上实现了两款TSN交换设备,并搭建了真实的TSN环境。其中一款交换设备为交换机TSw1,该交换机基于FPGA实现,面向低功耗与低延时的场景,例如工业互联网。另一款交换设备为交换机TSw2该交换机面向TSN应用的高可靠性需求,在TSw1的输出逻辑中增加了完整性校验功能以监测TSN交换逻辑是否产生不可预测性的错误。
5.1 实验一:Δt的组成延时测量
为了设置无泡沫延时约束,首先测量组成Δt的延时。由于组成Δt的延时参数是反映设备能力的参数,其值与网络拓扑的规模和形状无关,可对被测设备进行离线测量(即测量拓扑和设备部署拓扑无须一致)。设置如图7所示的测量拓扑。在该拓扑中,T200测试仪支持时钟同步,并且支持给发送和接收的报文记录时间戳,PC机用于产生满负荷的尽力而为(best-effort,BE)背景流。由于实验采用的网络长度为20 cm,按照步骤2得出的linkDelay为0.66 ns。由于该值太小,本实验忽略linkDelay。

图7实验一拓扑
Fig.7Topology of experiment 1
时钟偏差最大值δ测量。由于时间同步是TSN技术的基础,本实验首先对TSw1和TSw2的δ进行测试。在该时钟同步测试实验中,TSw1(左)为主时钟(授时),TSw2和TSw1(右)为从时钟(对时),同步周期为100 ms(即每隔100 ms执行一次同步操作)。时钟同步结果如图8所示,TSw2与主时钟的时钟偏差始终保持在0~42 ns,TSw1(右)与主时钟的同步偏差保持在-48~0 ns,可知本实验中δ为90 ns。

图8时钟同步结果
Fig.8Time synchronization result
输出延时egressDelayMax测量。在测试被测设备的输出延时时,T200测试仪发送一条报文长度为64 B的ST流,3个PC端发送动态的BE流。根据BRM的步骤3测量被测设备的输出延时,TSw1的输出延时如图9蓝色三角形所示, egressDelayMax为1 522 ns。TSw2的输出延时如图10蓝色三角形所示, egressDelayMax为2 054 ns。
输入延时ingressDelayMax测量。根据BRM的步骤4测量输入延时,TSw1和TSw2的头进头出交换延时如图9和图10红色五角星所示,交换延时的最大值分别为3 372 ns和3 904 ns。输入延时分别如图9和图10绿色圆圈所示,其ingressDelayMax相同,都为1 897 ns。

图9TSw1节点的输入、输出、交换延时
Fig.9Ingress, egress and forwarding delay of TSw1
在输入与输出延时测量过程中,3台PC端始终往ST流的传输路径中增加动态的BE流(流量速率和报文长度保持变化),然而测出的输入与输出延时基本保持稳定,可知BE流并未对ST流的输入与输出延时产生干扰。

图10TSw2节点的输入、输出、交换延时
Fig.10Ingress, egress and forwarding delay of TSw2
为了进一步获取TSN设备输入、输出延时最大值中的报文长度相关延时和报文长度无关延时,本实验改变ST报文的长度。ST报文在TSw1和TSw2的egressDelayMax、ingressDelayMax分别如图11和12所示。根据图11、图12结果可分析出,TSw1的egressDelayMax、ingressDelayMax与报文长度无关。TSw2的ingressDelayMax与报文长度无关, egressDelayMax中报文长度无关延时最大值为1 542 ns(=2 054 ns-64 B/1 Gbit·s-1),报文长度相关延时的表达式为len/Rb,其中Rb为1 Gbit·s-1,即经历了一次存储交换过程,与实际相符。

图11TSw1的输入、输出延时最大值
Fig.11Maximum ingress and egress delay of TSw1
5.2 实验二:无泡沫延时约束的效果验证
为了证实前文分析结果与BRM的正确性,基于自研的两款TSN设备对图4所示的示例进行复现。该实验拓扑如图13所示,含一组异构的相邻节点,可作为绝大多数真实TSN场景拓扑的子集。因此该实验结果可反映真实场景(5G、汽车和航空航天等网络)中异构相邻节点中的境况。

图12TSw2的输入、输出延时最大值
Fig.12Maximum ingress and egress delay of TSw2

图13实验二拓扑
Fig.13Topology of experiment 2
由于本实验的链路长度很短,链路传播延时可忽略(与实验一相同)。TSw1节点与TSw2节点间的Δt包括TSw1节点的最大输出延时(1.522 μs)、TSw2节点的最大输入延时(1.897 μs)和时钟偏差δ(0.090 μs)。为了降低计算复杂性,本实验将Δt设置为「1.522+1.897+0.090 =「3.509 =4 μs。由于分别测量Δt的组成延时属于悲观的测量方法,且纯硬件的测量方式可使精度保持在硬件时钟级(8 ns),结余的0.491 μs(=4 μs-3.509 μs)足够容忍时钟级测量误差。
当求解发送时间窗口时,沿用具有代表性的规划算法[5]。该算法是TSN技术龙头企业(TTTech公司)在2018年于顶级会议论文中提出,并且得到了实际运用,因此该算法思想(如网络模型和约束形式化表达)在学术界和工业界都具有代表性。对该算法进行复现,并开源了复现代码,算法源码见https://gitee.com/opentsn/open-planner。
设ST报文在TSw1节点和TSw2节点的规划发送时间窗口分别为[t1,t2]和[t3,t4]。无泡沫延时约束(流约束)设置为t2i-t2i-1=4 μs。然而有泡沫延时约束(流约束)将Δt设置为相邻节点的交换延时最大值,即 t2i-t2i-1=1.897+1.522+1.897+1.542+len/Rb=「6.858+len/Rb μs。
实验结果指出泡沫延时大小与ST流数量和带宽,BE流数量、带宽和报文长度都无关,仅与ST1的报文长度相关。该发现与实验一的结论是一致的。改变ST报文长度,ST报文在不同延时约束下,端到端延时如图14所示,其收益如表2所示。相比于有泡沫延时约束,当ST报文长度不同时,无泡沫延时约束可降低26.4%~30.8%的端到端延时。

图14当ST报文长度不同时,有和无泡沫延时约束下的最小端到端延时
Fig.14Minimum end-to-end delay under foam delay constraints with and without different ST frame size
表2无泡沫延时约束的端到端延时收益
Tab.2 End-to-end delay benefit without bubble delay constraint

当ST应用要求的deadline为典型的100 μs时(智能驾驶辅助系统中,ST报文理想的端到端延时),根据式(7)所示的解空间表达式可计算出不同延时约束下的解空间。无泡沫延时约束的解空间收益如表3所示,当ST报文长度不同时,相比于有泡沫延时约束,无泡沫延时约束增加8.9%~39.1%的解空间。
表3无泡沫延时约束的解空间收益
Tab.3 Solution space benefit without bubble delay constraint

6 结论
本文针对现有延时约束中的缺陷,首次提出泡沫延时概念,并基于泡沫延时对该缺陷进行分析,明确指出基于TSN标准提供的延时参数设置延时约束中的关键参数Δt会额外引入泡沫延时,导致ST报文的端到端延时增加且规划解空间缩小。为了弥补该缺陷,对Δt的延时组成进行了细粒度分析,并且提出了BRM以指导用户精确地测量Δt与设置无泡沫延时约束。在真实的测试环境中证实了BRM的有效性。具体结果为无泡沫延时约束可降低26.4%~30.8%的端到端延时,并且增加8.9%~39.1%的规划解空间。
致谢
感谢华芯通科技有限公司提供的TSN测试仪,以及华芯通唐路、陈波提供的技术支持。