基于抖动时延的确定性业务传输方法和装置与流程

文档序号:33034922发布日期:2023-01-24 19:11阅读:57来源:国知局
基于抖动时延的确定性业务传输方法和装置与流程

1.本发明属于数据通信技术领域,更具体地,涉及一种基于抖动时延的确定性业务传输方法和装置。


背景技术:

2.以太网自20世纪70年代诞生以来,由于其简单的网络连接机制、不断提高的带宽以及可扩展性和兼容性而被广泛使用。传统以太网用“尽力而为”的方式传输数据,只能将端到端的时延减少到几十毫秒。但许多的新兴业务,例如智能驾驶、车联网、智慧交通、工业控制、智慧农业、远程手术、无人驾驶、vr游戏、智能服务等,需要将端到端时延控制在微秒到几毫秒级,将时延抖动控制在微秒级,将可靠性控制在99.9999%以上。因此,迫切需要建立一种可提供“准时、准确”数据传输服务质量的确定性网络。
3.确定性网络是通信厂商技术更新迭代的方向,成为通信厂商重要的技术升级需求。现有以太网缺乏实时传输质量保证机制、全局时钟和同步机制、带宽保留机制、数据包过滤机制等,难以保证确定性服务质量。
4.目前,确定性网络的技术关键在于实现确定性时延、抖动、丢包率、带宽和可靠性等。确定性时延主要通过时钟同步、频率同步、调度整形、资源预留等机制实现;确定性抖动和丢包率通过优先级划分、抖动消减、缓冲吸收等机制实现;确定性带宽通过网络切片和边缘计算等技术实现;确定性可靠性通过多路复用、包复制与消除、冗余备份等技术实现。
5.为保证确定性时延,ieee tsn工作组和ietf detnet工作组分别聚焦于链路层和网络层的确定性技术,提出了全网时钟/频率同步机制和基于时隙的门控优先级队列调度机制,即先通过门控优先级队列将时延敏感流和尽力而为流隔开,再从时间上或空间上将时延敏感流隔开,从而使网络出端口不发生排队或具有有界的排队时延。但调度机制复杂度高,需要全网精确时钟同步,只能适用于局域网,其他标准也都是基于tsn制定,适用于广域网特别是云网的确定性技术尚不成熟。
6.总之,确定性网络中的数据平面存在主要问题如下:1、缺少适用于广域网的调度机制,实现端到端确定性网络需求;2、tsn基于时隙的调度机制,实现复杂,要求全网精确时钟同步,难以在实际应用中落地;3、现有设备的芯片难以支持复杂的调度算法,需要简化实现。
7.确定性网络技术处于新兴阶段,需要在技术上得以突破,使得网络设备通过确定性的转发技术,实现网络设备逐跳确保业务的传输时延抖动,满足多场景的确定性网络需求,是本领域技术人员亟待解决的问题。


技术实现要素:

