CN118138505A - 一种报文传输方法、装置及设备 - Google Patents
一种报文传输方法、装置及设备 Download PDFInfo
- Publication number
- CN118138505A CN118138505A CN202410354936.8A CN202410354936A CN118138505A CN 118138505 A CN118138505 A CN 118138505A CN 202410354936 A CN202410354936 A CN 202410354936A CN 118138505 A CN118138505 A CN 118138505A
- Authority
- CN
- China
- Prior art keywords
- queue
- deterministic
- delay
- sub
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000001514 detection method Methods 0.000 claims description 56
- 238000003860 storage Methods 0.000 claims description 33
- 238000012937 correction Methods 0.000 claims description 16
- 230000001360 synchronised effect Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000011144 upstream manufacturing Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 239000000523 sample Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种报文传输方法、装置及设备,该方法包括:接收确定性业务流;基于接收确定性业务流的接收时间戳和发送时间戳,计算路径延时;获取上一级设备与中间转发设备之间的端到端确定延时,并基于端到端确定延时和路径延时,计算目标补偿延时;基于目标补偿延时和已配置的抖动控制精度,计算队列补偿数量,并基于环形调度队列的当前调度子队列和队列补偿数量,确定目标子队列;将确定性业务流存储至目标子队列;从当前调度子队列开始,依次遍历环形调度队列中的每个子队列,在调度到目标子队列时,从目标子队列中读取确定性业务流,并将确定性业务流发送给下一级设备。通过本申请方案,可以实现确定性时延控制,有效降低时延控制误差。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文传输方法、装置及设备。
背景技术
DetNet(Deterministic Network,确定性网络)可以在一个网络域内为承载业务提供确定性业务功能,这些确定性业务功能可以包括时延、丢包率等。TSN(Time SensitiveNetworking,时间敏感型网络)是基于局域网实现的确定性网络,在TSN中,通过采用CQF(Cyclic Queuing and Forwarding,周期排队转发)确保转发层面的确定性传输,从而为承载业务提供确定性业务功能。
为便于描述,确定性网络中传输的具有确定性业务功能(如时延、丢包率等)的业务流称为确定性流。针对不同于确定性流的其它业务流,可以按照尽力而为转发的方式,因此,将不同于确定性流的其它业务流称为尽力而为流。
发明内容
有鉴于此,本申请提供了一种报文传输方法、装置及设备,用以解决/实现…的问题。
第一方面,本申请提供一种报文传输方法,应用于中间转发设备,所述方法包括:
接收确定性业务流,所述确定性业务流包括上一级设备发送确定性业务流的发送时间戳,且所述上一级设备是在确定性业务流中添加发送时间戳的设备;
基于接收所述确定性业务流的接收时间戳和所述发送时间戳,计算路径延时;
获取所述上一级设备与所述中间转发设备之间的端到端确定延时,并基于所述端到端确定延时和所述路径延时,计算目标补偿延时;
基于所述目标补偿延时和已配置的抖动控制精度,计算队列补偿数量,并基于环形调度队列的当前调度子队列和所述队列补偿数量,确定目标子队列;
将所述确定性业务流存储至所述目标子队列;
从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列,在调度到所述目标子队列时,从所述目标子队列中读取所述确定性业务流,并将所述确定性业务流发送给下一级设备。
第二方面,本申请提供一种报文传输装置,应用于中间转发设备,所述装置包括:
接收模块,用于接收确定性业务流所述确定性业务流包括上一级设备发送确定性业务流的发送时间戳,且所述上一级设备是在确定性业务流中添加发送时间戳的设备;
确定模块,基于接收所述确定性业务流的接收时间戳和所述发送时间戳,计算路径延时;获取所述上一级设备与所述中间转发设备之间的端到端确定延时,并基于所述端到端确定延时和所述路径延时,计算目标补偿延时;基于所述目标补偿延时和已配置的抖动控制精度,计算队列补偿数量,并基于环形调度队列的当前调度子队列和所述队列补偿数量,确定目标子队列;
存储模块,用于将所述确定性业务流存储至所述目标子队列;
控制模块,用于从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列,在调度到所述目标子队列时,从所述目标子队列中读取所述确定性业务流,并将所述确定性业务流发送给下一级设备。
第三方面,本申请提供一种电子设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述示例的报文传输方法。
由以上技术方案可见,本申请实施例中,中间转发设备在接收到确定性业务流之后,基于确定性业务流的接收时间戳和发送时间戳计算路径延时,基于端到端确定延时和路径延时计算目标补偿延时,基于目标补偿延时和抖动控制精度计算队列补偿数量,基于环形调度队列的当前调度子队列和队列补偿数量确定目标子队列,将确定性业务流存储到目标子队列。通过依次遍历环形调度队列中的每个子队列,将子队列中的确定性业务流发送给下一级设备。
在上述过程中,可以基于环形调度队列提供精确的时延抖动控制,保证中间转发设备的时延抖动是端到端确定延时,实现确定性时延控制,实现对运营商网络的分段时延控制,有效降低时延控制误差,降低设备实现复杂度,提高部署效率。能够容忍运营商网络较大的时延抖动范围,能够支持跨不同运营商网络部署。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是一种实施方式中的IP网络的时延概率分布曲线的示意图;
图2是一种实施方式中的单跳时延分析的示意图;
图3是一种实施方式中的确定性IP网络的时延概率分布曲线的示意图;
图4是一种实施方式中的微突发及突发迭代的示意图;
图5A和图5B是一种实施方式中的工业互联网场景的示意图;
图6是一种实施方式中的报文传输方法的流程示意图;
图7A是一种实施方式中的环形调度队列的示意图;
图7B是一种实施方式中的环形调度队列的调度过程示意图;
图8是一种实施方式中的报文传输方法的流程示意图;
图9A是一种实施方式中的报文传输装置的结构示意图;
图9B是一种实施方式中的电子设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在智能电网场景中,通过采集广域网中多点的电流信息进行差动保护的计算和故障定位,对通信的时延、抖动和丢包率都有确定性要求。比如说,要求时延为3~10ms,抖动小于100us,2个方向的不对称性时延小于200us。
在工业互联网场景中,对实时性的需求,根据应用场合大致分为3个等级:工厂级的控制需要响应时间在1s左右,过程级的控制需要响应时间在10~100ms以内,实时性的控制需要响应时间在1ms以下,抖动需要达到几十微秒。
针对智能电网场景和工业互联网场景,对网络定义了严格的低时延、低抖动、低丢包率和高可靠性的承载需求。参见表1所示,定义了这些场景下的端到端时延、抖动、可靠性、带宽等多个网络性能。当然,除了智能电网场景和工业互联网场景,在其它场景下也具有类似的网络性能需求。
表1
针对低时延、低抖动、低丢包率等网络性能需求,低抖动是重要的控制指标,低抖动是指控制时延抖动变化较小。比如说,针对第一次报文传输,报文传输延时是10ms,针对第二次报文传输,报文传输延时是10ms,则表示时延抖动为0,即时延抖动变化较小。若针对第二次报文传输,报文传输延时是15ms,则表示时延抖动为5ms,即时延抖动变化较大,不满足低抖动的网络性能需求。
然而,如果报文传输过程中需要跨越运营商网络,即发送端向接收端发送报文时,报文需要跨越运营商网络,那么,时延抖动无法控制,即无法满足低抖动的网络性能需求。比如说,无论从边缘云还是中心云,报文在到达工业控制现场时,均需要穿越多级运营商网络,从而导致时延抖动无法控制。
在IP网络中,由于带宽复用和IP尽力而为的转发特性,会出现报文排队带来延时变化,从而导致IP报文传输不可控。IP网络的时延概率分布曲线,可以参见图1所示。在IP网络中,由于存在时延长尾效应而无法实现确定性时延。
为了消除长尾效应实现确定性时延,需要分析时延的组成,了解长尾效应的产生原因。参见图2所示,为单跳时延分析的示意图,图2是以单跳场景来分析时延的组成。从图2可以看出,单跳时延=节点内时延+链路时延。
链路时延是指数据在链路上传输的时延,主要取决于设备之间的链路距离及链路传输速率。在一个稳定的网络拓扑中,链路距离及链路传输速率相对稳定,因此,链路时延几乎没有变化的空间,可以理解为链路时延基本不变。
节点内时延是指设备内部操作的耗时,主要为排队时延。在不同负载情况下,节点内时延变动很大,图1所示的长尾效应主要是节点内时延引起。
参见图3所示,为确定性IP网络的时延概率分布曲线,该时延概率分布曲线是确定性IP网络的目标,即压低时延上界使其无限逼近小时延。
针对保障服务质量(Quality of Service,QoS)的技术,如优先级队列调度、资源预留等,这些技术无法实现确定性时延,其原因是微突发。
比如说,参见图4所示,为微突发及突发迭代的示意图,假设上游节点A有10个入接口和1个出接口,所有接口的速率相同。假设每个入接口都有一条数据流,并为此数据流预留5%的接口带宽资源。假设10个入接口的10条数据流都是同一优先级,10条数据流在上游节点A的出接口汇聚时,总共占用出接口的50%的带宽资源,因此,这些数据流不存在拥塞的情况。然而,由于对每条数据流的到达时间没有控制,因此,若10条数据流同时到达,则会在出接口排队等待调度,排队的产生会挤压原本流内报文的间隙,形成微突发。
假设下游节点B有10个上游节点(每个上游节点的数据流传输情况与上游节点A类似),则微突发的情况会进一步累积,形成微突发迭代。
显然,在数据流经过多跳之后,确定性时延将无从保证。
继续参见图4所示,即使数据流传输配合资源预留及优先级调度,也无法实现确定性时延。其主要原因是:由于对每个数据流的行为缺乏控制,导致排队形成微突发,而排队形成微突发后,导致确定性时延将无从保证。
针对上述发现,本申请实施例中提出一种报文传输方法,通过控制每个数据流(也可以称为业务流)的行为,不能容许数据流随意发送(接收),而且为每个数据流分配一个特定的发送(接收)时间周期。通过控制每个数据流的行为来避免冲突,控制节点内部排队时延,消除长尾效应实现确定性时延。
在很多业务场景下,如智能电网场景和工业互联网场景等,业务可以容忍较大的时延,但是,业务不能容忍较大的时延抖动,即具有低时延抖动的需求。因此,在业务流从发送端到接收端时,时延需要精确控制在一定范围内。比如说,若要求时延抖动为1ms,则时延可以是19.5ms~20.5ms。
为了满足低时延抖动的需求,本申请实施例中提出一种报文传输方法,针对跨越运营商网络的业务流传输过程,提出一种精确的时延抖动控制方法。
以工业互联网场景为例,参见图5A所示,为工业互联网场景的示意图。云平台跨运营商网络(包括5G网络)与工业现场互联。运营商网络可以包括运营商5G接入网、宽带接入网、城域网、骨干网等。当云平台与工业现场的终端交互业务流(即数据流)时,可以提出一种精确的时延抖动控制方法。
一个例子中,该业务流可以是信息交互类业务流、数据采集类业务流、管理控制类业务流,不同类型的业务流对于网络性能的要求可以不同。信息交互类业务流的需求是高速率传输、大带宽。数据采集类业务流的需求是强大接入能力(百万连接/平方公里)、低功耗、抗干扰能力。管理控制类业务流的需求是毫秒级的端到端时延、微秒级的时延抖动、数据传输成功率可靠性高。
针对图5A所示的工业互联网场景,可以将设备区分为一级确定性控制设备、二级确定性控制设备、三级确定性控制设备,并在云平台额外部署统一确定性管理平台,参见图5B所示,为工业互联网场景的示意图。
统一确定性管理平台。负责进行工业互联网的确定性管理,包括但不限于设备注册、确定性时延分配,也可以结合SDN***,实现转发路径管理。
一级确定性控制设备。可以将云平台与运营商网络的连接设备(即云平台的出口设备)作为一级确定性控制设备,可以是DC(Data Center,数据中心)网关或者VPC(VirtualPrivate Cloud,虚拟私有云)设备等。可以在DC网关或者VPC设备构建第一级确定性控制点。针对云平台向工业现场发送的业务流,一级确定性控制设备负责在业务流中添加时间戳,并对业务流进行延时控制。针对工业现场向云平台发送的业务流,一级确定性控制设备负责进行延时控制。
二级确定性控制设备。可以将运营商网络内的设备作为二级确定性控制设备。比如说,在运营商网络中寻找合适位置放置POP(Point of Production,生产点)设备,这些POP设备实现确定性终端的就近接入(即POP设备与工业现场的终端就近接入),可以在POP设备构建第二级确定性控制点。针对云平台向工业现场发送的业务流,二级确定性控制设备负责在业务流中添加时间戳,并对业务流进行延时控制。针对工业现场向云平台发送的业务流,二级确定性控制设备负责在业务流中添加时间戳,并对业务流进行延时控制。
三级确定性控制设备。将工业现场与运营商网络的连接设备(工业现场的出口设备)作为三级确定性控制设备,可以是CPE(Customer Premises Equipment,用户端设备)设备。在CPE设备构建第三级确定性控制点,CPE设备以有线、5G、LTE、WiFi等方式与运营商网络连接。针对云平台向工业现场发送的业务流,三级确定性控制设备负责对业务流进行延时控制。针对工业现场向云平台发送的业务流,三级确定性控制设备在业务流中添加时间戳,并进行延时控制。
参见图5B所示,一级确定性控制设备、二级确定性控制设备、三级确定性控制设备,均需要连接时钟***,以实现不同级确定性控制设备的本地绝对时间的获取。不同级确定性控制设备的时钟***无需实现相互时间同步,只需要实现频率同步即可,即每一级时钟精度保持在一定范围即可。
时钟***可以根据不同级的确定性控制设备的部署条件进行选择,比如说,二级确定性控制设备可以选择运营商网络的时钟***(即时钟***2为运营商网络的时钟***),一级确定性控制设备可以选择云平台的时钟***(即时钟***1为云平台的时钟***),三级确定性控制设备可以选择GPS时钟***(即时钟***3为GPS时钟***)。当然,上述只是时钟***的示例。各确定性控制设备在定期与时钟***同步的情况下,时间误差精度很容易控制。
为了建立确定性管理,一级确定性控制设备(如DC网关)、二级确定性控制设备(如POP设备)、三级确定性控制设备(如CPE设备)可以向统一确定性管理平台注册,统一确定性管理平台可以得到这些设备的地址信息。
工业现场的终端(或其它设备)可以将确定性流特征发送给统一确定性管理平台,表示需要对具有确定性流特征的业务流进行延时控制。
其中,确定性流特征可以包括但不限于以下至少一种:业务流的三元组信息(或五元组信息)、业务流的大小、工业现场的终端的MAC地址、工业现场的终端的IP地址、云平台的IP地址、报文端口,对此确定性流特征不做限制。
基于确定性控制设备的地址信息,统一确定性管理平台将确定性流特征发送给确定性控制设备(如一级确定性控制设备、二级确定性控制设备、三级确定性控制设备),使得确定性控制设备获知对哪些业务流进行延时控制。
统一确定性管理平台还可以根据带宽租用情况,为确定性控制设备分配上行端口的流量限速信息,并为确定性控制设备分配下行端口的流量限速信息。
为了建立确定性管理,针对每个一级确定性控制设备,该一级确定性控制设备可以存储每个二级确定性控制设备与本一级确定性控制设备的端到端确定延时,并存储云平台与本一级确定性控制设备的端到端确定延时。
针对每个二级确定性控制设备,该二级确定性控制设备可以存储每个三级确定性控制设备与本二级确定性控制设备的端到端确定延时,并存储每个一级确定性控制设备与本二级确定性控制设备的端到端确定延时。
针对每个三级确定性控制设备,该三级确定性控制设备可以存储工业现场的每个终端与本三级确定性控制设备的端到端确定延时,并存储每个二级确定性控制设备与本三级确定性控制设备的端到端确定延时。
一个例子中,以存储二级确定性控制设备与一级确定性控制设备的端到端确定延时为例,则可以采用如下步骤存储该端到端确定延时:
步骤S11、二级确定性控制设备向一级确定性控制设备发送探测报文(如多个探测报文),一级确定性控制设备接收二级确定性控制设备发送的探测报文。
一个例子中,二级确定性控制设备可以主动向一级确定性控制设备发送探测报文。另一个例子中,统一确定性管理平台根据拓扑位置,确定二级确定性控制设备与一级确定性控制设备具有连接关系,向二级确定性控制设备下发时延测量指令,触发二级确定性控制设备向一级确定性控制设备发送探测报文。
二级确定性控制设备可以根据部署条件选择时钟***(如运营商网络的时钟***、GPS时钟***等),并与该时钟***进行时间同步。
在此基础上,二级确定性控制设备在发送探测报文时,可以将探测报文的发送时间戳添加到该探测报文中,且发送时间戳是基于该时钟***的时间。
步骤S12、一级确定性控制设备确定该探测报文的接收时间戳。
一级确定性控制设备可以根据部署条件选择时钟***(如运营商网络的时钟***、GPS时钟***等),并与该时钟***进行时间同步。
在此基础上,一级确定性控制设备在接收到探测报文时,可以确定该探测报文的接收时间戳,且接收时间戳是基于该时钟***的时间。
步骤S13、一级确定性控制设备基于该探测报文的发送时间戳和该探测报文的接收时间戳,确定该探测报文对应的延时值。比如说,可以将该接收时间戳与该发送时间戳的差值,作为该探测报文对应的延时值(即单向延时值)。
步骤S14、一级确定性控制设备从多个探测报文对应的延时值中选取最大值。
由于探测报文需要跨越运营商网络传输,延时值不可控,出现明显抖动分布,因此,为了提高测量准确性,可以在不同时刻反复多次测量,即在不同时刻发送多个探测报文,每个探测报文对应一个延时值。基于多个探测报文对应的延时值,一级确定性控制设备可以从这些延时值中选取出最大值。
步骤S15、一级确定性控制设备基于该最大值(即选取出的最大值),确定二级确定性控制设备与本一级确定性控制设备之间的最大延时。
一个例子中,若一级确定性控制设备与二级确定性控制设备的时间同步、且时钟频率同步,则基于选取的最大值确定该最大延时,如选取的最大值作为该最大延时。比如说,时间同步是指:一级确定性控制设备和二级确定性控制设备采用相同的时钟***,即,一级确定性控制设备和二级确定性控制设备的本地时间完全相同。此外,时钟频率同步是指:一级确定性控制设备采用的时钟***与二级确定性控制设备采用的时钟***的时钟频率同步。
一个例子中,若一级确定性控制设备与二级确定性控制设备的时间不同步、且时钟频率同步,则基于选取的最大值和时间修正值确定该最大延时,如选取的最大值与时间修正值之和作为该最大延时。比如说,时间不同步是指:一级确定性控制设备和二级确定性控制设备采用不同的时钟***,即,一级确定性控制设备和二级确定性控制设备的本地时间可能相同,也可能不同。
时间修正值用于修正一级确定性控制设备与二级确定性控制设备之间的时钟***差异,时间修正值可以是一个经验值,可以根据实际需求进行设置。
比如说,由于一级确定性控制设备和二级确定性控制设备不构成时间同步关系,发送时间戳(记为A)和接收时间戳(记为B)可能存在先后误差,如B比A时间早,从而导致探测报文对应的延时值为负值。如B比A时间早50ms,A为0:0:100,延时为15ms,则B可能为0:0:065,B减去A的差值为-35ms,相当于探测报文对应的延时值为-35ms,这样显得延时值不合常理。
为了避免这种情况,可以在计算延时值时,增加一个修正偏差,记为时间修正值,如500ms,以保证得到的延时值为正值。这个时间修正值只是为了修正不同设备由于各自时钟***的差异而引入的,在后面的计算过程中,都是基于相对值,因此,这个时间修正值的引入并不影响实际确定性时延控制。
步骤S16、一级确定性控制设备基于该最大延时和已配置的保护间隔确定二级确定性控制设备与本一级确定性控制设备之间的端到端确定延时。
一个例子中,考虑到报文接收、帧识别比对、队列计算等处理需要一定的时间,因此,为了确保环形调度机制(即采用环形调度队列的处理过程,参见后续步骤)的可靠运转,可以设置保护间隔(即时间保护间隔)作为安全保护带(也可以称为时间保护带)。在此基础上,可以将该最大延时与该保护间隔之和,作为端到端确定延时,端到端确定延时可以记为TE2E确定时延。
步骤S17、一级确定性控制设备在指定存储介质中存储该端到端确定延时。
综上所述,一级确定性控制设备可以存储二级确定性控制设备与本一级确定性控制设备的端到端确定延时,如最大延时为6ms,保护间隔为3ms,则端到端确定延时为9ms。同理,一级确定性控制设备可以存储云平台与本一级确定性控制设备的端到端确定延时,如最大延时为5ms,则端到端确定延时为8ms。
同理,二级确定性控制设备可以存储三级确定性控制设备与本二级确定性控制设备的端到端确定延时,如最大延时为10ms,则端到端确定延时为13ms。二级确定性控制设备可以存储一级确定性控制设备与本二级确定性控制设备的端到端确定延时,如最大延时为11ms,则端到端确定延时为14ms。
同理,三级确定性控制设备可以存储工业现场的终端与本三级确定性控制设备的端到端确定延时,如最大延时为15ms,则端到端确定延时为18ms。三级确定性控制设备可以存储二级确定性控制设备与本三级确定性控制设备的端到端确定延时,如最大延时为13ms,则端到端确定延时为16ms。
一个例子中,确定性控制设备(如一级确定性控制设备、二级确定性控制设备、三级确定性控制设备)在得到最大延时之后,可以由本确定性控制设备确定端到端确定延时,并在指定存储介质中存储端到端确定延时。
或者,确定性控制设备也可以将最大延时发送给统一确定性管理平台,由统一确定性管理平台确定端到端确定延时,并将端到端确定延时发送给确定性控制设备,由确定性控制设备在指定存储介质中存储端到端确定延时。
一个例子中,不同确定性控制设备对应的保护间隔可以相同或不同,如所有确定性控制设备对应同一个保护间隔,如保护间隔可以为1ms、2ms等。或者,针对每个确定性控制设备,基于该确定性控制设备的软硬件运行速度为该确定性控制设备设置保护间隔,如软硬件运行速度越快,则保护间隔越小。
工业现场的终端向云平台发送确定性业务流时,三级确定性控制设备基于端到端确定延时(终端与本三级确定性控制设备的端到端确定延时),对确定性业务流进行延时控制。二级确定性控制设备基于端到端确定延时(三级确定性控制设备与本二级确定性控制设备的端到端确定延时),对确定性业务流进行延时控制。一级确定性控制设备基于端到端确定延时(二级确定性控制设备与本一级确定性控制设备的端到端确定延时),对确定性业务流进行延时控制。
云平台向工业现场终端发送确定性业务流时,一级确定性控制设备基于端到端确定延时(云平台与本一级确定性控制设备的端到端确定延时),对确定性业务流进行延时控制。二级确定性控制设备基于端到端确定延时(一级确定性控制设备与本二级确定性控制设备的端到端确定延时),对确定性业务流进行延时控制。三级确定性控制设备基于端到端确定延时(二级确定性控制设备与本三级确定性控制设备的端到端确定延时),对确定性业务流进行延时控制。
一个例子中,工业现场的终端向云平台发送确定性业务流时,本申请实施例中提出一种报文传输方法,参见图6所示,该方法可以包括:
步骤601、三级确定性控制设备接收确定性业务流。
一个例子中,工业现场的终端向云平台发送确定性业务流时,可以在确定性业务流中添加发送时间戳,该发送时间戳表示终端发送确定性业务流的时刻。
三级确定性控制设备在接收到确定性业务流之后,确定性业务流包括工业现场的终端的发送时间戳,且可以从确定性业务流中获取发送时间戳。
一个例子中,工业现场的终端向云平台发送的业务流,可能是确定性业务流,也可能是非确定性业务流(即尽力而为流)。基于此,三级确定性控制设备在接收到业务流之后,可以确定该业务流的流量特征是否为已配置的确定性流特征。若是,则可以将该业务流确定为确定性业务流,并从确定性业务流中获取发送时间戳。若否,则可以将该业务流确定为非确定性业务流。
比如说,三级确定性控制设备已经预先存储确定性流特征(如三元组信息(或五元组信息)、业务流的大小、工业现场的终端的MAC地址、工业现场的终端的IP地址、云平台的IP地址、报文端口等),在接收到业务流之后,可以获取业务流的流量特征,并判断该流量特征与已存储的确定性流特征是否相同。
一个例子中,若确定性业务流为IPv6报文,则可以在IPv6报文中增加扩展报文头,如目标选项头,并在目标选项头中增加该发送时间戳。综上所述,若确定性业务流(如IPv6报文)包括扩展报文头,则扩展报文头的目标选项头中包括发送时间戳。三级确定性控制设备可以从扩展报文头的目标选项头中获取发送时间戳,并去除确定性业务流的扩展报文头,得到确定性业务流。
一个例子中,若确定性业务流为采用SRv6(基于IPv6的段路由)封装的IPv6报文,即在设备之间已经建立SRv6连接,则确定性业务流的外层封装了一层SRv6报文头,利用SRv6报文头的流标签字段承载该发送时间戳。SRv6报文头的目的SID字段还可以标识需要对端设备进行处理的不同指令,比如时间戳解析等。综上所述,若确定性业务流包括SRv6报文头,则SRv6报文头的流标签字段中包括发送时间戳。三级确定性控制设备可以从SRv6报文头的流标签字段中获取发送时间戳,并去除SRv6报文头,得到确定性业务流。
当然,上述只是添加发送时间戳的示例,发送时间戳的位置可以有多种方式,对此不做限制。发送时间戳可以精确到微秒级或者更低级别。
步骤602、三级确定性控制设备基于确定性业务流的接收时间戳和确定性业务流的发送时间戳确定路径延时,即确定性业务流在网络中的传输时间。
三级确定性控制设备根据部署条件选择时钟***(如运营商网络的时钟***、GPS时钟***等),并与时钟***进行时间同步。在此基础上,可以确定确定性业务流的接收时间戳,且接收时间戳是基于该时钟***的本地绝对时间。
假设确定性业务流的发送时间戳为T发送时间,确定性业务流的接收时间戳(即本地绝对时间)为T接收时间,则:T路径延时=T接收时间-T发送时间,即为路径延时。
步骤603、三级确定性控制设备获取上一级设备(如工业现场的终端)与本三级确定性控制设备之间的端到端确定延时。比如说,由于指定存储介质中已经存储该端到端确定延时,因此,从指定存储介质中获取该端到端确定延时。
比如说,参见上述实施例,三级确定性控制设备已经存储工业现场的终端与本三级确定性控制设备的端到端确定延时,因此,三级确定性控制设备可以直接获取该端到端确定延时,如端到端确定延时TE2E确定时延为18ms。
步骤604、三级确定性控制设备基于端到端确定延时和路径延时确定目标补偿延时,该目标补偿延时用于表示确定性业务流的补偿时长。
假设端到端确定延时为TE2E确定时延,路径延时为T路径延时,目标补偿延时为间隔T,则采用如下公式确定目标补偿延时:间隔T=TE2E确定延时-T路径延时。
步骤605、三级确定性控制设备基于目标补偿延时和已配置的抖动控制精度确定队列补偿数量,该队列补偿数量用于表示与当前调度子队列间隔的子队列数量。
一个例子中,可以预先配置抖动控制精度,该抖动控制精度表示每经过多长时间对应一个子队列,用于决定子队列数量,可以根据经验配置。比如说,可以基于端到端确定延时和抖动控制精度确定环形调度队列的子队列数量,如端到端确定延时与抖动控制精度的商值,作为环形调度队列的子队列数量。
比如说,抖动控制精度为0.1ms时,若端到端确定延时TE2E确定时延为18ms,则环形调度队列的子队列数量为180,即环形调度队列包括180个子队列,每个子队列对应的调度时长为0.1ms,抖动控制精度表示经过0.1ms对应一个子队列。
比如说,抖动控制精度为10us时,若端到端确定延时TE2E确定时延为18ms,则环形调度队列的子队列数量为1800,即环形调度队列包括1800个子队列,每个子队列对应的调度时长为10us,抖动控制精度表示经过10us对应一个子队列。
综上所述,如果需要提升抖动控制精度,则可以相应增加子队列数量,即子队列数量越多,则抖动控制精度越大,但总的缓存时间是一样的,均是18ms。
一个例子中,可以基于目标补偿延时和抖动控制精度确定队列补偿数量,如目标补偿延时与抖动控制精度的商值作为队列补偿数量。比如说,假设目标补偿延时为11.7ms,抖动控制精度为0.1ms,则队列补偿数量为117(11.7ms/0.1ms)。
步骤606、三级确定性控制设备基于环形调度队列的当前调度子队列和队列补偿数量确定目标子队列,如当前调度子队列与队列补偿数量之和为目标子队列。
一个例子中,可以构建环形调度队列,环形调度队列可以包括多个子队列(或队列),如180个子队列、1800个子队列等,环形调度队列的子队列的数量是基于端到端确定延时和抖动控制精度确定。参见图7A所示,为环形调度队列的示意图,为了方便描述,图7A中以100个子队列(或队列)为例。
比如说,可以采用环形调度方式调度确定性业务流,根据抖动控制精度设置多个子队列,假设端到端确定延时为18ms,抖动控制精度为0.1ms,则一共设置180个子队列,这些子队列构成环形调度关系,采用时间触发进行调度。
以0:0:0:000:000(时:分:秒:毫秒:微秒)为基准,在0ms时刻调度队列0,在0.1ms(0:0:0:000:100)调度队列1,在0.2ms(0:0:0:000:200)调度队列2,以此类推,在17.9ms(0:0:0:017:900)调度队列179。然后,环形调度过程再次循环,重新调度队列0,每过0.1ms调度下一个队列即可。
一个例子中,环形调度队列的当前调度子队列表示当前正在对这个子队列进行调度,比如说,在0.2ms调度队列2时,当前调度子队列为队列2。
假设队列补偿数量为117,当前调度子队列为队列2,则目标子队列为119,假设队列补偿数量为117,当前调度子队列为队列10,则目标子队列为127,以此类推。
步骤607、三级确定性控制设备将确定性业务流存储到目标子队列。
一个例子中,可以基于确定性业务流的流大小和目标子队列中已存储的确定性业务流的流大小,确定待传输流大小,即二者之和作为待传输流大小。若待传输流大小未超过限速阈值,则可以将确定性业务流存储到目标子队列。若待传输流大小超过限速阈值,则禁止将确定性业务流存储到目标子队列。
其中,限速阈值是基于三级确定性控制设备的流量带宽和抖动控制精度确定,且表示抖动控制精度内传输的流量大小不超过限速阈值。比如说,假设抖动控制精度为0.1ms,且流量带宽表示0.1ms内最多传输A大小的流量,那么,限速阈值可以小于或等于A,使得0.1ms内能够传输限速阈值的流量。
比如说,环形调度队列的假设是,在确定的时间片内能够容纳所有确定性业务流,这是一种理想情况,实际可能会由于流量的微突发,导致某个时间片不能容纳所有确定性业务流,从而出现流量溢出,占用下一个时间片。
为了避免出现这种情况,需要对流量进行统一规划,对所有流量总带宽、及单一终端的流量进行约束,确保流量的带宽在一定范围内,以确保环形调度队列的缓存不溢出,每个时间片的调度不越界,即不占用下一个时间片。
比如说,假设一共存在30台终端,总带宽为100Mbs,则,可以限制输入总流量不超过80Mbps,每台终端不超过3Mbps,这些流量需要统一规划,分配在不同的时间片内,从而保证环形调度队列可以正常工作。
考虑到流量不能预测,某时刻可能出现微突发,导致分配的时间片不能容纳所有流量,依然出现拥塞,因此,实际分配时间片时,需要加大约束条件,降低每个端口的输入流量。由于这种流量冲突主要出现在上行流量,在汇聚点上行侧,而工业现场的上行流量一般为小报文,因此能够满足流量约束要求。
如果出现环形调度队列的时间片不能容纳确定性业务流的情况,则说明流量约束出现差错,需要向统一确定性管理平台发送差错信息,统一确定性管理平台在接收到差错信息之后,重新进行计算,对输入流量进行新的限速。
考虑到网络意外情况,对于超过最大延时或端到端确定延时的异常流量,可以选择放入当前调度队列的下一个队列,然后发送异常告警信息。
在上述安全性保障(通过流量约束保障安全性)的前提下,针对接收到的每个确定性业务流,若该确定性业务流对应的待传输流大小未超过限速阈值,则可以将确定性业务流存储到目标子队列,从而避免目标子队列的流量溢出。
一个例子中,假设当前时刻(0时0分0秒7.3毫秒)接收到一个确定性业务流,且确定性业务流的发送时间戳为0时0分0秒0毫秒,则T路径延时=7.3毫秒,且间隔T=TE2E确定延时-T路径延时=18-7.3=11.7毫秒,且队列补偿数量=11.7/0.1=117。
假设环形调度队列的当前调度子队列T当前调度队列=15,则目标子队列为:T调度队列=T当前调度队列+队列补偿数量=15+117=132,即目标子队列为第132个队列。
综上所述,可以将确定性业务流存储到环形调度队列的第132个队列。
步骤608、三级确定性控制设备依次遍历环形调度队列中的每个子队列,从当前遍历的子队列中读取确定性业务流,将确定性业务流发送给二级确定性控制设备,且确定性业务流包括三级确定性控制设备的发送时间戳。
一个例子中,从当前调度子队列开始,每间隔抖动控制精度,开始从环形调度队列中调度当前调度子队列的下一个子队列,将下一个子队列更新为当前调度子队列;在当前调度子队列对应的抖动控制精度内,从当前调度子队列中读取确定性业务流,并将读取的确定性业务流发送给二级确定性控制设备。
比如说,若抖动控制精度为0.1ms,则在第一个0.1ms内,将第一个子队列作为当前调度子队列,将第一个子队列中的确定性业务流发送给二级确定性控制设备。在第二个0.1ms内,将第二个子队列作为当前调度子队列,将第二个子队列中的确定性业务流发送给二级确定性控制设备,以此类推。
一个例子中,在将确定性业务流发送给二级确定性控制设备时,还可以在确定性业务流中添加发送时间戳。比如说,可以为确定性业务流添加扩展报文头,在扩展报文头的目标选项头中增加该发送时间戳。或者,可以在确定性业务流的外层封装SRv6报文头,在SRv6报文头的流标签字段增加该发送时间戳。
一个例子中,在当前调度子队列对应的抖动控制精度内,若当前调度子队列中存在确定性业务流,且存在非确定性业务流,也禁止发送非确定性业务流,从而保证优先发送确定性业务流。或者,在当前调度子队列对应的抖动控制精度内,若当前调度子队列中不存在确定性业务流,且存在非确定性业务流,则发送非确定性业务流,而不是发送下一个子队列中的确定性业务流。
比如说,在第一个0.1ms内,发送第一个子队列中的确定性业务流,在确定性业务流发送完成之后,若第一个0.1ms还有剩余时间,则发送非确定性业务流,而不是发送第二个子队列中的确定性业务流。等到第二个0.1ms,停止发送非确定性业务流,发送第二个子队列中的确定性业务流,以此类推。
综上所述,环形调度队列中的确定性业务流为高优先级报文,是绝对优先报文,需要绝对优先级调度,而非确定性业务流为低优先级报文。为了简化***设计,可以不采用抢占转发机制,在工业环境下,报文多数为小报文,因此,在级别调度时有非确定性业务流正在转发,对延时影响并不大。
一个例子中,参见图7B所示,为环形调度队列的调度过程示意图。
三级确定性控制设备在接收到业务流之后,需要对业务流进行TT帧识别,即区分为TT帧(即确定性业务流)和非TT帧(即非确定性业务流)。针对TT帧,需要进行时间确定性保证,设置为高优先级,采用环形调度队列进行高优先级调度。针对非TT帧,则存储到FIFO队列中,采用低优先级进行调度。
如果确定性业务流的流量大小在统一确定性管理平台分配的流量约束速率以内,则在确定性业务流中添加发送时间戳后发送。如果确定性业务流的流量大小超出统一确定性管理平台分配的流量约束速率,则对确定性业务流进行限速后再发送,在发送时也需要在确定性业务流中添加发送时间戳。
比如说,统一确定性管理平台为三级确定性控制设备分配的速率为3Mbps,如果三级确定性控制设备接收到的流量小于3Mbps,则直接添加发送时间戳后进行发送。如果三级确定性控制设备接收到的流量为5Mbps,则先进行端口流量限速,将流量限制在3Mbps以内,再添加发送时间戳以后进行发送。上述方式虽然引入了一定的延时,但避免了后续端到端整体时延控制的精确性。
在环形调度队列的调度过程中,确定性业务流与非确定性业务流相比,在出口采用不同调度过程,其调度方法参见图7B所示。TT帧即为需要进行时延转发保证的确定性业务流,非TT帧为无需进行时延保证的非确定性业务流。
需要时延保证的确定性业务流采取两级调度,即环形调度+绝对优先两级调度。经过两级调度之后,从三级确定性控制设备输出的确定性业务流实现了严格的时延确定性保障,且确定性业务流经过环形调度,可以吸收路径抖动。非确定性业务流采用QoS调度,图中为简化只采用FIFO队列,未考虑QoS调度。
至此,三级确定性控制设备完成确定性业务流的调度,并将确定性业务流发送给二级确定性控制设备。在此基础上,还可以包括以下步骤:
步骤S21、二级确定性控制设备接收确定性业务流。二级确定性控制设备基于确定性业务流的接收时间戳和确定性业务流的发送时间戳确定路径延时。
步骤S22、二级确定性控制设备获取上一级设备(如三级确定性控制设备)与本二级确定性控制设备之间的端到端确定延时。二级确定性控制设备基于端到端确定延时和路径延时确定目标补偿延时,表示确定性业务流的补偿时长。
步骤S23、二级确定性控制设备基于目标补偿延时和抖动控制精度确定队列补偿数量,基于环形调度队列的当前调度子队列和队列补偿数量确定目标子队列。
步骤S24、二级确定性控制设备将确定性业务流存储到目标子队列。
步骤S25、二级确定性控制设备依次遍历环形调度队列中的每个子队列,从当前遍历的子队列中读取确定性业务流,将确定性业务流发送给一级确定性控制设备,且确定性业务流包括二级确定性控制设备的发送时间戳。
步骤S26、一级确定性控制设备接收确定性业务流。一级确定性控制设备基于确定性业务流的接收时间戳和确定性业务流的发送时间戳确定路径延时。
步骤S27、一级确定性控制设备获取上一级设备(如二级确定性控制设备)与本一级确定性控制设备之间的端到端确定延时。一级确定性控制设备基于端到端确定延时和路径延时确定目标补偿延时,表示确定性业务流的补偿时长。
步骤S28、一级确定性控制设备基于目标补偿延时和抖动控制精度确定队列补偿数量,基于环形调度队列的当前调度子队列和队列补偿数量确定目标子队列。
步骤S29、一级确定性控制设备将确定性业务流存储到目标子队列。
步骤S30、一级确定性控制设备依次遍历环形调度队列中的每个子队列,从当前遍历的子队列中读取确定性业务流,将确定性业务流发送给云平台。一级确定性控制设备将确定性业务流发送给云平台时,不需要添加发送时间戳。
步骤S21-步骤S30的过程与步骤601-步骤608类似,在此不再重复赘述。
一个例子中,云平台向工业现场的终端发送确定性业务流时,确定性业务流的传输与步骤601-步骤608、步骤S21-步骤S30类似,在此不再重复赘述。
综上所述,工业现场的终端向云平台发送确定性业务流(或云平台向工业现场的终端发送确定性业务流)时,确定性业务流会经过确定性控制设备进行转发,确定性业务流在这些确定性控制设备发送时,均被加入确定性控制设备的当前绝对时间(根据需要精确到ms或者0.1ms)。根据确定性控制设备的端到端确定延时添加动态补偿时延,控制确定性控制设备的实际发送时间,以实现端到端的时延保持不变。当运营商网络时延出现抖动,添加的额外时延也会相应发生变化,因为端到端时延等于运营商网络动态变化时延+额外添加的补偿时延,从而可以做到端到端时延保持不变,实现端到端时延精确控制。
由以上技术方案可见,本申请实施例中,可以基于环形调度队列提供精确的时延抖动控制,保证时延抖动是端到端确定延时,实现确定性时延控制,通过设置多级确定性时延控制点,实现对运营商网络的分段时延控制,实现多级确定性时延控制,有效降低时延控制误差,降低设备实现复杂度,提高部署效率。能够容忍运营商网络较大的时延抖动范围,能够支持跨不同运营商网络部署。各级确定性控制点根据各自条件,就近选择合适的同步时钟,不需要通过网络传递时钟同步信号,降低部署复杂度和难度。只要运营商网络的时延抖动值不超过测得的最大时延值,上下行的业务流端到端转发时间均可以控制在设定的固定时延值以内,不受网络抖动影响,其时延控制精度很高。
基于与上述方法同样的申请构思,本申请实施例中提出一种报文传输方法,该方法可以应用于中间转发设备,中间转发设备可以是确定性控制设备。
针对工业现场的终端向云平台发送的确定性业务流,若中间转发设备是三级确定性控制设备,则上一级设备是工业现场的终端,下一级设备是二级确定性控制设备。若中间转发设备是二级确定性控制设备,则上一级设备是三级确定性控制设备,下一级设备是一级确定性控制设备。若中间转发设备是一级确定性控制设备,则上一级设备是二级确定性控制设备,下一级设备是云平台。
针对云平台向工业现场的终端发送的确定性业务流,若中间转发设备是一级确定性控制设备,则上一级设备是云平台,下一级设备是二级确定性控制设备。若中间转发设备是二级确定性控制设备,则上一级设备是一级确定性控制设备,下一级设备是三级确定性控制设备。若中间转发设备是三级确定性控制设备,则上一级设备是二级确定性控制设备,下一级设备是工业现场的终端。
参见图8所示,为报文传输方法的流程示意图,该方法可以包括:
步骤801、接收确定性业务流,确定性业务流包括上一级设备发送确定性业务流的发送时间戳,且上一级设备是在确定性业务流中添加发送时间戳的设备。
步骤802、基于接收确定性业务流的接收时间戳和发送时间戳,计算路径延时。
步骤803、获取上一级设备与中间转发设备之间的端到端确定延时,并基于端到端确定延时和路径延时,计算目标补偿延时。
步骤804、基于目标补偿延时和已配置的抖动控制精度,计算队列补偿数量,并基于环形调度队列的当前调度子队列和队列补偿数量,确定目标子队列。
环形调度队列的子队列数量基于端到端确定延时和抖动控制精度计算。
步骤805、将确定性业务流存储至目标子队列。
步骤806、从当前调度子队列开始,依次遍历环形调度队列中的每个子队列,在调度到目标子队列时,从目标子队列中读取该确定性业务流,并将该确定性业务流发送给下一级设备。
一个例子中,接收确定性业务流,可以包括但不限于:在接收到业务流之后,识别业务流包括的流量特征是否与确定性流特征匹配;若是,则将业务流确定为确定性业务流,并从确定性业务流中获取上一级设备发送确定性业务流的发送时间戳;确定性业务流包括扩展报文头,扩展报文头中的目标选项头承载发送时间戳;或者,确定性业务流包括SRv6报文头,SRv6报文头中的流标签字段承载发送时间戳。
一个例子中,获取上一级设备与中间转发设备之间的端到端确定延时之前,还可以包括但不限于:测量上一级设备与中间转发设备之间的最大延时;基于最大延时和已配置的保护间隔,计算上一级设备与中间转发设备之间的端到端确定延时,在指定存储介质(如内存、硬盘等)中存储端到这个端确定延时。
在此基础上,获取上一级设备与中间转发设备之间的端到端确定延时,可以包括但不限于:从指定存储介质中获取端到端确定延时。
一个例子中,测量上一级设备与中间转发设备之间的最大延时,可以包括但不限于:接收上一级设备发送的多个探测报文,针对每个探测报文,该探测报文包括上一级设备发送探测报文时的发送时间戳。针对每个探测报文,基于该探测报文的发送时间戳和该探测报文的接收时间戳,计算该探测报文对应的延时值。若上一级设备与中间转发设备的时间同步且时钟频率同步,则将多个探测报文对应的延时值中的最大值作为最大延时;或者,若上一级设备与中间转发设备的时间不同步且时钟频率同步,则根据多个探测报文对应的延时值中的最大值和时间修正值,计算最大延时;时间修正值用于修正上一级设备与中间转发设备之间的时钟***异步(即时钟***差异)。
一个例子中,从当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列,可以包括但不限于:以当前调度子队列为起点,每间隔抖动控制精度,调度当前调度子队列的下一个子队列,并将下一个子队列作为当前调度子队列;在当前调度子队列对应的抖动控制精度内,从当前调度子队列中读取确定性业务流,并将读取的确定性业务流发送给下一级设备。
一个例子中,将读取的确定性业务流发送给下一级设备之后,还可以包括:在当前调度子队列对应的抖动控制精度内,若当前调度子队列中存在确定性业务流,且存在非确定性业务流,则禁止发送非确定性业务流;或者,在当前调度子队列对应的抖动控制精度内,若当前调度子队列中不存在确定性业务流,且存在非确定性业务流,则发送非确定性业务流。
一个例子中,将确定性业务流存储至目标子队列,可以包括但不限于:若确定性业务流的流大小与目标子队列中已存储的确定性业务流的流大小之和未超过限速阈值,则将确定性业务流存储至目标子队列。若确定性业务流的流大小与目标子队列中的确定性业务流的流大小之和超过限速阈值,则禁止将确定性业务流存储至目标子队列。限速阈值是基于中间转发设备的流量带宽和抖动控制精度确定,且表示抖动控制精度内传输的流量大小不超过限速阈值。
由以上技术方案可见,本申请实施例中,可以基于环形调度队列提供精确的时延抖动控制,保证中间转发设备的时延抖动是端到端确定延时,实现确定性时延控制,实现对运营商网络的分段时延控制,有效降低时延控制误差,降低设备实现复杂度,提高部署效率。能够容忍运营商网络较大的时延抖动范围,能够支持跨不同运营商网络部署。
基于与上述方法同样的申请构思,本申请实施例中提出一种报文传输装置,应用于中间转发设备,参见图9A所示,为所述装置的结构示意图,包括:
接收模块911,用于接收确定性业务流所述确定性业务流包括上一级设备发送确定性业务流的发送时间戳,且所述上一级设备是在确定性业务流中添加发送时间戳的设备;
确定模块912,用于基于接收所述确定性业务流的接收时间戳和所述发送时间戳,计算路径延时;获取所述上一级设备与所述中间转发设备之间的端到端确定延时,并基于所述端到端确定延时和所述路径延时,计算目标补偿延时;基于所述目标补偿延时和已配置的抖动控制精度,计算队列补偿数量,并基于环形调度队列的当前调度子队列和所述队列补偿数量,确定目标子队列;
存储模块913,用于将所述确定性业务流存储至所述目标子队列;
控制模块914,用于从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列,在调度到所述目标子队列时,从所述目标子队列中读取所述确定性业务流,并将所述确定性业务流发送给下一级设备。
一个例子中,所述接收模块911接收确定性业务流时具体用于:在接收到业务流之后,识别所述业务流包括的流量特征是否与确定性流特征匹配;若是,则将所述业务流确定为确定性业务流,并从所述确定性业务流中获取上一级设备发送确定性业务流的发送时间戳;所述确定性业务流包括扩展报文头,所述扩展报文头中的目标选项头承载所述发送时间戳;或者,所述确定性业务流包括SRv6报文头,所述SRv6报文头中的流标签字段承载所述发送时间戳。
一个例子中,所述确定模块912,用于测量所述上一级设备与所述中间转发设备之间的最大延时;基于所述最大延时和已配置的保护间隔,计算所述上一级设备与所述中间转发设备之间的端到端确定延时,在指定存储介质中存储所述端到端确定延时;所述确定模块912获取所述上一级设备与所述中间转发设备之间的端到端确定延时时具体用于:从所述指定存储介质中获取所述端到端确定延时。
一个例子中,所述确定模块912测量所述上一级设备与所述中间转发设备之间的最大延时时具体用于:接收所述上一级设备发送的多个探测报文,针对每个探测报文,所述探测报文包括所述上一级设备发送所述探测报文时的发送时间戳;
针对每个探测报文,基于所述探测报文的发送时间戳和所述探测报文的接收时间戳,计算所述探测报文对应的延时值;
若所述上一级设备与所述中间转发设备的时间同步且时钟频率同步,则将多个探测报文对应的延时值中的最大值作为所述最大延时;或者,
若所述上一级设备与所述中间转发设备的时间不同步且时钟频率同步,则根据多个探测报文对应的延时值中的最大值和时间修正值,计算所述最大延时;所述时间修正值用于修正所述上一级设备与所述中间转发设备之间的时钟***异步。
一个例子中,所述环形调度队列的子队列数量基于所述端到端确定延时和所述抖动控制精度计算;所述控制模块914从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列时具体用于:
以当前调度子队列为起点,每间隔所述抖动控制精度,调度当前调度子队列的下一个子队列,并将下一个子队列作为当前调度子队列;
在当前调度子队列对应的抖动控制精度内,从当前调度子队列中读取确定性业务流,并将读取的确定性业务流发送给下一级设备。
所述控制模块914,还用于在当前调度子队列对应的抖动控制精度内,若当前调度子队列中存在确定性业务流,且存在非确定性业务流,则禁止发送所述非确定性业务流;在当前调度子队列对应的抖动控制精度内,若当前调度子队列中不存在确定性业务流,且存在非确定性业务流,则发送所述非确定性业务流。
一个例子中,所述存储模块913将所述确定性业务流存储至所述目标子队列时具体用于:
若所述确定性业务流的流大小与所述目标子队列中已存储的确定性业务流的流大小之和未超过限速阈值,则将所述确定性业务流存储至所述目标子队列;
若所述确定性业务流的流大小与所述目标子队列中的确定性业务流的流大小之和超过限速阈值,则禁止将所述确定性业务流存储至所述目标子队列;
所述限速阈值是基于所述中间转发设备的流量带宽和所述抖动控制精度确定,且表示所述抖动控制精度内传输的流量大小不超过所述限速阈值。
基于与上述方法同样的申请构思,本申请实施例中提出一种电子设备(如上述中间转发设备、确定性控制设备),参见图9B所示,所述电子设备包括:处理器921和机器可读存储介质922,所述机器可读存储介质922存储有能够被所述处理器921执行的机器可执行指令;所述处理器921用于执行机器可执行指令,以实现本申请上述示例公开的报文传输方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的报文传输方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种报文传输方法,其特征在于,应用于中间转发设备,所述方法包括:
接收确定性业务流,所述确定性业务流包括上一级设备发送确定性业务流的发送时间戳,且所述上一级设备是在确定性业务流中添加发送时间戳的设备;
基于接收所述确定性业务流的接收时间戳和所述发送时间戳,计算路径延时;
获取所述上一级设备与所述中间转发设备之间的端到端确定延时,并基于所述端到端确定延时和所述路径延时,计算目标补偿延时;
基于所述目标补偿延时和已配置的抖动控制精度,计算队列补偿数量,并基于环形调度队列的当前调度子队列和所述队列补偿数量,确定目标子队列;
将所述确定性业务流存储至所述目标子队列;
从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列,在调度到所述目标子队列时,从所述目标子队列中读取所述确定性业务流,并将所述确定性业务流发送给下一级设备。
2.根据权利要求1所述的方法,其特征在于,所述接收确定性业务流,包括:
在接收到业务流之后,识别所述业务流包括的流量特征是否与确定性流特征匹配;若是,则将所述业务流确定为确定性业务流,并从所述确定性业务流中获取上一级设备发送确定性业务流的发送时间戳;
所述确定性业务流包括扩展报文头,所述扩展报文头中的目标选项头承载所述发送时间戳;或者,所述确定性业务流包括基于IPv6的段路由SRv6报文头,所述SRv6报文头中的流标签字段承载所述发送时间戳。
3.根据权利要求1所述的方法,其特征在于,所述获取所述上一级设备与所述中间转发设备之间的端到端确定延时之前,所述方法还包括:
测量所述上一级设备与所述中间转发设备之间的最大延时;
基于所述最大延时和已配置的保护间隔,计算所述上一级设备与所述中间转发设备之间的端到端确定延时,在指定存储介质中存储所述端到端确定延时;
所述获取所述上一级设备与所述中间转发设备之间的端到端确定延时,包括:从所述指定存储介质中获取所述端到端确定延时。
4.根据权利要求3所述的方法,其特征在于,所述测量所述上一级设备与所述中间转发设备之间的最大延时,包括:
接收所述上一级设备发送的多个探测报文,针对每个探测报文,所述探测报文包括所述上一级设备发送所述探测报文时的发送时间戳;
针对每个探测报文,基于所述探测报文的发送时间戳和所述探测报文的接收时间戳,计算所述探测报文对应的延时值;
若所述上一级设备与所述中间转发设备的时间同步且时钟频率同步,则将多个探测报文对应的延时值中的最大值作为所述最大延时;或者,
若所述上一级设备与所述中间转发设备的时间不同步且时钟频率同步,则根据多个探测报文对应的延时值中的最大值和时间修正值,计算所述最大延时;所述时间修正值用于修正所述上一级设备与所述中间转发设备之间的时钟***异步。
5.根据权利要求1所述的方法,其特征在于,所述环形调度队列的子队列数量基于所述端到端确定延时和所述抖动控制精度计算;所述从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列,包括:
以当前调度子队列为起点,每间隔所述抖动控制精度,调度当前调度子队列的下一个子队列,并将下一个子队列作为当前调度子队列;
在当前调度子队列对应的抖动控制精度内,从当前调度子队列中读取确定性业务流,并将读取的确定性业务流发送给下一级设备。
6.根据权利要求5所述的方法,其特征在于,所述将读取的确定性业务流发送给下一级设备之后,所述方法还包括:
在当前调度子队列对应的抖动控制精度内,若当前调度子队列中存在确定性业务流,且存在非确定性业务流,则禁止发送所述非确定性业务流;
在当前调度子队列对应的抖动控制精度内,若当前调度子队列中不存在确定性业务流,且存在非确定性业务流,则发送所述非确定性业务流。
7.根据权利要求1所述的方法,其特征在于,所述将所述确定性业务流存储至所述目标子队列,包括:
若所述确定性业务流的流大小与所述目标子队列中已存储的确定性业务流的流大小之和未超过限速阈值,则将所述确定性业务流存储至所述目标子队列;
若所述确定性业务流的流大小与所述目标子队列中的确定性业务流的流大小之和超过限速阈值,则禁止将所述确定性业务流存储至所述目标子队列;
所述限速阈值是基于所述中间转发设备的流量带宽和所述抖动控制精度确定,且表示所述抖动控制精度内传输的流量大小不超过所述限速阈值。
8.一种报文传输装置,其特征在于,应用于中间转发设备,所述装置包括:
接收模块,用于接收确定性业务流所述确定性业务流包括上一级设备发送确定性业务流的发送时间戳,且所述上一级设备是在确定性业务流中添加发送时间戳的设备;
确定模块,用于基于接收所述确定性业务流的接收时间戳和所述发送时间戳,计算路径延时;获取所述上一级设备与所述中间转发设备之间的端到端确定延时,并基于所述端到端确定延时和所述路径延时,计算目标补偿延时;基于所述目标补偿延时和已配置的抖动控制精度,计算队列补偿数量,并基于环形调度队列的当前调度子队列和所述队列补偿数量,确定目标子队列;
存储模块,用于将所述确定性业务流存储至所述目标子队列;
控制模块,用于从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列,在调度到所述目标子队列时,从所述目标子队列中读取所述确定性业务流,并将所述确定性业务流发送给下一级设备。
9.根据权利要求8所述的装置,其特征在于,所述接收模块接收确定性业务流时具体用于:在接收到业务流之后,识别所述业务流包括的流量特征是否与确定性流特征匹配;若是,则将所述业务流确定为确定性业务流,并从所述确定性业务流中获取上一级设备发送确定性业务流的发送时间戳;
所述确定性业务流包括扩展报文头,所述扩展报文头中的目标选项头承载所述发送时间戳;或者,所述确定性业务流包括基于IPv6的段路由SRv6报文头,所述SRv6报文头中的流标签字段承载所述发送时间戳。
10.根据权利要求8所述的装置,其特征在于,
所述确定模块,用于测量所述上一级设备与所述中间转发设备之间的最大延时;基于所述最大延时和已配置的保护间隔,计算所述上一级设备与所述中间转发设备之间的端到端确定延时,在指定存储介质中存储所述端到端确定延时;
所述确定模块获取所述上一级设备与所述中间转发设备之间的端到端确定延时时具体用于:从所述指定存储介质中获取所述端到端确定延时。
11.根据权利要求10所述的装置,其特征在于,所述确定模块测量所述上一级设备与所述中间转发设备之间的最大延时时具体用于:
接收所述上一级设备发送的多个探测报文,针对每个探测报文,所述探测报文包括所述上一级设备发送所述探测报文时的发送时间戳;
针对每个探测报文,基于所述探测报文的发送时间戳和所述探测报文的接收时间戳,计算所述探测报文对应的延时值;
若所述上一级设备与所述中间转发设备的时间同步且时钟频率同步,则将多个探测报文对应的延时值中的最大值作为所述最大延时;或者,
若所述上一级设备与所述中间转发设备的时间不同步且时钟频率同步,则根据多个探测报文对应的延时值中的最大值和时间修正值,计算所述最大延时;所述时间修正值用于修正所述上一级设备与所述中间转发设备之间的时钟***异步。
12.根据权利要求8所述的装置,其特征在于,所述环形调度队列的子队列数量基于所述端到端确定延时和所述抖动控制精度计算;所述控制模块从所述当前调度子队列开始,依次遍历所述环形调度队列中的每个子队列时具体用于:
以当前调度子队列为起点,每间隔所述抖动控制精度,调度当前调度子队列的下一个子队列,并将下一个子队列作为当前调度子队列;
在当前调度子队列对应的抖动控制精度内,从当前调度子队列中读取确定性业务流,并将读取的确定性业务流发送给下一级设备。
13.根据权利要求12所述的装置,其特征在于,
所述控制模块,还用于在当前调度子队列对应的抖动控制精度内,若当前调度子队列中存在确定性业务流,且存在非确定性业务流,则禁止发送所述非确定性业务流;在当前调度子队列对应的抖动控制精度内,若当前调度子队列中不存在确定性业务流,且存在非确定性业务流,则发送所述非确定性业务流。
14.根据权利要求8所述的装置,其特征在于,
所述存储模块将所述确定性业务流存储至所述目标子队列时具体用于:
若所述确定性业务流的流大小与所述目标子队列中已存储的确定性业务流的流大小之和未超过限速阈值,则将所述确定性业务流存储至所述目标子队列;
若所述确定性业务流的流大小与所述目标子队列中的确定性业务流的流大小之和超过限速阈值,则禁止将所述确定性业务流存储至所述目标子队列;
所述限速阈值是基于所述中间转发设备的流量带宽和所述抖动控制精度确定,且表示所述抖动控制精度内传输的流量大小不超过所述限速阈值。
15.一种电子设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410354936.8A CN118138505A (zh) | 2024-03-26 | 2024-03-26 | 一种报文传输方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410354936.8A CN118138505A (zh) | 2024-03-26 | 2024-03-26 | 一种报文传输方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118138505A true CN118138505A (zh) | 2024-06-04 |
Family
ID=91235334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410354936.8A Pending CN118138505A (zh) | 2024-03-26 | 2024-03-26 | 一种报文传输方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118138505A (zh) |
-
2024
- 2024-03-26 CN CN202410354936.8A patent/CN118138505A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101977523B1 (ko) | 네트워크에 있어서의 데이터 프레임의 트래픽 쉐이핑의 방법 및 그 디바이스 및 컴퓨터 프로그램 | |
Laursen et al. | Routing optimization of AVB streams in TSN networks | |
US7307989B2 (en) | Window flow control with common time reference | |
US9967638B2 (en) | Optical switching | |
KR100881925B1 (ko) | 이동통신 기지국 시스템에서 하향 음성 패킷망 패킷스케줄링 장치 및 방법 | |
EP3245777B1 (en) | A base station and a method thereto | |
US10560383B2 (en) | Network latency scheduling | |
US10728134B2 (en) | Methods, systems, and computer readable media for measuring delivery latency in a frame-preemption-capable network | |
US9515940B2 (en) | Method for transmitting data in a packet-oriented communications network and correspondingly configured user terminal in said communications network | |
EP4152703A1 (en) | Network control method and device | |
WO2022095669A1 (zh) | 一种通信调度方法、装置和存储介质 | |
CN108282416B (zh) | 一种基于数据帧的调度方法和装置 | |
CN114615211A (zh) | 一种有线无线融合的航天器内时间敏感网络队列管理调度方法 | |
CN115242728B (zh) | 一种报文传输方法及装置 | |
US8929216B2 (en) | Packet scheduling method and apparatus based on fair bandwidth allocation | |
CN107070815B (zh) | 一种sdn网络中同步报文排队延时控制方法和装置 | |
US9553828B1 (en) | System and method for collision detection and avoidance for network communications | |
CN112688812B (zh) | 应用于电力数据传输的可靠性感知时间敏感网络路由方法 | |
CN118138505A (zh) | 一种报文传输方法、装置及设备 | |
AU2021104940A4 (en) | Method and device for transmitting a signaling packet | |
EP4336795A1 (en) | Message transmission method and network device | |
KR20230173697A (ko) | 이더넷 프레임의 송신을 스케줄링하기 위해 패킷 교환 네트워크에서 실시되는 방법, 컴퓨터 프로그램 및 기기 | |
JP6633499B2 (ja) | 通信装置 | |
CN115208837B (zh) | 一种报文调度方法和*** | |
EP2942916A1 (en) | Contention avoidance in packet switched network equipments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |