APP下载

结合SDN 控制器的TSN 周期性带宽预留值计算方法

2021-11-14苏建忠张华宇朱海龙

通信学报 2021年10期
关键词:时隙周期性数据流

苏建忠,张华宇,朱海龙,2

(1.网络通信与安全紫金山实验室,江苏 南京 211111;2.北京邮电大学信息与通信工程学院,北京 100876)

1 引言

在传统以太网中,尽力而为的体系架构已经运行多年,短视频等移动网络数据流量的激烈增长,将带来大量的瞬时拥堵和数据时延增大。同时,更多的精细类网络应用,例如车载网络、工业控制命令、5G 远程操作等[1-2],需要更低的端到端时延以及极低的时延抖动,但是传统网络目前无法提供保障。目前,由电气和电子工程师协会和互联网工程任务组提出的确定性网络技术[3]成为当前较成熟的实现局部确定性、保障时延和带宽的网络技术,通过一系列网络协议(IEEE 802.1AS 时钟同步[4]、IEEE 802.1QBV 流量调度[5]、IEEE 802.1Qcc 资源配置管理[6]等)实现确定时延,其中IEEE 802.1Qcc 资源配置管理是整合TSN,包括带宽预留规划,通过集中式控制规划与调度网络流量以满足确定性时延和抖动。同样,SDN 架构将控制面与数据面分离[7-9],通过软件灵活、合理地解决不同硬件的部署问题,提高网络利用率,因此引入基于SDN 的TSN 架构,通过SDN 集中式控制规划和调度流量,能够有效地支持确定性时延和抖动。

当前TSN 协议中与带宽预留相关的主要是IEEE 802.1Qat 以及IEEE Qcc 协议,IEEE 802.1Qat包含带宽预留协商确定过程,阐述从发出预留消息到接收者的详细过程。同时在IEEE 802.1Qat(一种分布式方式的网络需求与资源分配机制)基础之上,IEEE 802.1Qcc 支持集中式的注册与流预留服务,称为SRP 增强模式。在这种模式下,系统通过降低预留消息的大小与频率(放宽计时器),以便在链路状态和预留变更时触发更新。IEEE 802.1Qcc 提供了一套工具,用于全局管理和控制网络,通过网络集中控制器(CNC,central network controller)等交互以提供运行资源的预留、调度以及其他类型的远程管理协议,如NETCONF 或 RESTCONF,同时与IETF YANG/NETCONF 数据建模语言兼容。而带宽预留技术在无线通信领域已经有所应用,其根据接入QoS 需求可以实现时分多址等技术。当前研究内容更多关注带宽调度,包括路径规划、最大化总带宽、最早完成时间和最短持续时间调度等研究方向[10-13]。

但是目前协议标准以及研究论文中没有明确指出带宽预留值计算方法,无法给出需要预留的准确带宽值,多数采用经验值,同时预留的带宽值始终占用或持续一段时间占用,在周期性网络中可能导致此部分的带宽通道浪费,而且复杂的预留确定过程在确定性网络中实时性无法得到保障。

在此基础上,本文提出结合SDN 控制器在控制面的整体流量以及转发路径的规划能力[14],通过控制器下发更新配置实现动态预留[15]和按时隙流预留的方式,在控制器端配置终端设备的流量参数(包括流量发送周期大小等流量模型参数),控制器整体调度规划网络数据流量转发路径等,结合高精度时钟同步,计算出高精度周期性分时隙预留带宽预留值,再通过控制器下发至交换设备执行。首先通过分解目标时延到每一跳链路中,根据时延计算数据流通过链路需要的带宽值;然后结合相应时隙内其他预留值计算总预留值确认是否预留成功,保障目标数据流的传输带宽,同时提高带宽的利用率;最后在非使用时隙将带宽留给其他数据流使用,保障BE 流的传输。本文方法首先保障低时延、可控抖动,然后及时释放带宽提升带宽利用率,同时结合IEEE 802.1Qcc 网络配置模式,满足终端节点和数据流量的不同变化。

2 建立网络流量模型

本文通过周期性预留带宽,同时结合控制器来解决TSN 协议缺少带宽预留值计算的问题,通过对链路规划计算在指定时隙内预留特定的带宽值,在保障传输时延的基础上减小抖动,同时可以有效地提高带宽利用率。该方法首先确定预留执行周期,然后在周期内计算传输路径中每一跳需要的传输时隙以及带宽值,确定该时隙内是否有足够的带宽值可以预留,再确定传输路径中每一跳的预留时隙以及预留值,最后得到整个周期内的预留方案。TSN交换设备周期性执行配置方案。