8.针对现有技术的以上缺陷或改进需求,本发明提供了一种基于抖动时延的确定性业务传输方法和系统,实现确定性业务广域网应用,对调度方法进行改进,并实现确定性抖动需求性能改进。
9.为实现上述目的,按照本发明的一个方面,提供了一种基于抖动时延的确定性业务传输方法,包括:
10.入口设备根据确定性业务的需求参数,计算确定性业务路径,并将相关信息发送给后续的转发设备和出口设备;
11.转发设备根据接收的信息生成业务转发表;
12.入口设备根据本数据流的抖动要求定义时间片大小,确定各数据包的时间片编号,并使数据包携带该时间片编号信息;
13.各转发设备根据各时间片的首包确定传输队列,并进行负载比例控制,基于最小调度周期的轮询调度机制,完成数据包的转发;
14.出口设备在首包触发基础上,等待一个抖动需求时间片作为开始调度队列时间,完成整形。
15.进一步的,所述时间片编号的计算包括:
16.时间片编号=(整数表示的时间信息(微秒)/抖动需求(微秒))%数据包可记录编号最大值。
17.进一步的,所述进行负载比例控制具体包括:
18.计算时间片编号对应的传输开始队列n1、传输最晚队列n2;
19.计算对应业务数据包插入队列位置n3;
20.插入数据包到调度队列。
21.进一步的,所述计算时间片编号对应的传输开始队列n1、传输最晚队列n2时,设差值a为接收时间片编号减去确定性业务转发表中的时间片编号,若差值a未超过预设值,则:
22.所述时间片编号对应的传输开始队列n1=当前编号数据包传输结束队列=当前编号传输开始队列+a
×
抖动时间片/每队列传输时间片;
23.所述时间片编号对应的传输最晚队列n2=当前编号传输开始队列+ (a+1)
×
抖动时间片/每队列传输时间片。
24.进一步的,所述计算对应业务数据包插入队列位置n3具体包括:
25.n3=n1+q
×
(n2-n1),对n3进行取整,即为需要插入的循环调度周期中的队列编号,若n3超过循环调度队列总数,则将n3减去循环调度队列总数作为插入的队列编号,其中,q为对应业务已接收字节数与抖动时间片传输字节数的比例。
26.进一步的,所述插入数据包到调度队列时,若n3队列未满,则直接插入转发的数据包,否则按照n3-1、n3+1、n3-2、n3+2的顺序,遍历n1到 n2之间的所有队列,找到有空闲队列后,即插入转发的数据包。
27.进一步的,所述基于最小调度周期的轮询调度机制具体包括:网络设备将确定性业务和非确定型业务调度队列分开,对于确定性业务,网络设备基于轮循调度队列机制,根据预留总带宽大小,设置轮循队列中每个调度队列长度,逐队列发送数据包,每个队列传输时间固定,每队列业务调度时,按照先进先出原则调度。
28.进一步的,还包括确定性业务的动态带宽调整,具体的:对确定性业务预留总带宽进行动态调整,当出现抖动需求范围内,剩余确定性业务带宽小于总预留带宽的90%时,提高预留总带宽,以免出现确定性业务丢失;当整个轮循周期内确定性业务带宽占用比例小于预留带宽的50%且无聚集时,减少预留总带宽,从而提高转发设备带宽利用率。
29.进一步的,所述业务转发表的字段包括业务标识、确定性业务最小带宽、当前传输队列、时间片编号、当前编号传输开始队列、抖动时间片、抖动时间片传输字节数、超过编号数据包字节数以及落后编号数据包字节数中的一种或多种。
30.按照本发明的另一方面,还提供了一种基于抖动时延的确定性业务传输装置,用于实现如第一方面所述的基于抖动时延的确定性业务传输方法,装置包括控制单元和转发单元,其中:
31.所述控制单元,用于完成确定性业务的配置、路由协议和生成转发表项;
32.所述转发单元,用于实现收到数据包时,对确定性业务映射的队列进行计算和队列控制计算,根据计算结果对数据包进行入循环调度队列,队列管理和调度根据时间片进行调度到出接口,出队列将数据包发送到网络设备出接口发出。
33.总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
34.(1)利用应用层窗口机制对于局部无需保序,实现按时间片分组传输,无需全网时钟同步,可实现基于时间片的调度和保序。根据抖动需求进行确定性业务时间片编号并传输,减少编号数量,可用于广域网传输;根据时间信息和抖动需求表示的确定性业务时间片编号进行调度,保证端到端传输抖动需求;按比例的反馈调度机制,动态预留带宽调整,避免丢包和排序;
35.(2)与现有确定性网络技术相比,通过基于时钟信息和抖动需求进行确定性业务时间片编号,解决了顺序编号的复杂性,解决了时隙调度严格的时钟同步需求,可实现广域网端到端传输;
36.(3)与复杂的确定性网络调度技术相比,通过可编程设备增加几个寄存器和简单的逻辑运算,实现按比例的反馈调度机制,解决了广域网调度机制匮乏,避免帧抢占和逐流带宽预留等复杂机制,可实现端到端传输的抖动需求和时延需求。
附图说明
37.图1为本发明实施例1提供的一种基于抖动时延的确定性业务传输方法流程图;
38.图2为本发明实施例2提供的基于抖动时延的确定性业务传输方法的装置架构图;
39.图3为本发明实施例2提供的确定性业务转发表结构和循环传输队列示意图;
40.图4为本发明实施例2提供的确定性业务传输处理流程图;
41.图5为本发明实施例2提供的确定性业务入队列流程图;
42.图6为本发明实施例2提供的确定性业务传输队列比例控制流程图;
43.图7为本发明实施例2提供的确定性业务时间片编号调整流程图;
44.图8为本发明实施例3提供的确定性业务数据包调度示意图。
具体实施方式
45.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
46.实施例1
47.如图1所示,本发明实施例1提供一种基于抖动时延的确定性业务传输方法,包括如下步骤:
48.步骤100:入口设备根据确定性业务的需求参数,计算确定性业务路径,并将相关信息发送给后续的转发设备和出口设备。
49.步骤200:转发设备根据接收的信息生成业务转发表。
50.步骤300:入口设备根据本数据流的抖动要求定义时间片大小,确定各数据包的时间片编号,并使数据包携带该时间片编号信息。
51.步骤400:各转发设备根据各时间片的首包确定传输队列,并进行负载比例控制,基于最小调度周期的轮询调度机制,完成数据包的转发。需说明,首包是指某个时间片的第一个到达的数据包。
52.步骤500:出口设备在首包触发基础上,等待一个抖动需求时间片作为开始调度队列时间,完成整形。
53.在本实施例的上述步骤中,所述时间片编号的计算包括:时间片编号= (整数表示的时间信息(微秒)/抖动需求(微秒))%数据包可记录编号最大值。
54.在本实施例的上述步骤中,所述进行负载比例控制具体包括:计算时间片编号对应的传输开始队列n1、传输最晚队列n2;计算对应业务数据包插入队列位置n3;插入数据包到调度队列。具体的,所述计算时间片编号对应的传输开始队列n1、传输最晚队列n2时,设差值a为接收时间片编号减去确定性业务转发表中的时间片编号,若差值a未超过预设值,则:所述时间片编号对应的传输开始队列n1=当前编号数据包传输结束队列=当前编号传输开始队列+a
×
抖动时间片/每队列传输时间片;所述时间片编号对应的传输最晚队列n2=当前编号传输开始队列+(a+1)
×
抖动时间片/每队列传输时间片。所述计算对应业务数据包插入队列位置n3具体包括: n3=n1+q
×
(n2-n1),对n3进行取整,即为需要插入的循环调度周期中的队列编号,若n3超过循环调度队列总数,则将n3减去循环调度队列总数作为插入的队列编号,其中,q为对应业务已接收字节数与抖动时间片传输字节数的比例。所述插入数据包到调度队列时,若n3队列未满,则直接插入转发的数据包,否则按照n3-1、n3+1、n3-2、n3+2的顺序,遍历n1 到n2之间的所有队列,找到有空闲队列后,即插入转发的数据包。
55.在本实施例的上述步骤中,所述基于最小调度周期的轮询调度机制具体包括:网络设备将确定性业务和非确定型业务调度队列分开,对于确定性业务,网络设备基于轮循调度队列机制,根据预留总带宽大小,设置轮循队列中每个调度队列长度,逐队列发送数据包,每个队列传输时间固定,每队列业务调度时,按照先进先出原则调度。
56.在本实施例的上述步骤中,还包括确定性业务的动态带宽调整,具体的:对确定性业务预留总带宽进行动态调整,当出现抖动需求范围内,剩余确定性业务带宽小于总预留带宽的90%时,提高预留总带宽,以免出现确定性业务丢失;当整个轮循周期内确定性业务带宽占用比例小于预留带宽的50%且无聚集时,减少预留总带宽,从而提高转发设备带宽利用率。
57.在本实施例的上述步骤中,所述业务转发表的字段包括业务标识、确定性业务最小带宽、当前传输队列、时间片编号、当前编号传输开始队列、抖动时间片、抖动时间片传输
字节数、超过编号数据包字节数以及落后编号数据包字节数中的一种或多种。
58.实施例2
59.本发明实施例2对实施例1中的方法进行更为详细的解释和描述。需说明,本发明的目的是为了克服背景技术的不足,提供一种基于抖动时延的确定性业务传输方法和装置。针对确定性业务转发平面不足改进如下。
60.(1)实现确定性业务广域网应用
61.现有确定性技术难以用于广域网,由于需要精确时钟同步,且调度算法复杂只能用于局域网。本发明方法通过数据包自身信息,只需增加少量寄存器设置,避免复杂时钟系统,可有效应用于广域网确定性业务传输,同时可有效降低成本。
62.(2)调度方法改进
63.现有缺乏可落地的广域网确定性业务调度机制,本发明方法提出复杂度较低的轮循队列调度机制,通过入队列时的有效控制,实现满足确定性业务抖动的时间片调度。
64.(3)确定性抖动需求性能改进
65.现有确定性网络技术缺少基于抖动要求转发,即便是精确时钟同步的局域网方法仅考虑时间片转发,控制抖动时延粒度较大。本发明方法基于抖动需求线性比例控制和调度,使数据包均匀转发,动态调整确定性业务总的预留带宽,极大地改进了端到端抖动性能,同时可有效提升设备带宽利用率。
66.为了达到上述技术改进需求,本发明实施例所采用的技术方案是一种基于抖动时延的确定性业务传输方法,包括:
67.接入设备(也即实施例1中入口设备,本实施例中统称为接入设备) 收到确定性业务数据包时,根据抖动需求计算确定性业务时间片编号,并使得数据包携带该编号信息;
68.通过接入设备配置的确定性业务需求参数计算确定性业务路径,将确定性业务需求参数发送给确定性业务路径上各转发设备,各转发设备生成确定性业务转发表;
69.传输路径上各网络设备根据确定性业务时间片编号和确定性业务参数,通过首包触发循环转发队列位置、根据确定性业务时间片编号实现确定性业务入队列、同时对确定性业务传输队列比例控制、基于最小调度周期的轮循调度队列等机制,实现对确定性业务精确地按时间进行调度,并通过确定性业务时间片编号和开始传输队列调整,实现确定性业务的动态带宽调整和传输时间片的严格对齐。
70.所述的确定性业务路径,是指入口网络设备对确定性业务计算满足时延需求的转发路径,在计算的转发路径上,选择合适的中继节点进行确定性业务整形,实现分段抖动保证传输。
71.所述的确定性业务转发表,包含确定性业务的标识、确定性业务参数等信息,在收到数据包时,完善确定性业务转发表中确定性业务时间片编号对应的循环调度队列信息。
72.所述的确定性业务时间片编号,是指入口网络设备根据时钟信息和确定性业务的抖动需求进行哈希计算的值,并将计算出的确定性业务时间片编号填入到ip(internet protocol,网际互连协议)报文的dscp(差分服务代码点,differentiated services code point)的字段。对于其他类型报文,如mpls(多协议标签交换,multi-protocol label switching)报文则填入相应的优先级字段或者d-cw字段中标识包系列号字段。
73.所述的首包触发循环转发队列位置,是指确定性业务在转发路径上,根据收到的
第一个数据包触发该确定性业务时间片编号对应的开始传输时间,确定在循环队列调度中开始传输的队列。根据确定性业务抖动需求,可计算出该确定性业务时间片编号对应的结束传输队列。
74.所述的确定性业务入队列,是指确定性业务数据包插入到循环调度队列时,根据确定性业务时间片编号、确定性业务抖动时间片、当前该确定性业务时间片编号传输开始队列等信息,接入设备、转发设备和出口设备通过不同方式计算确定性业务数据包在循环调度队列中的范围。入口网络设备对确定性业务数据包严格按接收时间对应的调度队列转发;转发设备根据首包触发确定开始调度队列时间,出口设备则在首包触发基础上,等待一个抖动需求时间片作为开始调度队列时间以便进行整形,对于实现分段抖动保证的中继节点按照出口设备同样方式进行整形。
75.所述的确定性业务传输队列比例控制,是指相同编号的数据包入队列进行调度时,在确定性业务时间片编号对应的传输开始队列和传输结束队列之间,按确定性业务负载比例放入到合适的调度队列中,确保调度时间差值不超过抖动需求。
76.所述的基于最小调度周期的轮循调度队列,是指网络设备对确定性业务和非确定型业务调度队列分开,对确定性业务,网络设备基于轮循调度队列机制,根据预留总带宽大小,设置轮循队列中每个调度队列长度,逐队列发送数据包,每个队列传输时间固定,每队列业务调度时,按照先进先出原则调度。
77.所述的传输队列调整,是指为避免由于传输过程中导致实际调度周期之间的差异,确定性业务一个抖动时间片对应的队列传输完成后,统计超过编号数据包数量和落后编号数据包数量,根据统计信息调整确定性业务时间片与调度周期的对应关系。
78.所述的确定性业务的动态带宽调整,是指对确定性业务预留总带宽进行动态调整,当出现抖动需求范围内,剩余确定性业务带宽小于总预留带宽的预设值(例如90%)时,提高预留总带宽,以免出现确定性业务丢失;当整个轮循周期内确定性业务带宽占用比例小于预留带宽的预设值(例如 50%)时且无聚集时,减少预留总带宽,从而提高转发设备带宽利用率。
79.确定性业务传输过程中,重要的是抖动时延控制。现有时间敏感网络传输机制主要基于时间片的传输,将传输划分为一个个时间片,通过同步机制,每个设备严格控制时间片的调度起始时间,确定性业务数据包在通过设备时,严格按照确定的时间片内进行调度,确保端到端的抖动小于2 个时间片,所有设备的时间片划分采用统一的大小,由于时间片的调度需要全网精确地时钟同步,但精确时钟同步在广域网存在困难,致使该机制仅能在局域网内应用。
80.考虑到终端或者服务端应用可以有缓存窗口,短时间段内的乱序可在应用层进行恢复。本发明基于抖动时延的确定性业务传输系统和方法,通过接入设备配置的确定性业务需求参数,计算确定性业务路径,将相关信息发送给确定性业务路径上各转发设备,各转发设备生成确定性业务转发表(需要说明的是,业务转发表可以由转发设备生成,类似于路由表由各路由器接收到通告信息后,各路由器协议计算本设备的路由表,生成本设备的转发表;当然转发表也可以由集中地控制器计算后下发到网络设备,但是控制器计算域范围有限,在小范围内由控制器计算也是可行的;本发明采用分布式各转发设备计算生成自己的转发表,主要是希望可以应用在广域网)。接入设备收到确定性业务数据包时,根据抖动
需求计算确定性业务时间片编号,并使得数据包携带该编号信息。传输路径上各网络设备根据确定性业务时间片编号和确定性业务参数,通过首包触发循环转发队列位置、根据确定性业务时间片编号实现确定性业务数据包入循环调度队列、同时对确定性业务的入队列按负载比例控制、基于最小调度周期的轮循调度队列等机制,实现对确定性业务精确地按时间进行调度,并通过确定性业务时间片编号和开始传输队列调整,实现确定性业务的动态带宽调整和传输时间片的严格对齐。
81.参考图2为基于抖动时延的确定性业务传输方法的装置架构图,主要适用于可编程网络设备,在该装置架构中,主要包括以下几个部分:
82.控制单元:主要完成确定性业务的配置、路由协议和生成转发表项。
83.转发单元:主要实现收到数据包时,对确定性业务映射的队列进行计算和队列控制计算,根据计算结果对数据包进行入循环调度队列,队列管理和调度则根据时间片进行调度到出接口,出队列则将数据包发送到网络设备出接口发出。
84.需要说明是,对于每一个业务,有一个起点和终点,在起点的接入设备配置处理最为简单,且由该设备向全网通告,避免所有设备进行配置。一个业务如果不在接入(起点)配置,在其他节点配置,扩散到其他节点进行路径计算时,不一定经过配置节点,不利于网络配置检查。类似于终端或者服务器接入网络时,其网关一般指向直连的接入设备(接入路由器),指向中间路由器理论上也是可行,只是查看路由时不直观,其需要额外增加很多路由配置。
85.控制单元各模块主要处理流程如下:
86.1、确定性业务配置:在确定性业务接入设备配置相应确定性业务,对于ip报文基于5元组,对于mpls报文则基于s-label进行确定性业务标识。配置确定性业务的最大抖动需求、最小时延需求、带宽需求等信息。本发明中最小时延需求用于路由计算满足端到端的路径,最大抖动需求用于确定性业务调度的时间片大小。
87.2、路由协议:根据网络拓扑情况,计算满足确定性业务最小时延需求的路径,并将确定性业务及抖动需求通告给路径中的所有节点。路由协议在计算或者从接入设备学习到确定性业务的转发路径和业务需求后,生成确定性业务转发表并下发到转发单元。
88.需要说明的是,路由协议在接入设备和转发设备上都需要,每个设备上的路由协议主要作用是接收网络通告的路径和业务信息,计算生成本地的转发表。如果是集中式控制,通过控制器只需要控制器计算后,将生成的转发表下发给路径上的所有设备,但控制器使用的网络规模是有限的,本发明期望实现分布式的转发表生成,和现有的路由协议机制类似,由各类转发设备自己计算,本发明只是增加了确定性参数的约束。
89.3、生成转发表项:针对路由协议生成的确定性业务转发表项,根据确定性业务的抖动需求,设置确定性业务时间片大小为该业务的抖动传输时间片。以便转发单元进行数据包转发时,报文编号相同数据包在同一段时间片内发送。控制单元生成的转发表项仅包含业务标识、确定性业务最小带宽、抖动时间片、抖动时间片传输字节数等不会变化的信息。
90.参考图3为本发明所使用的确定性业务转发表定义,各字段说明如下:
91.(1)业务标识:对于ip报文,确定性业务标识由五元组组成,对于 mpls报文,则通过mpls标签对确定性业务进行标识。
92.(2)确定性业务最小带宽:表示确定性业务传输时需要预留的最小带宽,单位为kbps。
93.(3)当前传输队列:表示设备确定性业务循环队列传输中,当前正在传输的队列编号。在每个业务中通过指针指向正在传输的队列,以便实时更新。
94.这里的队列是所有流共用的队列,这个设备一共维护的队列数量有限,如现网设备每端口最少8个队列,也有具有64k队列数的,这个数量小于流(业务)的数量,因此需要每条流维护自己包(序号)传输的队列信息。每条流需要确保将自己的数据包按照顺序放到传输队列中,以便匀速传输,降低抖动,从而保证确定性。
95.(4)确定性业务时间片编号:表示确定性业务正在传输数据包的基于抖动编号,确定性业务时间片编号在入接口网络设备根据时钟信息和该业务的抖动需求,进行哈希计算的值,该值在数据包中携带,具体计算如下:
96.确定性业务时间片编号=(整数表示的时间信息(微秒)/抖动需求(微秒))%数据包可记录编号最大值。
97.接入设备将计算出的确定性业务时间片编号填入到ip报文的dscp的字段(确定性业务标识6元组之一,但未得到应用)。对于其他类型报文,如mpls报文则填入相应的优先级字段或者d-cw字段中标识包系列号字段。至少可表示256个该业务的抖动时延传输时间片的报文。
98.转发表中的确定性业务时间片编号通过首包触发填入,可根据转发情况进行调整。
99.在确定性网络中,每一条流(业务)在传输时,对每一个包进行编号,该编号信息一般在入口时按顺序编号存放在数据包的头部存放序列号字段 (如mpls的d-cw字段、srv6的srh字段、ipv4新增了udp封装字段)。另外,每一条流还有一个流序列号。因此对每一个包,包含流序列号和包序列号,同一条流的包序列号按顺序传输。这里的时间片编号主要为包序列号,存放在包序列号字段。本发明不是简单递增包序列号,而是将包序列号与传输时刻绑定,划分成同一时间片内编号相同,避免时间片编号仅表示顺序,对各数据包之间的时间间隔不感知,导致抖动过大问题,实现确定性。另外进行数据包聚合后,可以实现时间片编号字段记录更多的数据包个数,利用dscp字段即可满足时间片编号,否则需要较长的字段,在ip中难以实现。另外可以避免要求传输节点时间片粒度过小的调度问题,并实现多条确定性业务的传输。
100.(5)当前编号传输开始队列:表示确定性业务当前编号数据包,在轮循传输队列中开始传输的队列。接入设备、转发设备和出口设备计算当前编号传输开始队列稍有差异。
101.(6)抖动时间片:表示确定性业务抖动需求值,单位为微秒。其数值大小决定了当前编号数据包传输结束队列,具体计算如下:
102.当前编号数据包传输结束队列=当前编号传输开始队列+抖动时间片/ 每队列传输时间片。
103.上式计算时,如果出现计算结果超过循环调度队列中的队列总数,则将其减去队列总数,确保计算出的传输开始队列和传输结束队列在循环队列编号范围内。
104.本发明中为计算方便,如果出现传输结束队列小于传输开始队列,则将传输结束队列+最大循环队列作为传输结束队列进行计算,确保计算的传输结束队列超过传输开始
队列。后续不再说明。
105.(7)抖动时间片传输字节数:表示确定性业务在抖动时间片内传输的字节数。该数值可通过确定性业务最小带宽(kbps)
×
抖动时间片/8000进行估算。
106.(8)超过编号数据包字节数:记录接收确定性业务时间片编号大于当前传输确定性业务时间片编号的数据包字节数。该数值说明网络中有较长乱序,根据该数值修正当前确定性业务时间片编号。
107.(9)落后编号数据包字节数:记录接收确定性业务时间片编号小于当前传输确定性业务时间片编号的数据包字节数。该数值说明网络中有较长乱序,根据该数值修正当前确定性业务时间片编号。
108.转发单元各模块主要处理流程如下:
109.1、业务队列映射:接收控制单元下发的确定性业务转发表信息,并根据确定性业务首包完善确定性业务转发表信息,在轮循调度周期结束和业务时间片调度结束时,对确定性业务时间片编号等信息进行动态调整。
110.2、入队列:转发单元接收到确定性业务数据包时,查询确定性业务转发表,通过确定性业务转发表计算插入循环调度队列位置范围,并满足业务的抖动需求。
111.3、队列控制:根据队列中该业务收包情况和整体收包状况,按比例反馈控制机制,计算插入的队列具体位置,同时根据循环队列调度情况,动态调整确定性业务总的预留带宽。
112.4、队列管理和调度:一种循环队列调度机制,将所有调度队列环形排列,各转发设备采用多个队列轮循调度机制,每个队列调度时间片按照芯片处理能力设置,一般为远小于业务抖动需求的较小值,可达到数十纳秒。
113.5、出队列:将数据包发送到出接口,以便设备从该接口发送数据包。
114.参考图4为确定性业务传输处理流程图,具体处理流程如下:
115.步骤s1:确定性业务配置和通告
116.参见控制单元中确定性业务配置、路由协议和生成转发表项。确保确定性业务传输路径上各节点将配置的确定性业务转发表项下发到转发平面,包括确定性业务转发表项中业务标识、确定性业务最小带宽、当前传输队列、抖动时间片、抖动时间片传输字节数等信息。需说明,对于转发路径计算,根据确定性业务转发表中业务标识id,查找路由表出接口,如果同一路由具有多条路径时,同一确定性业务相同编号的数据包,采用相同传输路径,不同确定性业务时间片编号的数据包可以采用不同传输路径,也可以采用相同路径传输。
117.步骤s2:首包触发循环转发队列位置
118.各网络节点在收到第一个某确定性业务的数据包时,对该网络节点中该确定性业务的转发表项进行更新,主要包括计算确定性业务时间片编号、当前编号传输开始队列等信息,根据该业务抖动需求可以计算出该确定性业务时间片编号对应数据包最晚调度队列。需要注意的是,接入设备、转发设备和出口网络设备计算当前编号传输开始队列时有差异,接入设备和转发设备可直接映射,而出口网络设备则需要等待一个抖动需求时间片,以便进行整形。
119.步骤s3:业务队列映射
120.接入设备在收到某确定性业务的数据包时,计算确定性业务时间片编号,并将该编号信息填入数据包相应字段,对ip报文,填入到dscp的字段(确定性业务标识6元组之一,但未得到应用)。对于其他类型报文,如mpls报文则填入相应的优先级字段或者d-cw字段中标识包系列号字段。至少可表示256个该业务的抖动时延传输时间片的报文。
121.步骤s4:确定性业务入队列
122.网络设备在进行调度前,每个确定性业务数据包插入队列时,获取确定性业务时间片编号、当前该业务的确定性业务时间片编号传输开始队列等信息,按照确定性业务入队列规则插入调度队列中。参考图5为确定性业务入队列流程图,详细说明参见随后内容。
123.步骤s5:确定性业务传输队列比例控制
124.相同编号的数据包入队列进行调度时,根据确定性业务时间片编号传输开始队列和传输结束队列,按比例放入到合适的调度队列中。确保调度时间差值不超过抖动需求。参考图6为确定性业务拥塞控制方法流程图,详细说明参见随后内容。
125.步骤s6:基于最小调度周期的轮循调度队列
126.网络设备对确定性业务和非确定型业务调度队列分开,对确定性业务,网络设备基于轮循调度队列机制,根据预留总带宽大小,设置轮循队列中每个调度队列长度。逐队列发送数据包,每个队列传输时间固定,每队列业务调度时,按照先进先出原则调度。
127.网络设备所需要的最小队列数量根据确定性业务的最小抖动需求计算。例如:最小队列调度周期时间为1us,确定性业务抖动需求为20us,根据前面所述,确定性业务抖动传输时间片设置为10us,每个时间片需要10个队列,单台网络设备如果考虑发送、传输和接收分开,共需3*10个队列,即 30个队列为最少队列数量,现有网络设备实际支持数量更多。
128.每个队列长度根据总预留带宽计算,示例如下:假设循环队列总数100 个,每个队列调度时间为1us,总的预留带宽为4000mbps,则队列长度为: 4000mbps
×
100us/8=50000byte,每队列长度为500字节。
129.步骤s7:确定性业务时间片编号和开始传输队列调整
130.确定性业务时间片通过首包触发调度周期,为避免由于传输过程中导致与实际调度周期之间的差异,确定性业务一个抖动时间片对应的队列传输完成后,统计超过编号数据包数量和落后编号数据包数量。根据统计信息,调整确定性业务时间片与调度周期的对应关系。参考图7为确定性业务时间片编号和开始传输队列调整流程图,详细说明参见随后内容。
131.在步骤s4中,确定性业务入队列,参考图5为确定性业务入队列流程图,具体处理流程如下:
132.步骤s401:接入设备转发处理。在入队列时,应确保当前数据包距离调度转发出设备满足抖动需求计算的时间段内转发,该时间段称为确定性业务的抖动传输时间片。
133.步骤s402:转发设备处理。收到确定性业务数据包时,首包开始触发该业务的确定性业务时间片编号与当前传输队列的对应关系,记录当前传输的确定性业务时间片编号。收到的确定性业务时间片编号与当前转发的确定性业务时间片编号差值如果超过预设值(例如3),说明已不满足抖动需求,需要进行丢弃。相同编号的数据包入队列进行调度时,确保调度时间差值不超过抖动需求。
134.步骤s403:出口设备进行整形。收到确定性业务数据包时,同一确定性业务时间片
编号的第一个数据包时,进行缓存,等待一个该业务的抖动传输时间片后,将收取的同一编号数据包在下一个抖动传输时间片内全部线性发送,在发送过程中收到的相同确定性业务时间片编号报文,也需要在同一时间片内发送。
135.步骤s404:中继节点处理。在确定性业务传输路径上,可以配置中间网络设备作为中继节点。中继节点的传输方式和出口网络设备传输方式一致,确保传输路径较长时,中间经过多级中继节点同步。
136.在步骤5中,确定性业务传输队列比例控制,参考图6为确定性业务传输队列比例控制流程图,具体处理流程如下:
137.步骤s501:获取计算数据包插入位置信息。网络设备中确定性业务进入的队列按照周期轮循进行调度,由于确定性业务1个抖动时间片对应多个调度队列,为进一步消除抖动,对确定性业务调度的控制采用线性比例控制机制。计算数据包插入位置需要获取确定性业务转发表相关信息、确定性业务总带宽、设备循环调度队列总数、每调度队列传输字节数等信息。
138.步骤s502:计算插入的调度起始队列。收到确定性业务数据包时,获取业务标识和确定性业务时间片编号,查询确定性业务转发表,计算确定性业务时间片编号对应的传输开始队列n1、传输最晚队列n2。具体计算方式如下:
139.(1)假设差值a为接收确定性业务时间片编号减去确定性业务转发表中的确定性业务时间片编号(可为正值或者负值)。
140.(2)如果差值a》3,则表明该数据包超过抖动需求,丢弃数据包,在确定性业务转发表中的超过编号数据包字节数增加相应统计信息。
141.(3)如果a《-3,则表明该数据包超过抖动需求,丢弃数据包,在确定性业务转发表中的落后编号数据包字节数增加相应统计信息。
142.(4)否则,如果-3≤a≤3,确定性业务时间片编号对应的传输开始队列n1=当前编号数据包传输结束队列=当前编号传输开始队列+a
×
抖动时间片/每队列传输时间片。
143.数据包传输最晚队列n2=当前编号传输开始队列+(a+1)
×
抖动时间片/每队列传输时间片。
144.从以上计算可以看出,如果接收确定性业务时间片编号与确定性业务转发表中当前的确定性业务时间片编号相等,则传输开始队列n1与确定性业务转发表中的当前编号传输开始队列相等,传输最晚队列n2与前面计算的当前编号数据包传输结束队列相等。
145.步骤s503:计算确定性业务负载比例。统计调度队列n1至n2中,已收到该业务数据包的字节数,计算该业务已接收字节数与抖动时间片传输字节数的比例q。
146.步骤s504:计算该业务数据包插入队列位置为:n3=n1+q
×
(n2-n1),对n3进行取整,即为需要插入的循环调度周期中的队列编号。注意如果n3 超过循环调度队列总数,则将n3减去循环调度队列总数作为插入的队列编号。
147.步骤s505:插入数据包到调度队列。如果n3队列未满,则直接插入转发的数据包。否则按照n3-1、n3+1、n3-2、n3+2的顺序,直至n1到n2之间的所有队列,找到有空闲队列后,则插入转发的数据包。并增加确定性业务传输统计信息。
148.步骤s506:增加预留总带宽。如果队列n1至n2之间的总剩余带宽小于总带宽的10%,应增加确定性业务预留的最小保证带宽,可通过以下两种方式实现:(1)减少每队列
传输时间片,使单位时间可传输更多队列; (2)或者增加每队列传输时间片内可以传输的字节数,增加单位时间片内传输数据量。为处理简单,本发明建议通过方式(2)增加每队列传输时间片内可以传输的字节数扩大带宽,即增加调度队列长度。为避免频繁调整,增加比例为50%。
149.步骤s507:减少预留总带宽。如果所有确定性业务在一个循环调度周期内,均能在3个队列内能找到空闲位置,且所有确定性业务总带宽小于预留总带宽的50%,则可减少10%的确定性业务预留总带宽,以便提高设备带宽利用率。
150.在步骤s6中,确定性业务时间片编号调整,参考图7为确定性业务时间片编号调整流程图,具体处理流程如下:
151.步骤s601:当前传输队列不小于当前编号数据包传输结束队列时,对确定性业务转发表中确定性业务时间片编号进行调整。将该确定性业务转发表中确定性业务时间片编号加1,当前编号传输开始队列等于当前编号数据包传输结束队列加1。
152.步骤s602:计算本周期异常的字节数。计算超过编号数据包字节数减去落后编号数据包字节数之差b(可为正值或者负值),并计算b与抖动时间片传输字节数的比值c。
153.步骤s603:计算当前传输队列微调整范围。如果c不为0,查询确定性业务转发表中确定性业务时间片编号对应的当前编号传输开始队列n1,并计算出传输最晚队列n2,计算需要调整后的当前编号传输开始队列数值,具体计算如下:
154.n=n1+c
×
(n2-n1)
155.对计算的n值进行取整,作为当前编号传输开始队列。
156.步骤604:对当前编号传输开始队列进行调整为n并清除统计数值。将超过编号数据包字节数和落后编号数据包字节数清0,以便下一周期的调整。
157.通过以上每周期的调整,避免由于确定性业务时间片编号通过首包触发调度队列时,传输过程中导致实际调度周期之间的差异,每台网络设备统计确定性业务不同时间片之间的数据包分布情况,根据统计信息,调整确定性业务时间片编号与调度队列的对应关系。
158.进一步地,本发明实施例还提供了一种基于抖动时延的确定性业务传输装置,包括控制单元和转发单元,其中:
159.所述控制单元,用于完成确定性业务的配置、路由协议和生成转发表项;
160.所述转发单元,用于实现收到数据包时,对确定性业务映射的队列进行计算和队列控制计算,根据计算结果对数据包进行入循环调度队列,队列管理和调度根据时间片进行调度到出接口,出队列将数据包发送到网络设备出接口发出。
161.进一步地,所述控制单元包括确定性业务配置模块、路由协议模块和生成转发表项模块,其中:
162.所述确定性业务配置模块,用于在确定性业务接入设备配置相应确定性业务,对于ip报文基于5元组,对于mpls报文基于s-label进行确定性业务标识;配置确定性业务的最大抖动需求、最小时延需求、带宽需求信息,所述最小时延需求用于路由计算满足端到端的路径,最大抖动需求用于确定性业务调度的时间片大小;
163.所述路由协议模块,用于根据网络拓扑情况,计算满足确定性业务最小时延需求的路径,并将确定性业务及抖动需求通告给路径中的所有节点,路由协议在计算或者从接
入设备学习到确定性业务的转发路径和业务需求后,生成确定性业务转发表并下发到转发单元;
164.所述生成转发表项模块,用于针对路由协议生成的确定性业务转发表项,根据确定性业务的抖动需求,设置确定性业务时间片大小为该业务的抖动传输时间片,以便转发单元进行数据包转发时,报文编号相同数据包在同一段时间片内发送。
165.进一步地,所述确定性业务转发表包括:
166.业务标识:对于ip报文,确定性业务标识由五元组组成,对于mpls 报文,通过mpls标签对确定性业务进行标识;
167.确定性业务最小带宽:表示确定性业务传输时需要预留的最小带宽;
168.当前传输队列:表示设备确定性业务循环队列传输中,当前正在传输的队列编号;
169.确定性业务时间片编号:表示确定性业务正在传输数据包的基于抖动编号,确定性业务时间片编号在入接口网络设备根据时钟信息和该业务的抖动需求进行哈希计算的值;
170.当前编号传输开始队列:表示确定性业务当前编号数据包,在轮循传输队列中开始传输的队列;
171.抖动时间片:表示确定性业务抖动需求值,,其数值大小决定了当前编号数据包传输结束队列;
172.抖动时间片传输字节数:表示确定性业务在抖动时间片内传输的字节数;
173.超过编号数据包字节数:记录接收确定性业务时间片编号大于当前传输确定性业务时间片编号的数据包字节数;
174.落后编号数据包字节数:记录接收确定性业务时间片编号小于当前传输确定性业务时间片编号的数据包字节数。
175.进一步地,所述转发单元包括业务队列映射模块、入队列模块、队列控制模块、队列管理和调度模块,以及出队列模块,其中:
176.所述业务队列映射模块,用于接收控制单元下发的确定性业务转发表信息,并根据确定性业务首包完善确定性业务转发表信息,在轮循调度周期结束和业务时间片调度结束时,对确定性业务时间片编号信息进行动态调整;
177.所述入队列模块,用于在转发单元接收到确定性业务数据包时,查询确定性业务转发表,通过确定性业务转发表计算插入循环调度队列位置范围,并满足业务的抖动需求;
178.所述队列控制模块,用于根据队列中该业务收包情况和整体收包状况,按比例反馈控制机制,计算插入的队列具体位置,同时根据循环队列调度情况,动态调整确定性业务总的预留带宽;
179.所述队列管理和调度模块,用于将所有调度队列环形排列,各转发设备采用多个队列轮循调度机制,每个队列调度时间片按照芯片处理能力设置;
180.所述出队列模块,用于将数据包发送到出接口,以便设备从该接口发送数据包。
181.综上所述,本发明实施例利用应用层窗口机制对于局部无需保序,实现按时间片分组传输,无需全网时钟同步,可实现基于时间片的调度和保序。根据抖动需求进行确定性业务时间片编号并传输,减少编号数量,可用于广域网传输;根据时间信息和抖动需求表示的确定性业务时间片编号进行调度,保证端到端传输抖动需求;按比例的反馈调度机制,动
态预留带宽调整,避免丢包和排序;本发明实施例与现有确定性网络技术相比,通过基于时钟信息和抖动需求进行确定性业务时间片编号,解决了顺序编号的复杂性,解决了时隙调度严格的时钟同步需求,可实现广域网端到端传输;本发明实施例与复杂的确定性网络调度技术相比,通过可编程设备增加几个寄存器和简单的逻辑运算,实现按比例的反馈调度机制,解决了广域网调度机制匮乏,避免帧抢占和逐流带宽预留等复杂机制,可实现端到端传输的抖动需求和时延需求。
182.实施例3
183.实施例3为对前面两个实施例的简单示例。
184.参考图8为确定性业务数据包调度示意图,网络拓扑中一条确定性业务流f1传输为例,说明实现确定性抖动的过程。
185.网络设备s1最小队列调度周期时间为1us,确定性业务f1抖动需求为 20us,根据前面所述,确定性业务抖动传输时间片设置为10us,每个时间片需要10个队列,假设循环队列总数100个,每个队列调度时间为1us,总的预留带宽为4000mbps,则队列长度为:4000mbps
×
100us/8=50000byte,每队列长度为500字节。
186.其他设备信息和网络设备s1计算信息方法一样,为方便叙述,在此假定所有设备调度周期和队列数一致。
187.1、在确定性业务f1的接入路由器s1(源节点)上配置该业务信息,包括带宽(设为1000mbps)、目的节点(假设为s9)、源端到终端时延需求 (设为50ms)、源端到终端抖动需求(设为20us,远超过工业控制2ms的需求)等,s1将这些信息扩散到网络各传输节点s2、s3...sn中。
188.2、网络中各节点收到信息后,判断时延需求,计算业务流传输的路径 (各节点信息相同、算法相同,计算的路径也相同),假定为 s1-》s3-》s7-》s8-》s9,路径上各节点将该确定性业务f1的确定性业务转发表下发到控制平面。转发表项仅包含业务标识f1、确定性业务最小带宽(1000mbps)、抖动时间片(10us)、抖动时间片传输字节数(50000字节),假定每个队列调度时间为1us,共有100个队列,则每个队列长度为 500字节。
189.3、确定性业务f1开始传输时,接入设备s1收到该业务数据包p1时,除流信息之外,根据当前时刻计算时间片编号,假定为15(当前时刻整除抖动需求10us),下一个数据包p2如果间隔时间比较短,时间片编号依然为15,假定p3~p5时间片编号为16,p6~p10时间片编号为18。
190.4、接入路由器s1收到数据包p1时当前传输的队列为q1(假设为10), s1收到p2时,计算时间片编号为15,应该放置的队列为10~20中的某一个队列,具体计算时根据已收到数据包长度以及每个周期内传输字节数,按比例放入相应的队列,假定p1包长250字节,每个时间片传输1250字节,则p2放置的队列为10+10
×
250/1250=12。p3~p5数据包序号为16,应放入队列20~30中,假设p3放入队列20,p4和p5类似p2计算放入队列 22和28;p6~p10放入队列40~50,按照线性比例插入相应的队列中。
191.5、中间转发节点s3收到p1时,记录转发表响应信息,并根据当前传输队列,将首个时间片编号为15的数据包放入队列15,则按照线性比例原则,类似s1节点,将数据包p2放入队列15~25中的某一个,一般为17;数据包p3~p5放入队列26~36中,数据包p6~p10放入队列46~56中。
192.6、中间节点s7、s8处理方式类似于节点s2。各节点按照顺序循环调度队列。
193.7、最后节点s9计算插入队列时,进行偏移一个周期时间片,以便进行整形。例如收到p1数据包,应该插入队列50,实际插入时,由于是尾节点,插入队列60,p2插入队列62,依次类推,p3~p5插入队列70、72和 78,p6~p10插入队列80~90中。即和前面节点一样按照线性比例插入方式进行计算插入的队列,只是作为尾节点需要进行偏移一个周期时间片进行整形。
194.各节点按照时间片轮循调度,经过以上传输,数据包p1~p10在各转发节点尽量按照相同的时间间隔进行传输,避免由于传输距离较长或者中间其他节点不支持确定性传输时,出现各转发节点收包时间不一致导致最终各数据包之间抖动较大。虽然同一传输时间片内(时间片编号相同)数据包可能出现乱序,造成的抖动最大为一个时间片长度(本示例设置为抖动需求的一半10us),此外,由于一个时间片大小有限,终端只需要很少的缓存即可进行重新排序。
195.以上简单示例仅示意单个确定性业务的传输过程,对于多个确定性业务,各节点需要按照本发明中对队列满和保证带宽的动态变化的处理。
196.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1