一种时间敏感网络报文转发方法、装置、终端及存储介质转让专利
申请号 : CN202110429224.4
文献号 : CN112995064B
文献日 : 2021-07-27
发明人 : 黄勇 , 李伟超 , 成剑 , 詹双平 , 冯景斌 , 汪漪
申请人 : 鹏城实验室
摘要 :
权利要求 :
1.一种时间敏感网络报文转发方法,其特征在于,所述方法包括:接收待转发报文,确定所述待转发报文对应的目标业务流,获取所述目标业务流已发送报文的字节数和所述目标业务流的承诺服务速率;
根据所述待转发报文的字节数和所述已发送报文的字节数确定所述待转发报文的发送轮数和所属实时队列,将所述待转发报文加入所述所属实时队列;
在每一轮中依次读取各个实时队列中的报文,每次每个实时队列的读取时间不超过预设时间周期,当读取到所述所属实时队列中的所述待转发报文时,若所述所属实时队列的剩余读取时间大于所述待转发报文的发送时间且所述待转发报文的发送轮数不大于当前轮数,则发送所述待转发报文。
2.根据权利要求1所述的时间敏感网络报文转发方法,其特征在于,所述根据所述待转发报文的字节数和所述已发送报文的字节数确定所述待转发报文的发送轮数和所属实时队列,包括:
当所述待转发报文不是所述目标业务流的首报文时,根据第一预设公式和第二预设公式确定所述发送轮数和所述所属实时队列;
其中,所述第一预设公式为:
;
所述第二预设公式为:
;
其中,为所述发送轮数,为所述所属实时队列的序号, 为当前轮数, 为所述目标业务流已发送报文的字节数, 为所述待转发报文的字节数, 为所述预设时间周期,为所述目标业务流的承诺服务速率, 为所述目标业务流的初始轮数, 为实时队列的个数, 为所述目标业务流的初始队列序号,“/”表示整除取商,“%”表示整除取余数。
3.根据权利要求2所述的时间敏感网络报文转发方法,其特征在于,所述根据所述待转发报文的字节数和所述已发送报文的字节数确定所述待转发报文的发送轮数和所属实时队列之前,包括:
获取接收所述目标业务流的首报文时的轮数作为所述目标业务流的初始轮数;
根据接收所述目标业务流的首报文时正在读取的队列确定所述目标业务流的初始队列。
4.根据权利要求1所述的时间敏感网络报文转发方法,其特征在于,所述将所述待转发报文加入所述所属实时队列,包括:当所述待转发报文的发送轮数与当前轮数的差值不大于预设阈值时,将所述待转发报文加入所述所属实时队列;
当所述待转发报文的发送轮数与当前轮数的差值大于预设阈值时,丢弃所述待转发报文。
5.根据权利要求1所述的时间敏感网络报文转发方法,其特征在于,所述读取到所述所属实时队列中的所述待转发报文之后,还包括:若所述待转发报文的发送轮数大于当前轮数,则将所述待转发报文置于所述所属实时队列的队尾;
若所述所属实时队列剩余的读取时间小于所述待转发报文的发送时间,则读取所述所属实时队列的下一个队列中的报文。
6.根据权利要求5所述的时间敏感网络报文转发方法,其特征在于,所述将所述待转发报文置于所述所属实时队列的队尾,包括:当所述所属实时队列中存在隔离标签时,将所述待转发报文直接置于所述所属实时队列的队尾;
当所述所属实时队列中不存在隔离标签时,在所述所属实时队列插入隔离标签后再将所述待转发报文置于所述所属实时队列的队尾。
7.根据权利要求6所述的时间敏感网络报文转发方法,其特征在于,所述在每一轮中依次读取各个实时队列中的报文,包括:在读取目标实时队列的报文时,若所述目标实时队列为空或读取到所述隔离标签,则读取BE队列中的报文;
当从所述BE队列中读取到的当前报文不能在所述目标实时队列剩余的读取时间内完成发送时,读取所述目标实时队列的下一个队列中的报文;
其中,所述BE队列中包括BE业务流的报文。
8.一种时间敏感网络报文转发装置,其特征在于,包括:接收模块,所述接收模块用于接收待转发报文,确定所述待转发报文对应的目标业务流,获取所述目标业务流已发送报文的字节数和所述目标业务流的承诺服务速率;
确定模块,所述确定模块用于根据所述待转发报文的字节数和所述已发送报文的字节数确定所述待转发报文的发送轮数和所属实时队列,将所述待转发报文加入所述所属实时队列;
调度模块,所述调度模块用于在每一轮中依次读取各个实时队列中的报文,每次每个实时队列的读取时间不超过预设时间周期,当读取到所述所属实时队列中的所述待转发报文时,若所述所属实时队列的剩余读取时间大于所述待转发报文的发送时间且所述待转发报文的发送轮数不大于当前轮数,则发送所述待转发报文。
9.一种终端,其特征在于,所述终端包括:处理器、与处理器通信连接的计算机可读存储介质,所述计算机可读存储介质适于存储多条指令,所述处理器适于调用所述计算机可读存储介质中的指令,以执行实现上述权利要求1‑7任一项所述的时间敏感网络报文转发方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1‑7任一项所述的时间敏感网络报文转发方法的步骤。
说明书 :
一种时间敏感网络报文转发方法、装置、终端及存储介质
技术领域
背景技术
Networking,时间敏感网络)被广泛应用,实现TSN技术的关键是要保证业务数据流的低时
延可靠传送。
中的所有节点都必须优先确保重要数据帧的通过,TAS是通过门控队列GCL(Gate Control
List)实现精确时间调度的,基于GCL控制的实现思想,针对一个低时延保证的业务,需要预
先针对该业务流的数据发送周期与发送的数据流大小,为业务在沿途确定需要打开的门控
时刻与时长。利用一个全网可视的控制器可以规划做到这一点,当有上千条以上的业务时,
控制器需要一个复杂的算法来保证所有业务在沿途所有网络节点的出口产生GCL门控信
息,但是这种集中计算各网络出口的GCL,需要预先掌握所有业务流的需求,然后集中计算
求解,当需要新增一条业务流时,需要将所有业务流输入到算法中重新计算,不能满足现实
中需要动态增加/删除流的效果。
发明内容
列的剩余读取时间大于所述待转发报文的发送时间且所述待转发报文的发送轮数不大于
当前轮数,则发送所述待转发报文。
间周期, 为所述目标业务流的承诺服务速率, 为所述目标业务流的初始轮数, 为实
时队列的个数, 为所述目标业务流的初始队列序号,“/”表示整除取商,“%”表示整除取
余数。
实时队列;
发报文时,若所述所属实时队列的剩余读取时间大于所述待转发报文的发送时间且所述待
转发报文的发送轮数不大于当前轮数,则发送所述待转发报文。
述计算机可读存储介质中的指令,以执行实现上述任一项所述的时间敏感网络报文转发方
法的步骤。
述任一项所述的时间敏感网络报文转发方法的步骤。
时队列中的报文,在接收到待转发报文后,根据待转发报文对应的目标业务流的已发送字
节数和承诺服务速率确定待转发报文的轮数和所属实时队列,当读取到待转发报文时,若
待转发报文所属实时队列的剩余读取时间大于待转发报文的发送时间且待转发报文的发
送轮数不大于当前轮数,则发送所述待转发报文,不需要设置门控信息,可以支持对时间敏
感网络中的业务流的动态增加/删除。
附图说明
具体实施方式
限定本发明。
业务流已发送报文的字节数和所述目标业务流的承诺服务速率,具体地,查找所述目标业
务流已发送报文的字节数和所述目标业务流的承诺服务速率,可以是通过流信息表来实
现,具体地,流信息表中记录当前网络中所有实时流的信息,如图2所示,可以采用2‑left哈
希算法建立索引表,从索引表再查找流信息表。2‑left哈希索引表包括两个相等大小的哈
希表,分别称为A表和B表,当接收到所述待转发报文后,提取报文的关键字即f‑key,通过两
个哈希函数分别将f‑key哈希到表A和表B两个索引位置,每个索引位置建立M个哈希桶,每
个哈希桶存放对应f‑key的一个压缩值ckey及指向留信息表的索引index,当存贮一个f‑
key时,两个索引位置总,选择占用哈希桶少的位置,如果两个索引位置占用相同,则总是将
f‑key存在在A表,理论和经验表明,取哈希表大小A+B>1.5N,N为流的数量,即可得到很好
的散列效果。考虑到仍可能出现两个索引位置完成占满的情况,设置一个很小的列表来应
用极端的哈希冲突,一般这个小的列表大小可取N/20。对于需要单节点支持2K条业务流的
情况,上述流信息表结构需要占用的空间大约为450B,每个报文只需要三次存贮访问,易于
在硬件芯片中实现。当然,可以理解的是,这里只是举例说明了流信息表的实现方式,本领
域技术人员可以选择其他的流信息表实现方式以使得在节点接收到待转发报文后能够查
询到所述待转发报文对应的所述目标业务流的相关信息。
中依次读取各个实时队列中的报文并记录轮数,每轮结束后轮数加一,根据读取到的报文
的发送轮数和当前轮数确定报文当前是否需要被发送。
一致,这点将在后文被详细说明。
时间周期, 为所述目标业务流的承诺服务速率, 为所述目标业务流的初始轮数,
为实时队列的个数, 为所述目标业务流的初始队列序号,“/”表示整除取商,“%”表示整
除取余数。
确定所述目标业务流的初始队列时,可以是将正在读取的队列作为所述目标业务流的初始
队列,在一种可能的实现方式中,基于所述目标业务流的首报文能够被尽快被转发的原则
确定所述目标业务流的初始队列,即,确定接收所述目标业务流的首报文时将所述目标业
务流的首报文加入正在读取的队列是否可以实现在正在读取队列的当前读取周期中被发
送,具体地,可以根据正在读取队列的已读取时间、所述目标业务流的首报文的字节长度来
确定,若是,则将所述目标业务流的首报文加入当前正在读取的队列,即将当前正在读取的
队列作为所述目标业务流的初始队列 ,若否,则将所述目标业务流的首报文加入正在读
取队列的下一个队列,即将正在读取的队列的下一个队列作为所述目标业务流的初始队列
。
所述所属实时队列,包括:
过容限的突发,丢弃所述待转发报文。所述预设阈值可以根据节点中可用于报文转发的RAM
空间大小来决定,例如可以取3‑8之间的值。
实时队列的剩余读取时间大于所述待转发报文的发送时间且所述待转发报文的发送轮数
不大于当前轮数,则发送所述待转发报文。
取各个实时队列中的报文的步骤并不限定在接收到所述待转发报文之后进行,而是在节点
开始执行本实施例提供的时间敏感网络报文时一直重复执行。
文、Q3中的报文,每次每个队列的读取时间不超过预设时间周期,完成一轮,再开始新的一
轮,每次完成一轮后轮数加一。所述预设时间周期基于时间敏感网络服务的最高速率业务
选择或基于出口线路的链路带宽选择,比如,如果业务最高速率或出口线路带宽是10Gbps,
考虑到每次读取队列时至少可以输出一个最长报文(1500字节),则所述预设时间周期为
1500*8/10Gbps=1.2微秒。
否大于当前轮数,若不大于,那么发送所述待转发报文。获取队列中的报文的发送轮数可以
是在将报文加入至队列时将报文的发送轮数 加入至报文的报头,从而可以在读取到报文
时获取报文的发送轮数。当开始读取所述所属实时队列中的报文时开始计时,每次对所述
所属实时队列的总读取时间不超过预设时间周期,即,所述所属实时队列的剩余读取时间
为所述预设时间周期减去该次对所述所属实时队列已经进行了的读取时间,假设当前时刻
为t,本轮中开始对所述所属实时队列进行读取的时刻为t0,所述预设时间周期为T,那么所
述所属实时队列的剩余读取时间为T‑(t0‑t)。
时间或者所述所属实时队列的读取时间达到所述预设时间周期或者所述所属实时队列的
报文为空或者读取到隔离标签,具体将在后文被说明。
可以覆盖较广的流速范围,对于超出承诺速率的流,能够做到及时整形。并且即使链路上只
有一条流,报文转发也不会超过流最大承诺速率,这样,流报文不会因更充足的带宽而在链
路上产生更快速传送从而挤压带宽,实现了non‑working conserving(非工作时段带宽保
护)。本实施例提供的时间敏感网络报文转发方法,可以由时间敏感网络中的各个节点分别
独立执行,这样,每个节点均是根据业务流的承诺速率以及已发送的报文字节数确定报文
转发的先后顺序,报文转发 的沿路不会出现抖动的持续积累。
下,对队列中的报文的读取是持续的,因此,当报文回绕到队尾后,如不进行相应设置,会导
致报文被重复读取和判断,浪费资源,因此,在本实施例中,设置有隔离标签,具体地,所述
将所述待转发报文置于所述所属实时队列的队尾,包括:
的报文,具体地,所述在每一轮中依次读取各个实时队列中的报文,包括:
或从队列中读取到隔离标签时,则节点开始读取BE队列中的报文。
F标记。
目标业务流的已发送字节数和承诺服务速率确定待转发报文的轮数和所属实时队列,当读
取到待转发报文时,若待转发报文所属实时队列的剩余读取时间大于待转发报文的发送时
间且待转发报文的发送轮数不大于当前轮数,则发送所述待转发报文,不需要设置门控信
息,可以支持对时间敏感网络中的业务流的动态增加/删除。
明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而
且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段
并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执
行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少
一部分轮流或者交替地执行。
可读取计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的
流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任
何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、
可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储
器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种
形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM
(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线
(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM
(RDRAM)等。
体如实施例一中所述;
实时队列,具体如实施例一中所述;
发报文时,若所述所属实时队列的剩余读取时间大于所述待转发报文的发送时间且所述待
转发报文的发送轮数不大于当前轮数,则发送所述待转发报文,具体如实施例一中所述。
出的组件,可以替代的实施更多或者更少的组件。
端上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure
Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述终端
的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件
及各类数据。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实
施例中,存储器20上存储有时间敏感网络报文转发程序30,该时间敏感网络报文转发程序
30可被处理器10所执行,从而实现本申请中时间敏感网络报文转发方法。
行所述时间敏感网络报文转发方法等。
列的剩余读取时间大于所述待转发报文的发送时间且所述待转发报文的发送轮数不大于
当前轮数,则发送所述待转发报文。
设时间周期, 为所述目标业务流的承诺服务速率, 为所述目标业务流的初始轮数,
为实时队列的个数, 为所述目标业务流的初始队列序号,“/”表示整除取商,“%”表示整
除取余数。
方法的步骤。
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。