针对不同网络拓扑,本文给出2 种时延分配。1) 根据计算等式,本文将总的要求时延按照链路带宽比平均分配到每一跳链路,确定每一跳的时延后即可计算出对应的带宽预留值;2) 结合可满足性模理论(SMT,satisfy module theory)(SMT通过建立约束条件得到一系列一阶逻辑等式,在满足等式的基础上得到一组未知数的解,可通过现有求解器求出)问题原理,建立约束条件模型,利用Z3 求解器求得一组合适解。具体的求解场景见第3 节。

2.1 均分

带宽预留值的计算需要先确定每一跳链路的时延,因此本节将数据流的要求时延分配到每一跳中,采用的分配策略为除去第一跳所耗时延外,其他跳占用时延根据其链路带宽与传输路径链路带宽之和的占比来分配。

网络拓扑示例如图1 所示,包含6 个TSN 节点,节点a与交换机sw1链路带宽为100 Mbit/s,链路传输时延为30 ns;其他链路带宽为1 Gbit/s,链路传输时延为10 ns;设备处理时延为100 ns;设备TSN 拓扑中源节点a、目的节点c的流量发出时间为0,大小为1 200 B,周期为310 μs,时延要求为160 μs;源节点b、目的节点d的流量发出时间为0,大小为2 000 B,周期为310 μs,时延要求为200 μs。

图1 网络拓扑示例

根据模型以及路径规划,a到c的流量中,链路[a,sw1]带宽全占用,需要耗时98 350 ns(1 229 B÷100 Mbit·s-1+30 ns),去除设备sw1与sw2耗时200 ns之后剩余时延61 450 ns,链路[sw1,sw2]和链路[sw2,c]带宽值相等且总带宽值为 2 Gbit/s,因此链路[sw1,sw2]与链路[sw2,c]分配时延均为30 725 ns。

同理,可求得b到d流量的时延分配。

2.2 SMT 建模

本节结合SMT 问题原理[16],建立约束条件模型,利用Z3 求解器[17]求得时延分配以及带宽预留值的一组合适解,为了建立整体约束条件,首先介绍网络拓扑中基础变量以及下文需要使用的其他变量的定义,如表1 所示。

表1 系统参数或公式

结合SMT 问题原理,本文算法将通过用户约束、链路约束、以太网基础约束和算法约束4 个方面建立约束条件。

1) 用户约束。用户约束主要包括数据流开始发送时间、数据大小、数据流周期、数据流总体要求时延等约束。数据报文在网络中的总体要求时延分为链路信道时延、设备处理时延和数据传输时延,计算式为

2) 链路约束。相同时隙内所有预留值之和小于链路总带宽值,单个预留值小于链路带宽的50%(经验值,避免不同跳之间预留带宽值相差过大),保证带宽预留值不超出真实物理带宽值,计算式为

3) 以太网基础约束。该约束遵循以太网报文传输基本准则,包括3 个方面:流量整体时延为最后一位数据传完的时延;后帧的发送需要在前一帧结束后;除第一帧报文不需要等待外,其他报文都需要等待前一帧传输结束。最后一帧时延为数据流的整体时延,即;发送设备的后一帧数据的发出时间等于前一帧数据的结束时间,即;第一帧传输时不需要等待,因此后一跳的发出时间等于前一跳的结束时间+设备时延,即

4) 算法约束。传输过程中单帧与多帧存在差异,主要表现为多帧中后帧存在排队等待情况,因此需要进行差异对待。满足3.1 节和3.2 节计算方法,即当γ=1时,存在约束式

当γ>1时,存在以下3 种约束情况,满足一种即可。

通过建立以上约束条件模型,再通过Z3 求解器计算,即可求解出每一跳链路的预留带宽值以及传输时延,在此基础上也可得出对应链路的占用时隙,即可得到完整的带宽预留配置文件。

3 几种典型场景分析

TSN 带宽预留主要分为2 种类型流量:单帧流量,即数据流小于1 500 B 的流量(MTU 大小);多帧流量,即数据流大于1 500 B 需要切分为多帧的流。本节针对以上2 种类型流量的带宽预留值计算方法进行阐述。

3.1 单帧预留

单帧数据流量带宽预留将数据流映射到对应的周期时间轴中,数据帧在每一跳的传输时延确定之后就能确定其所需的预留带宽值以及对应预留时隙,假设帧到达当前链路[Va,Vb]时间为t0时刻,此时可推出帧在下一跳链路的发出时间为,依次类推,可以计算出数据帧在每一跳链路所耗费的时间,同时满足传输耗时等式和时延要求等式

其中,μ和ω为未知解,其他为已知值。因此只需要求解出其中一个,另一个值即可得出,同时还需要满足对应时隙的预留值之和小于对应链路总带宽值,即。通过以上求解可以得出,链路[Va,Vb]在时隙内需要预留的带宽值为

3.2 多帧预留

不同于单帧的情况,多帧带宽预留主要面临前后带宽不一致问题(多帧:当需要发生的数据流大于MTU 时,需要将数据流切分为多个小于MTU的数据帧发送,并且除最后一帧外按最大帧切分,其发送开始时间相同),可分为两类:1)假设当前预留值大于或等于前一跳,此时当前交换机不会出现数据包排队等待情况,即前一跳发完一帧,当前马上可以转发并且在下一帧到来之前发完,此时要求的时延就是最后一帧数据流产生的时延;2)假设当前预留值比前一跳小,此时当前交换机出现数据包排队等待情况,即当前交换机数据帧转发还未完成时,下一帧数据包已经到来,这样最后一帧数据包到来之后还需要产生等待前一跳时延,此时要求的时延为最后一帧的发送时延加上等待时延。

为了解决上述两类问题,本文提出以下3 种假设。

1)假设预留带宽小于前一跳带宽值,此时链路的时延为整体数据在当前链路[Va,Vb]的传输时延减去最后一帧的到达时间,即

靳春利[注]靳春利,耿村民间故事讲演协会会长,耿村村民,耿村故事“报矿人”,采访时间:2017年10月26日17:00,地点:耿村村口。:在故事普查以前,我们耿村就说是“讲笑话”,不说讲故事,讲故事是他们专家说的,后来(我们)就对别人说“讲故事”,现在咱自己家里还说是“讲笑话”。在耿村这边这样说,到藁城靠外那片儿就说是“讲瞎话”。

2) 假设预留带宽大于或等于前一跳[Va,Vb]带宽值,同时小于前一跳带宽值的1529 B/δ倍(1 529 B为传输的最大帧长度),此时最后一帧前面的数据包传输不产生等待时延,只有最后一帧数据包需要等待,因此要求当前链路[Vb,Vc]产生的时延等于最后一帧数据包的等待时延加上最后一帧数据包的传输时延,即

3) 假设预留带宽值大于或等于前一跳带宽值的1529 B/δ倍,此种情况最简单,上一跳转发的数据包会被及时转发完,数据包的传输不产生等待时延,因此当前链路[Va,Vb]要求时延即为最后一帧的传输时延,即

通过以上3 种方式,可分别计算出对应链路的预留带宽值。首先与各自的假设条件对比,符合假设条件的预留值为合适的预留值;然后根据预留值计算出对应链路的通过时隙;最后校验每一跳链路对应时隙的总预留值是否小于总带宽值。由于在计算过程中存在精度取舍问题,导致多帧预留后的计算时延与要求时延会出现偏差,使最后结果小于或等于要求时延。

3.3 多流预留

当需要多条流预留时,需要遍历每一条流,根据流量的优先级优先预留,针对优先级高的流量,当数据流量为单帧时,使用3.1 节单帧预留方法处理;当数据流量为多帧时,使用3.2 节多帧预留方法处理。结合整个拓扑和流量优先级,在计算路由的基础上预留带宽,同时结合最短路径原则确定路由,具体流程如下。

1) SDN 控制器中确定网络拓扑参数,包括设备信息、信道信息、连接信息、流量信息(含时延要求、优先级、是否需要预留)、确定各流量的超周期(各条流的周期最小公倍数)。

2) 将流量信息按照是否需要预留以及优先级排序。

3) 按顺序循环处理每一条流。

3.1) 判断是否已经生成路由,如果没有生成则先生成路由,选取最短路径的一条,计算预留;

3.2) 如果已经生成,直接计算预留;

3.3) 要求时延按照一定规则(第3 节中介绍)分配到每一跳上,计算的原则为发送端全部占用,其他链路按照规则预留;

3.4) 预留成功后将对应时隙的预留带宽值从链路中扣除;

3.5) 生成路由表配置信息。

4) 将剩余带宽配置给不需要预留的流量。

5) 将路由和预留配置通过SDN 控制器下发至交换设备执行。

4 实验分析

为了验证算法的有效性,本文在OMNeT++仿真平台环境中对几组代表性数据进行实验,运行环境为 8 核 32 G 处理器、ubuntu18 系统、OMNeT++5.4.1 版本。本节主要包括网络拓扑等相关参数介绍和实验结果分析2 个部分。

4.1 实验参数介绍

4.1.1网络拓扑

实验采用的网络拓扑如图2 所示,模拟了7 个交换机、2 个高清摄像头、2 个环视摄像头、5 个激光雷达、2 个毫米波雷达和2 个超声波雷达信号的数据发送量和发送周期,终端设备按照各自周期以及流量大小向设备DomainControllor 发送报文。同时,拓扑之外有一台 SDN 控制器,但其不在OMNeT++拓扑中展现,因为本文通过SDN 控制器配置了网络拓扑和流量,并计算出具体的预留值以及时隙,通过配置文件的形式加载到OMNeT++实验中,所以控制器没有在拓扑中体现,属于独立模块可单独使用。

图2 实验网络拓扑

4.1.2网络参数表

设备流量参数如表2 所示。由表2 可知,高清摄像头每33 ms 开始产生26.5 MB 的数据,需要17 667 帧切片发送(最大帧为1 500 B);环视摄像头每40 ms产生5 MB 数据,需要切片3 334 帧发送;激光雷达每300 μs 产生1 200 KB 数据,只需要1 帧;毫米波雷达每50 ms 产生100 KB 数据,需要切片为67 帧发送;超声波雷达每1 ms 产生500 B 数据,只需要1 帧。

表2 设备参数

4.1.3链路参数

对应网络拓扑,选择设备之间的连接参数,具体如下。

switchA~switchE之间采用40 Gbit/s、10 ns 时延连接;接收端DomainController 采用40 Gbit/s、10 ns 时延连接switchE;高清摄像头采用10 Gbit/s、10 ns 时延连接switchE;环视摄像头采用10 Gbit/s、10 ns 时延连接;雷达等其他设备采用100 Mbit/s、30 ns 时延连接。

4.2 实验结果分析

按照场景的不同,本节实验分为6 组,分别验证单帧、多帧以及两者相结合的场景下,通过均分和SMT 方法的不同计算方式产生的时延和抖动效果,以下实验单帧均选取设备LiDAR2数据流、多帧均选取设备SVcamera2数据流验证,数据流周期大小等参数见4.1.2 节,设备LiDAR2数据流时延要求为120 μs,设备SVcamera2数据流时延要求为5 ms,设备SVcamera2数据流优先级高于设备LiDAR2数据流,实验数据中使用时延标准偏差表示实验抖动,单位均为s。

4.2.1单帧周期性预留-均分

本节针对设备LiDAR2单帧数据流周期性预留带宽,预留值计算方式采用均分方法,部分结果如表3 所示。

表3 实验结果(单帧周期性预留-均分)

实验结果表明,均分方法可以有效地求解周期性单帧预留带宽值,LiDAR2设备时延稳定在120 μs,达到实验预期目的,同时其他背景流也全部发送和接收完毕,部分预留时隙带宽利用率达100%。

4.2.2单帧周期性预留-SMT

本节针对设备LiDAR2单帧数据流周期性预留带宽,预留值计算方式采用SMT 方法,结果如表4所示。

表4 实验结果(单帧周期性预留-SMT)

实验结果表明,SMT 方法可以有效地求解单帧周期性预留带宽值,实验中LiDAR2设备时延稳定在120 μs,达到实验预期目的,同时其他背景流也全部发送和接收完毕,时延比预期多2 ns,这是由于计算精度取舍导致的。同时满足本文2.2 节中采用的4 个约束条件,总体时延不超出120 μs,预留带宽值不超出链路实际带宽(本节实验链路[交换机B,交换机A]预留值为19 Gbit/s 左右,实际带宽为40 Gbit/s),单帧传输无等待时延,符合3.1 节预留方式。

4.2.3多帧周期性预留-均分

本节针对设备SVcamera2多帧数据流周期性预留带宽,预留值计算方式采用均分方法,结果如表5 所示。

表5 实验结果(多帧周期性预留-均分)

实验结果表明,均分方法可以很好地求解多帧周期性预留问题,其中SVcamera2设备时延稳定在4.97 ms,低于目标值5 ms,达到实验预期目的,同时其他背景流也全部发送和接收完毕。

4.2.4多帧周期性预留-SMT

本节针对设备SVcamera2多帧数据流周期性预留带宽,预留值计算方式采用SMT 方法,结果如表6 所示。

表6 实验结果(多帧周期性预留-SMT)

实验结果表明,SMT 方法可以很好地求解多帧周期性预留问题,其中SVcamera2设备时延稳定在4.98 ms,低于时延要求5 ms,达到实验预期目的,同时其他背景流也全部发送和接收完毕。但是相比4.2.3 节,背景流的整体时延和抖动均有所增加,抖动增长2 个数量级。本节挑选设备LiDAR1和设备SVcamera3两组数据进行对比,图3 为LiDAR1设备的时延对比,均分方法的时延抖动小于SMT 方法的时延抖动;图4 为SVcamera3设备的时延对比,同样,SMT 方法时延抖动均高于4.2.3 节的均分方法。通过两组对比图也可以看出,均分方法对其他背景流的影响更小,其他数据流的时延和抖动更低,同时满足2.2 节中采用的4 个约束条件,总体时延不超出5 ms,预留带宽值不超出链路实际带宽(本节实验链路[switchB,switchA]预留值约为8 Gbit/s,实际带宽为40 Gbit/s),本节属于多帧预留,因此采用最后一帧的时延作为整体流时延,符合3.2 节多帧预留方式,其中在交换机B 前后段存在前后带宽不一致情况(链路[SVcamera2,switchB]带宽为10 Gbit/s,链路[switchB,switchA]预留值为8 Gbit/s)。

图3 LiDAR1 设备的时延对比

图4 SVcamera3 设备的时延对比

4.2.5单帧多帧结合周期性预留-均分

本节针对设备 LiDAR2单帧数据流和设备SVcamera2多帧数据流周期性预留带宽,预留值计算方式采用SMT 方法,结果如表7 所示。

表7 实验结果(单帧多帧结合周期性预留-均分)

实验结果表明,均分方法可以很好地求解单帧多帧结合的周期性预留问题,其中SVcamera2设备时延稳定在4.97 ms,低于目标值5 ms,LiDAR2设备时延稳定在120 μs,达到实验预期目的,同时其他背景流也全部发送和接收完毕。

4.2.6单帧多帧结合周期性预留-SMT

本节针对设备 LiDAR2单帧数据流和设备SVcamera2多帧数据流周期性预留带宽,预留值计算方式采用SMT 方法,结果如表8 所示。

表8 实验结果(单帧多帧结合周期性预留-SMT)

LiDAR2设备时延稳定在120 μs,SVcamera2设备的平均时延为4.98 ms,抖动为0.000 35 ms,同时其他背景流也全部发送和接收完毕。结合图5 可以发现,在超周期(各条流的周期最小公倍数)内,出现两次4.980 336 ms 时延、一次4.979 583 ms 规律性时延。查看预留配置发现,SMT 算法产生的结果为相同规律的预留值,因此也符合实验预期。同样,如图6 和图7 所示,均分方法相比SMT 方法数据流产生的时延和抖动更低。

图5 SVcamera2 设备的时延对比

图6 SVcamera3 设备的时延对比

图7 LiDAR1 设备的时延对比

5 结束语

通过以上对比实验可以发现,本文算法首先能够计算出周期内具体的预留值和预留时隙,其次保障数据流能够在要求时延内到达,并且不同周期内时延抖动可控,最后便于带宽预留的思想落地实现。同时使用SMT 方法针对单帧和多帧单条流周期性预留可以达到实验预期,但是在多流不同周期时可能会产生抖动,由于本文的方式是不同周期分开计算的,因此在不同周期内可能会产生不同的带宽预留值,这也是本文的遗留问题,当前通过设置预留值取值空间范围,避免差距过大的问题,但是还不能消除抖动。除此之外,如何确定带宽预留值之和与链路总带宽的占比也是本文未来的研究方向之一,目的是更好地平衡背景流的传输和目标流之间的冲突。

带宽预留值计算方法还需要参考其他在网的数据流,在一定范围内预留带宽值,防止预留占据大部分的带宽空间,同时预留方式适合小数据流量、时延要求不是非常高的数据流。

在使用本文周期性带宽预留之后,预留的流量能够在要求的时延内传输完毕并且基本没有抖动,同时也保障其他不需要预留流量的传输,及时地释放预留带宽。相比以太网音频视频桥接技术固定带宽比预留情况提高带宽利用率,经过本文预留之后的带宽利用率可达到100%。

猜你喜欢

时隙周期性数据流
慢速抗阻训练:周期性增肌的新刺激模式
汽车维修数据流基础(上)
基于时分多址的网络时隙资源分配研究
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
新广告商:广告业周期性在弱化,而集中度在提升 精读
基于市场机制的多机场时隙交换放行策略
一类整数递推数列的周期性
AADL端对端数据流一致性验证方法
一种基于时隙优化的邻居发现算法研究