CN116530141A - 确定性流传输方法及设备 - Google Patents

确定性流传输方法及设备 Download PDF

Info

Publication number
CN116530141A
CN116530141A CN202180004331.0A CN202180004331A CN116530141A CN 116530141 A CN116530141 A CN 116530141A CN 202180004331 A CN202180004331 A CN 202180004331A CN 116530141 A CN116530141 A CN 116530141A
Authority
CN
China
Prior art keywords
scheduling
time slot
queue
data packet
slot number
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
Application number
CN202180004331.0A
Other languages
English (en)
Inventor
郭道荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Publication of CN116530141A publication Critical patent/CN116530141A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

本申请提供了确定性流传输方法及设备。该方法包括:在确定接收到的数据包属于确定性流,且该数据包中未携带CSQF域调度信息的情况下,确定所述数据包的到达时间对应的目标时隙号;依据所述目标时隙号,查询所述数据包的出接口的时隙调度周期映射表,确定所述目标时隙号对应的目标周期调度队列;其中,所述时隙调度周期映射表依据所述网络节点的节点内抖动确定,用于记录时隙号与周期调度队列的队列号的映射关系;将所述数据包调度到所述数据包的出接口的目标周期调度队列。通过本申请实施例,可以有效吸收确定性流调度过程中的节点内抖动。

Description

确定性流传输方法及设备 技术领域
本申请涉及网络通信技术,特别涉及确定性流(DT:Deterministic Traffic)传输方法及设备。
背景技术
确定性网络(DetNet:Deterministic Network)可以在一个网络域内为承载的业务提供确定性业务功能。这些确定性业务功能可包括时延、丢包率等。以基于局域网实现的确定性网络即时间敏感型网络(TSN:Time Sensitive Network)为例,在TSN中通过采用周期排队转发(CQF:Cyclic Queuing and Forwarding)确保转发层面上整个转发路径上的传输时延确定等。
为了实现广域网的确定性传输,业界基于CQF提出了基于分段路由实现指定周期排队转发(CSQF:Cycle Specified Queuing and Forwarding)。
CSQF方案中存在一个全局控制器,该控制器收集各个节点的信息,包括发送能力,接口,周期数,节点内最大抖动等。应用向控制器申请确定性传输需求,控制器经过计算后,发现有足够的传输资源,便为应用分配传输路径,同时把路径的信息下发给应用的网络节点,网络节点接收到需要转发的数据包packet后,在packet中添加路径中每个节点的信息,包括节点在路径中的节点标识,该节点的发送接口,在该节点中指定要发送的周期。数据到了某节点后,该节点的转发层取出相应的接口和周期信息,把该数据包存入周期映射的队列。节点按一定的周期循环对CSQF的各个队列进行每周期一个队列轮转地发送。
为便于描述,确定性网络中传输的具有确定性业务功能比如时延、丢包率等的业务流称为确定性流。而针对不同于确定性流的其他业务流,结合现有转发设备比如软件转发设备或者基于交换芯片或NP实现的硬件转发设备等按照尽力而为转发的方式,可将不同于确定性流的其他业务流称为尽力而为流。
发明内容
本申请提供了确定性流传输方法及设备,以吸收确定性流调度过程中的节点内抖动。
本申请实施例提供一种确定性流传输方法,该方法应用于网络节点,该方法包括:
在确定接收到的数据包属于确定性流,且该数据包中未携带CSQF调度信息的情况下,确定所述数据包的到达时间对应的目标时隙号;
依据所述目标时隙号,查询所述数据包的出接口的时隙调度周期映射表,确定所述目标时隙号对应的目标周期调度队列;其中,所述时隙调度周期映射表依据所述网络节点的节点内抖动确定,用于记录时隙号与周期调度队列的队列号的映射关系;
将所述数据包调度到所述数据包的出接口的目标周期调度队列。
本申请实施例还提供了一种电子设备。该电子设备包括:处理器和机器可读存储介质;所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理 器用于执行机器可执行指令,以实现上述公开的方法的步骤。
由以上技术方案可以看出,本实施例通过依据网络节点的节点内抖动确定时隙号与周期调度队列的队列号的映射关系,以构建时隙调度周期映射表,有效吸收了确定性流调度过程中的节点内抖动。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的确定性流传输方法流程图;
图2为User1的数据包到达时间与入队列周期示意图;
图3为User1的数据包到达时正在调度的周期队列示意图;
图4为本申请实施例提供的确定数据包到达时间对应的目标时隙号的实现流程示意图;
图5为本申请实施例提供的确定时隙号对应的周期调度队列的队列号的实现流程示意图;
图6为本申请实施例提供的确定调度偏移量的实现流程示意图;
图7为日历调度表的示意图;
图8为确定性业务发包时隙分布示意图;
图9为时隙更新表的示意图;
图10为本申请实施例提供的确定性流的传输方法流程示意图;
图11为本申请实施例提供的CSQF域的边缘节点对确定性流数据包的转发模型的节点内时延分解示意图;
图12为本申请实施例提供的分布式设备Switch Process的转发模型示意图;
图13为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
为了使本领域技术人员更好地理解本申请实施例提供的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例提供的技术方案进行说明。
下面结合附图对本申请实施例提供的确定性流传输方法进行描述:
参见图1,图1为本申请实施例提供的确定性流传输方法流程图。该流程应用于网络节点。本申请实施例并不具体限定该网络节点的具体结构形式,比如可为中低端路由器等,或者可为对性能要求高,支持更多CPU核的高端路由器,以及基于网络处理器(NP:Network Process)转发的高端、核心路由器等,本实施例并不具体限定,以让本申请实施例具有广泛的适用性和扩展性。
如图1所示,该流程可以包括以下步骤:
步骤101,在确定接收到的数据包属于确定性流,且该数据包中未携带CSQF域调度信息的情况下,确定该数据包的到达时间对应的目标时隙号。
在本实施例中,对于属于确定性流的数据包,其会携带确定性流属性(DetProperty:Deterministic Property)。
示例性的,确定性流属性不是固定的,目前规范也不提供具体的指定,而是根据实际需求统筹设置,比如设置差分服务代码点(DSCP:Differentiated Services Code Point)等字段的值来表征确定性流属性。本实施例并不具体限定确定性流属性。但一旦设置好确定性流属性,应用于本步骤101,则可识别当前数据包是否携带确定性流属性,若是,则识别出当前数据包属于确定性流。
在本实施例中,在确定该数据包属于确定性流的数据包的情况下,可依赖于数据包中是否携带CSQF域调度信息,确定本节点是否作为CSQF域的边缘节点。
示例性的,该CSQF域调度信息可以包括用于指示该数据包需调度到数据包的出接口的哪一个周期调度队列的信息。
在本实施例中,在确定接收到的数据包属于确定性流,且该数据包中未携带CSQF域调度信息的情况下,可以确定本节点作为CSQF域的边缘节点。
在本实施例中,考虑到传统CQSF方案中为了实现确定性流的数据端到端传输的抖动在2个调度周期(可以记为2T)以内,特定用户的确定性流在特定节点,总是以指定的周期进行转发,但不同的业务有不同的发包周期,例如,车联网是150us周期,工业控制是250us周期,当周期性确定性流的周期宽度不是调度周期大循环的整倍数的情况下,按照该方式对确定性流进行调度会引入大量抖动。
举例来说,假设用户User1以150us周期进行发包,转发节点划分为8个周期(Cycle 0~7)时长为T(T长度为10us)的时间片进行周期调度转发,对应实现8个周期调度队列Queue 0~7。按照CSQF的实现,特定用户在特定节点,总是以指定的周期进行转发,如图2所示,假设User1在CSQF域的边缘节点固定在Cycle0进行转发,即进Queue0。同时假设第1个包到达时,正在调度的是上一轮大循环的Cycle7。第一个包进Queue0刚好,即第1个包到达时,正在调度上一轮的Cycle7对应的队列,1个周期后Queue0就会被调度到;150us后,接收到User1第2个包,此时正在调度Cycle6对应的队列,但因为指定进入队列0,相对第1个包,第2个包引入了调度抖动1个周期;类似地,再过150us,第3个包到达时正在调度Cycle5正好,因此引入了2个周期抖动,……。如图3所示,包1~8到达时,正在被调度的周期号的对应关系,根据这些关系可以看出最大有7个周期的抖动。
因此,指定特定用户入固定的某一个队列方式,虽然简单,但当用户发包周期不是大循环的整倍数时,并且与调度周期没有公约数时,引入抖动为d(队列数)-1个周期。因此,即使CSQF能保证在CSQF域内端到端2个周期的抖动,但端头结点引入的抖动也不可忽略。
此外,考虑到实际场景中,在接收到确定性流的数据包的CSQF域的边缘节点内部, 从接收到数据包到进行CSQF调度转发部件之间,会存在较大的时延抖动(可能达到20us~50us)。
示例性的,网络节点的节点内时延抖动的分析可以基于CSQF域的边缘节点对确定性流数据包的转发模型来确定,该部分将在下文中结合图11举例说明,这里不再赘述。
因而,为了解决上述确定性流边缘接入引入的大抖动问题,对于CSQF域的边缘节点接收到的确定性流数据包,不再按照特定用户的确定性流在特定节点,总是以指定的周期进行转发的方式进行调度,而是可以依据确定性流数据包的到达时间,确定对应的时隙号(可以称为目标时隙号),并基于该时隙号确定性流数据包的周期调度队列。
在本实施例中,网络节点如何确定数据包的到达时间对应的目标时隙号可以参见下文图4举例描述的实现流程,这里不再赘述。
在本实施例中,网络节点作为CSQF域的边缘节点接收到确定性流数据包的情况可以包括:
网络节点为CSQF域中连接非确定性网络域的边缘节点,并接收到确定性流的数据包;
或者,网络节点为广域确定性网络中连通非广域确定性网络(如TSN)的边缘节点,并接收到确定性流的数据包;
或者,网络节点为广域确定性网络超长路径CSQF转发中继节点,并接收到确定性流的数据包。
其中,在CSQF超长路径场景中,假设CSQF域的边缘节点支持的标签数对应的跳数对应转发路径中的某个中间节点,对于该中间节点的下一跳节点,由于其接收到的确定性流数据包中缺乏标签信息,导致其无法依据标签信息确定接收到的确定性流数据包的周期调度队列,此时,该下一跳节点可以称为广域确定性网络超长路径CSQF转发中继节点。
同理,广域确定性网络超长路径CSQF转发中继节点的标签数覆盖范围外的第一个转发节点,也可以作为新的广域确定性网络超长路径CSQF转发中继节点。
步骤102,依据目标时隙号,查询数据包的出接口的时隙调度周期映射表,确定目标时隙号对应的目标周期调度队列。
在本实施例中,针对任一支持CSQF的出接口,可以在输入接口处理单元实现一个时隙调度周期映射表,该时隙调度周期映射表可以用于记录时隙号与周期调度队列的队列号的映射关系;其中,时隙号与周期调度队列的队列号的映射关系的建立过程中,可以考虑网络节点的节点内抖动,以通过该映射关系吸收确定性流调度过程中网络节点的节点内抖动。
在本实施例中,时隙号与周期调度队列的队列号的映射关系的建立,即时隙调度周期映射表的构建流程,可以参见下文图5举例描述的实现流程,这里不再赘述。
在本实施例中,可以基于步骤101中确定的目标时隙号,查询数据包的出接口的时隙调度周期映射表,确定目标时隙号映射的周期调度队列的队列号,并将该周期调度队列的队列号标识的周期调度队列,确定为目标时隙号对应的周期调度队列(可以称为目标周期调度队列)。
步骤103,将数据包调度到数据包的出接口的目标周期调度队列。
在本实施例中,在按照步骤101~102的方式确定了目标周期调度队列的情况下,可以将该数据包调度到数据包的出接口的目标周期调度队列。
图1所示的方法通过依据网络节点的节点内抖动确定时隙号与周期调度队列的队列号的映射关系,以构建时隙调度周期映射表,从而,网络节点在确定接收到的数据包属于确定性流,且该数据包中未携带CSQF域调度信息的情况下,依据该数据包的到达时间对应的目标时隙号,查询该数据包的出接口的时隙调度周期映射表,确定该数据包的达到时间对应的目标周期调度队列,即依据确定性流数据包的到达时间确定数据包的周期调度队列,而不再按照特定用户的确定性流在特定节点,总是以指定的周期进行转发的方式进行调度,有效吸收了确定性流调度过程中的节点内抖动。
至此,完成图1所示流程。
下面通过图4所示流程对确定数据包到达时间对应的目标时隙号的实现流程进行描述:
参见图4,图4为本申请实施例提供的确定数据包到达时间对应的目标时隙号的实现流程示意图。
如图4所示,该流程可以包括以下步骤:
步骤401,获取所述数据包的接收时间戳。
在本实施例中,数据包的接收时间戳可以是硬件对接收数据包打上的接收时间戳,某些硬件不支持打时间戳的场景,也可以在转发处理入口获得本节点的系统时钟,作为数据包的接收时间戳。
步骤402,将该数据包的接收时间戳转化为时隙数。
步骤403,依据该时隙数,以及时隙调度周期映射表中的时隙数,确定数据包到达时间对应的目标时隙号。
可选地,可以通过将数据包的接收时间戳转化得到的时隙数对时隙调度周期映射表的时隙数取余,得到数据包到达时间对应的目标时隙号。
举例来说,假设时隙调度周期映射表中的时隙数为256,数据包的接收时间戳转化为的时隙数为TimeSlotNum,则:
TimeSlotNum_Remainder=(TimeSlotNum&0xFF),或(TimeSlotNum%256)
其中,TimeSlotNum_Remainder即为数据包到达时间对应的目标时隙号。
示例性的,可以基于TimeSlotNum_Remainder为关键字查询时隙调度周期映射表,得到对应的周期调度队列的队列号,该周期调度队列的队列号即为该数据包在该网络节点中需要进入的周期调度队列的队列号。
至此,完成图4所示流程。
下面通过图5所示流程对确定时隙号与周期调度队列的队列号的映射关系的实现流程进行描述:
在实施例中,对于任一支持CSQF的出接口,该出接口的时隙调度周期映射表记录的时隙号与周期调度队列的队列号的映射关系,可以通过以下方式确定:
对于任一时隙号,依据该时隙号、调度偏移量,以及该出接口的周期调度队列的数量,确定该时隙号对应的周期调度队列的队列号;
其中,调度偏移量依据网络节点的节点内抖动确定。
示例性的,在本实施例中,时隙调度周期映射表也可以称为日历调度表(calendar)。
可选地,日历调度表可以包括以下信息和特征:
1、时隙号(Calendar_Slot);
2、该时隙号映射的周期调度队列的队列号(Calendar_Que_No)。
其中,日历调度表的时隙数为周期调度队列的数量的整数倍。例如,周期调度队列的数量为8时,日历调度表的时隙数为8N(N为正整数),如日历调度表的时隙数为256。
参见图5,图5为本申请实施例提供的确定时隙号对应的周期调度队列的队列号的实现流程示意图。
如图5所示,该流程可以包括:
步骤501,对于任一时隙号,将该时隙号与调度偏移量二者之和对该出接口的周期调度队列的数量取余,得到第一取余结果。
步骤502,将第一取余结果确定为该时隙号对应的周期调度队列的队列号。
在本实施例中,对于任一时隙号,该时隙号对应的周期调度队列可以依据该时隙号与调度偏移量二者之和确定。由于该时隙号与调度偏移量二者之和可能会大于周期调度队列的数量,因此,可以通过将该时隙号与调度偏移量二者之和对周期调度队列的数量取余,将取余结果(即第一取余结果)确定为该时隙号对应的周期调度队列的队列号。
示例性的,时隙号对应的周期调度队列的队列号Calendar_Que_No可以通过以下方式确定:
Calendar_Que_No=(Calendar_Slot+Schedule_Offset)%Que_Num。
其中,Calendar_Slot为时隙号,Schedule_Offset为调度偏移量,Que_Num为周期调度队列的数量。
在本实施例中,调度偏移量可以用于表征输入转发处理单元在0时隙接收到的数据包,进入本节点的CSQF周期调度队列所对应的周期相对本节点CSQF的第一个周期的偏移,其确定方式可以参见下文图6举例描述的实现流程,这里不再赘述。
至此,完成图5所示流程。
下面通过图6所示流程对确定调度偏移量的实现流程进行描述:
参见图6,图6为本申请实施例提供的确定调度偏移量的实现流程示意图。
如图6所示,对于任一支持CSQF的出接口,确定调度偏移量的流程可以包括:
步骤601,依据测试报文在输入转发处理单元的接收时间戳,确定测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该出接口的周期调度队列。
在本实施例中,可以利用周期测量与标定方法,确定测试报文从输入转发处理单元发出后到达输出接口处理单元时,输出接口处理单元正在调度的该出接口的周期调度队列。
步骤602,依据输出接口处理单元正在调度的该出接口的周期调度队列,以及网络节点的节点内抖动,确定测试报文的最优周期调度队列。
在本实施例中,在理想状态下,步骤601中确定的测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该出接口的周期调度队列的下一个周期调度队列是测试报文最适合进入周期调度队列。
但是由于测试报文从输入转发处理单元发出,到输出接口处理单元将该测试报文调度入队这个过程中会存在一定的时延抖动(即上述网络节点的节点内抖动),因此,可 以依据该时延抖动对测试报文需要进入的周期调度队列进行偏移,得到测试报文的最优周期调度队列。
举例来说,假设测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该出接口的周期调度队列为队列2,而上述时延抖动为30us,一个时隙为10us,则可以将队列2的下一个周期调度队列(即队列3)再偏移3个队列之后的周期调度队列(队列6),确定为该测试报文的最优调度队列。
步骤603,依据最优周期调度队列、该出接口的周期调度队列的数量,以及测试报文在输入转发处理单元的接收时间戳对应的时隙号,确定调度偏移量。
在本实施例中,基于上述步骤可以确定测试报文在输入转发处理单元的接收时间戳对应的时隙号对应的最优调度队列,即得到一个时隙号与最优调度队列的对应关系。
由于一个时隙对应一个调度周期,基于该对应关系,以及该时隙号与0时隙之间的偏移,可以确定0时隙对应的最优调度队列,该最优调度队列的队列号即可作为上述调度偏移量。
在本实施例中,在进行调度偏移量确定时,测试报文(也可以称为测试数据包)可以由CPU构造,并通过内部处理通道透传至输入转发处理单元,输入转发处理单元可以依据接收到该测试报文的系统时间为该测试报文打接收时间戳,并依据该接收时间戳确定测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该测试报文的出接口的周期调度队列。
或者,测试报文也可以由输入转发处理单元构造,如输入转发处理单元可以在接收到测试命令时构造测试报文,在该情况下,输入转发处理单元可以依据测试报文构造完成时的系统时间为该测试报文打接收时间戳,并依据该接收时间戳确定测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该测试报文的出接口的周期调度队列。
需要说明的是,输入转发处理单元接收到测试报文,或者,构造完成测试报文之后,可以按照与确定性流数据包到达CSQF域的边缘节点的输入转发处理单元之后的处理方式一致的处理方式对测试数据包进行转发处理,以实现CSQF域的边缘节点对确定性流数据包的转发处理的模拟。
此外,考虑到确定性流数据包的实际转发过程中,确定性流数据包到达CSQF域的边缘节点时,由输入接口处理单元为该数据包打接收时间戳,并依据该接收时间戳确定对应的时隙号(即上述目标时隙号),并按照上述方式进行周期调度队列的映射,但由于数据包经过输入接口处理单元到达输入转发处理单元的时延通常会很小,且抖动也很小,因此,按照上述方式进行测试得到的调度偏移量可以较为准确地吸收节点内的抖动。
示例性的,为了进一步提高上述测试的准确性,对于测试报文的接收时间戳,可以在输入转发处理单元接收到测试报文,或,构造完成测试报文的系统时间的基础上,减去一个固定时间(对应报文经过输入接口处理单元到达输入转发处理单元的时延),得到测试报文的接收时间戳。
在一个示例中,依据最优周期调度队列、该出接口的周期调度队列的数量,以及测试报文在输入转发处理单元的接收时间戳对应的时隙号,确定调度偏移量,包括:
将测试报文在输入转发处理单元的接收时间戳对应的时隙号对周期调度队列的数量取余,得到第二取余结果;
对最优周期调度队列的队列号与该出接口的周期调度队列的数量进行求和,得 到求和结果;
将求和结果与第二取余结果的差值对该出接口的周期调度序列的数量取余,得到第三取余结果;
将第三取余结果确定为调度偏移量。
示例性的,由于测试报文在输入转发处理单元的接收时间戳对应的时隙号即为测试报文在输入转发处理单元的接收时间戳对应的时隙号与0时隙之间的时隙差,该时隙差与测试报文的最优周期调度队列的队列号与0时隙的最优周期调度队列的队列号之间的差值应该是一致的。
举例来说,假设测试报文在输入转发处理单元的接收时间戳对应n时隙,测试报文的最优周期调度队列的队列号为RQ,则0时隙对应的最优周期调度队列的队列号应该为周期调度队列RQ回退n个周期后的周期调度队列。
考虑到n可能会大于周期数,因此,可以通过将n对该出接口的周期调度队列的数量进行取余,得到取余结果(即第二取余结果),并将测试报文的最优周期调度队列RQ回退第二取余结果个周期。
又考虑到RQ可能会小于第二取余结果,因此,在对RQ进行回退时,可以先加上该出接口的周期调度队列的数量,然后再回退第二取余结果个周期,将得到的周期调度队列的队列号对该出接口的周期调度队列的数量进行取余,该取余结果(即第三取余结果)即为调度偏移量。
示例性的,调度偏移量Schedule_Offset可以通过以下策略确定:
Schedule_Offset=(RQ+Que_Num-(n%Que_Num))%Que_Num
举例来说,假设在测试报文在输入转发处理单元的接收时间戳为xxx433us,测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该测试报文的出接口的周期调度队列为队列2,则队列3是理论上测试报文最适合进入的队列,但由于测试报文从输入转发处理单元发出,到输出接口处理单元将测试报文入队会存在一定的时延抖动,假设为30us(假设一个时隙10us),因此,测试报文的最优周期调度队列为队列2再偏移30us(即3个周期),即队列6(即RQ=6)。
基于此,可知测试报文的发送时间戳对应的时隙号43映射至与周期调度队列6。由于时隙号43与0时隙之间的时隙差为43,因此,0时隙对应的最优周期调度队列的队列号,即Schedule_Offset的值可以通过以下策略计算(假设测试报文的出接口的周期调度队列的数量为15):
Schedule_Offset=(RQ+Que_Num-(n%Que_Num))%Que_Num=(6+15-(43%15))%15=8
至此,完成图6所示流程。
进一步地,考虑到当存在多个确定性流接入时,可能产生多条流在相同时隙到达,导致流量冲突的情况产生。
由于流量冲突原因,部分确定性流可能无法安排到最接近的时隙,可能需要调整到临近的调度时隙(只要满足抖动需求就行)。因此,需要一个时隙更新表,对每条确定性流的到达时间对应的时隙号进行调整。
参见图7和图8,假设周期调度队列的数量为10个,时隙调度周期表(以Calendar为例)中的时隙数为100,图8中用户User1发送数据包的周期为730us(即73个调度周期),该用户的第一个数据包的到达时间对应的时隙号为53,第二个数据包的到达时 间对应的时隙号为26。
假设该数据流的出接口的72时隙和74时隙存在流量冲突,但73时隙使用量很低(可以由控制器确定或人工监测确定),则可以对图9中的时隙表进行更新,将到达时间对应的时隙号为72和74的数据包的时隙号更新为73,即将该数据包调度到73时隙对应的周期调度队列。
假设如图8中所示,实现10个CSQF周期队列,100个时隙的calendar。以图13中的用户USER1数据流为例,周期间隔是73个时隙(730us),该用户第一个数据包在第53时隙,第2个包在26时隙,……。假设CSQF的同一接口的72和74时隙都有冲突,而73时隙使用量却很少(甚至没有),则设计时隙更新表如图9所示,把本来应该在72和74时隙的数据包,都调度到73时隙对应的转发队列中。
如图9所示,Calendar_Slot为依据数据包的接收时间戳计算得到的时隙号;Calendar_Slot_Replace为更新后的时隙号。
又考虑到对于CSQF域中连接非确定性网络域的边缘节点,确定性流到达该节点之前,可能会存在需要跨越非确定性网络域的情况,导致同一确定性流到达该节点的时隙会存在一些抖动,为了消除这些抖动,实现对输入的确定性流的整形,对于同一确定性流的数据包,当其到达该节点的到达时间对应的时隙号为相邻的若干时隙号时,可以将其更新映射至同一时隙号。
例如,对于某一确定性流,该确定性流的到达时间对应的时隙号包括0、1和2,则可以将其均映射为时隙号2,实现对该确定性流的整形。
相应地,请参见图10,确定性流的传输方法流程可以如图10所示。
如图10,该流程可以包括以下步骤:
步骤1001,在确定接收到的数据包属于确定性流,且该数据包中未携带CSQF域调度信息的情况下,确定该数据包的到达时间对应的目标时隙号。
步骤1002,基于该目标时隙号查询该数据包所属业务流的时隙更新表,得到更新的时隙号。
步骤1003,依据更新的时隙号,查询数据包的出接口的时隙调度周期映射表,确定数据包到达的时隙对应的目标周期调度队列。
步骤1004,将数据包调度到数据包的出接口的目标周期调度队列。
通过生成时隙更新表,有效解决了CSQF域的边缘节点的确定性流调度时隙冲突问题,增强了CSQF的适应性,并能提高相同路径确定性流量的承载量;此外,依据时隙更新表,还可以实现针对确定性流的整形。
需要说明的是,由于对于广域确定性网络中连通非广域确定性网络(如TSN)的边缘节点,或,广域确定性网络超长路径CSQF转发中继节点,其接收到的确定性流均来自确定性域,通常不存在需要对确定性流进行整形的需求,也不会出现部分时隙使用量却很少,而另一部分时隙使用量过多的情况;此外,对于广域确定性网络中连通非广域确定性网络(如TSN)的边缘节点,或,广域确定性网络超长路径CSQF转发中继节点,其需要处理的确定性流的数量通常会较多,若针对每条确定性流均配置下发时隙更新表,会消耗巨大的资源,因此,在实际应用中,对于广域确定性网络中连通非广域确定性网络(如TSN)的边缘节点,或,广域确定性网络超长路径CSQF转发中继节点,可以不进行时隙更新表的配置和下发。
示例性的,可以在CSQF域中连接非确定性网络域的边缘节点针对每一条确定 性流下发一个时隙更新表。
下面通过图11对CSQF域的边缘节点对确定性流数据包的转发模型进行描述:
参见图11,图11为本申请实施例提供的CSQF域的边缘节点对确定性流数据包的转发模型的节点内时延分解示意图。
如图11所示,确定性流数据包在CSQF域边缘节点内的转发流程包括:
输入过程、分发过程、交换过程、映射过程、周期调度过程以及输出过程。其中:
输入过程(Input Process):用于进行输入时间戳锚定。
示例性的,输入过程主要是硬件控制器的功能,实现输入时间戳的锚定。
分发过程(Distributing):用于进行缓存分发。
示例性的,分发过程可以由硬件控制器实现,或通过软件实现。
交换过程(Switch Process):用于进行节点内转发相关处理。
示例性的,交换过程可以包括软件处理,NP的微码配合硬件单元实现流水线管道。对于分布式设备,还可以包括输入接口板->网板->输出接口板的交换处理,具体实现可以参见下文图12举例描述的实现流程,这里不再赘述。
映射过程(Mapping):用于将确定性流数据包根据周期映射到周期调度队列。
示例性的,映射过程需要软件(或NP的微码)或现场可编程门阵列(FPGA:Field Programmable Gate Array)参与,必需具备可编程能力以提供实现的灵活性。
周期调度过程(Scheduled by Cycle):用于根据调度周期对周期调度队列进行调度,将处于发送周期队列中的数据发送给配置预留最高优先级硬件队列。
输出过程(Output Process):用于进行硬件发送处理。
示例性的,输出过程可以通过配置预留最高优先级硬件队列作为发送确定性流量的硬件队列,打上输出时间戳。
在图11所示的多阶段时延分解中,Switch Process处理时延是不确定的,涉及节点内排队,可能多达20us~50us的差异。
以分布式设备的Switch Process处理为例。
参见图12,为本申请实施例提供的分布式设备Switch Process的转发模型示意图,如图12所示,Switch Process处理时延可以包括输入转发处理单元(图12中以Ingress NP为例)、内部交换单元(图12中以Fabric为例)以及输出转发处理单元(图12中以Egress NP为例)的处理时延,中间的抖动叠加后可能达到20us以上。
在图12所示的实现中,Mapping和Schedule by Cycle这两个阶段都是由输出接口处理单元(图12中以FPGA2为例)实现的,报文从进入输入接口处理单元(图12中以FPGA1为例)到输出接口处理单元进行Mapping处理之间,有较大的不确定时延抖动(即上述节点内抖动)。
示例性的,FPGA1和FPGA2可以为不同FPGA,也可以为相同FPGA(如针对流量环回或同一FPGA实现多个外部端口的场景)。
为了消除节点内抖动,可以按照上述方式,通过测试方式确定出调度偏移量。
举例来说,以图12所示实现为例,在进行调度偏移量确定时,可以依据测试报 文在Ingress NP的接收时间戳,确定测试报文到达FPGA2时,FPGA2正在调度的该测试报文的出接口的周期调度队列,并依据该周期调度队列,以及节点内时延,如30us,确定测试报文的最优周期调度队列,依据该最优周期调度队列的队列号,以及,测试报文在Ingress NP的接收时间戳对应的时隙号,按照上述方式,确定调度偏移量。
至此,完成本申请实施例提供的方法描述。下面对本申请实施例提供的电子设备进行描述:
参见图13,为本申请实施例提供的电子设备的硬件结构示意图,如图13所示,该电子设备包括处理器和机器可读存储介质;机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述示例公开的方法。
具体地,处理器通过执行机器可执行指令以实现:在确定接收到的数据包属于确定性流,且该数据包中未携带CSQF域调度信息的情况下,确定所述数据包的到达时间对应的目标时隙号;依据所述目标时隙号,查询所述数据包的出接口的时隙调度周期映射表,确定所述目标时隙号对应的目标周期调度队列;其中,所述时隙调度周期映射表依据所述网络节点的节点内抖动确定,用于记录时隙号与周期调度队列的队列号的映射关系;将所述数据包调度到所述数据包的出接口的目标周期调度队列。
在一个例子中,处理器通过执行机器可执行指令以实现:获取所述数据包的接收时间戳;将所述数据包的接收时间戳转化为时隙数;依据所述时隙数,以及所述时隙调度周期映射表中的时隙数,确定所述数据包到达时间对应的目标时隙号。
在一个例子中,处理器通过执行机器可执行指令以实现:对于任一支持指定周期排队转发CSQF的出接口,通过以下方式确定该出接口的所述时隙调度周期映射表记录的时隙号与周期调度队列的队列号的映射关系:对于任一时隙号,依据该时隙号、调度偏移量,以及该出接口的周期调度队列的数量,确定该时隙号对应的周期调度队列的队列号;其中,所述调度偏移量依据所述网络节点的节点内抖动确定。
在一个例子中,处理器通过执行机器可执行指令以实现:将该时隙号与所述调度偏移量二者之和对该出接口的周期调度队列的数量取余,得到第一取余结果;将所述第一取余结果确定为该时隙号对应的周期调度队列的队列号。
在一个例子中,处理器通过执行机器可执行指令以实现:通过以下方式确定调度偏移量:依据测试报文在输入转发处理单元的接收时间戳,确定所述测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该出接口的周期调度队列;依据输出接口处理单元正在调度的该出接口的周期调度队列,以及所述网络节点的节点内抖动,确定所述测试报文的最优周期调度队列;依据所述最优周期调度队列、该出接口的周期调度队列的数量,以及所述测试报文在输入转发处理单元的接收时间戳对应的时隙号,确定所述调度偏移量。
在一个例子中,处理器通过执行机器可执行指令以实现:将所述测试报文在输入转发处理单元的接收时间戳对应的时隙号对所述周期调度队列的数量取余,得到第二取余结果;对所述最优周期调度队列的队列号与该出接口的周期调度队列的数量进行求和,得到求和结果;将所述求和结果与所述第二取余结果的差值对该出接口的周期调度队列的数量取余,得到第三取余结果;将所述第三取余结果确定为所述调度偏移量。
在一个例子中,处理器还通过执行机器可执行指令以实现:依据所述目标时隙号,查询该数据包所属业务流的时隙更新表,得到更新的时隙号;依据所述更新的时隙号,查询所述数据包的出接口的时隙调度周期映射表,确定所述数据包到达的时隙对应的目标周期调度队列。
在一个例子中,确定性流数据包在CSQF域边缘节点内的转发流程包括:
输入过程、分发过程、交换过程、映射过程、周期调度过程以及输出过程;其中:
所述输入过程用于进行输入时间戳锚定;
所述分发过程用于进行缓存分发;
所述交换过程用于进行节点内转发相关处理;
所述映射过程用于将确定性流数据包根据周期映射到周期调度队列;
所述周期调度过程用于根据调度周期对周期调度队列进行调度,将处于发送周期队列中的数据发送给配置预留最高优先级硬件队列;
所述输出过程用于进行硬件发送处理。
在一个例子中,网络节点的节点内抖动包括所述交换过程的处理时延抖动。
基于与上述方法同样的申请构思,本申请实施例还提供了一种存储有计算机可执行指令的非暂时性机器可读存储介质,例如图13中的机器可读存储介质,计算机可执行指令可由图13所示电子设备中的处理器801执行以实现上文描述的分析数据流的方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令 产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

  1. 一种确定性流传输方法,其特征在于,该方法应用于网络节点,该方法包括:
    在确定接收到的数据包属于确定性流,且该数据包中未携带指定周期排队转发CSQF域调度信息的情况下,确定所述数据包的到达时间对应的目标时隙号;
    依据所述目标时隙号,查询所述数据包的出接口的时隙调度周期映射表,确定所述目标时隙号对应的目标周期调度队列;其中,所述时隙调度周期映射表依据所述网络节点的节点内抖动确定,用于记录时隙号与周期调度队列的队列号的映射关系;
    将所述数据包调度到所述数据包的出接口的目标周期调度队列。
  2. 根据权利要求1所述的方法,其特征在于,所述确定所述数据包到达时间对应的时隙号,包括:
    获取所述数据包的接收时间戳;
    将所述数据包的接收时间戳转化为时隙数;
    依据所述时隙数,以及所述时隙调度周期映射表中的时隙数,确定所述数据包到达时间对应的目标时隙号。
  3. 根据权利要求1所述的方法,其特征在于,对于任一支持CSQF的出接口,该出接口的所述时隙调度周期映射表记录的时隙号与周期调度队列的队列号的映射关系,通过以下方式确定:
    对于任一时隙号,依据该时隙号、调度偏移量,以及该出接口的周期调度队列的数量,确定该时隙号对应的周期调度队列的队列号;
    其中,所述调度偏移量依据所述网络节点的节点内抖动确定。
  4. 根据权利要求3所述的方法,其特征在于,所述依据该时隙号、调度偏移量,以及该出接口的周期调度队列的数量,确定该时隙号对应的周期调度队列的队列号,包括:
    将该时隙号与所述调度偏移量二者之和对该出接口的周期调度队列的数量取余,得到第一取余结果;
    将所述第一取余结果确定为该时隙号对应的周期调度队列的队列号。
  5. 根据权利要求3所述的方法,其特征在于,所述调度偏移量通过以下方式确定:
    依据测试报文在输入转发处理单元的接收时间戳,确定所述测试报文到达输出接口处理单元时,输出接口处理单元正在调度的该出接口的周期调度队列;
    依据输出接口处理单元正在调度的该出接口的周期调度队列,以及所述网络节点的节点内抖动,确定所述测试报文的最优周期调度队列;
    依据所述最优周期调度队列、该出接口的周期调度队列的数量,以及所述测试报文在输入转发处理单元的接收时间戳对应的时隙号,确定所述调度偏移量。
  6. 根据权利要求5所述的方法,其特征在于,所述依据所述最优周期调度队列、该出接口的周期调度队列的数量,以及所述测试报文在输入转发处理单元的接收时间戳对应的时隙号,确定所述调度偏移量,包括:
    将所述测试报文在输入转发处理单元的接收时间戳对应的时隙号对所述周期调度队列的数量取余,得到第二取余结果;
    对所述最优周期调度队列的队列号与该出接口的周期调度队列的数量进行求和,得到求和结果;
    将所述求和结果与所述第二取余结果的差值对该出接口的周期调度队列的数量取余,得到第三取余结果;
    将所述第三取余结果确定为所述调度偏移量。
  7. 根据权利要求1所述的方法,其特征在于,所述确定所述数据包的到达时间对应的目标时隙号之后,还包括:
    依据所述目标时隙号,查询该数据包所属业务流的时隙更新表,得到更新的时隙号;
    所述依据所述目标时隙号,查询所述数据包的出接口的时隙调度周期映射表,确定所述数据包到达的时隙对应的目标周期调度队列,包括:
    依据所述更新的时隙号,查询所述数据包的出接口的时隙调度周期映射表,确定所述数据包到达的时隙对应的目标周期调度队列。
  8. 根据权利要求1所述的方法,其特征在于,确定性流数据包在CSQF域边缘节点内的转发流程包括:
    输入过程、分发过程、交换过程、映射过程、周期调度过程以及输出过程;其中:
    所述输入过程用于进行输入时间戳锚定;
    所述分发过程用于进行缓存分发;
    所述交换过程用于进行节点内转发相关处理;
    所述映射过程用于将确定性流数据包根据周期映射到周期调度队列;
    所述周期调度过程用于根据调度周期对周期调度队列进行调度,将处于发送周期队列中的数据发送给配置预留最高优先级硬件队列;
    所述输出过程用于进行硬件发送处理。
  9. 根据权利要求8所述的方法,其特征在于,所述网络节点的节点内抖动包括所述交换过程的处理时延抖动。
  10. 一种电子设备,其特征在于,该电子设备包括:处理器和机器可读存储介质;
    所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
    所述处理器用于执行机器可执行指令,以实现权利要求1-9任一项的方法。
  11. 一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质存储有指令,所述指令促使所述处理器以实现权利要求1-9任一项的方法。
CN202180004331.0A 2021-12-29 2021-12-29 确定性流传输方法及设备 Pending CN116530141A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/142636 WO2023123103A1 (zh) 2021-12-29 2021-12-29 确定性流传输方法及设备

Publications (1)

Publication Number Publication Date
CN116530141A true CN116530141A (zh) 2023-08-01

Family

ID=86996908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180004331.0A Pending CN116530141A (zh) 2021-12-29 2021-12-29 确定性流传输方法及设备

Country Status (4)

Country Link
EP (1) EP4336900A1 (zh)
JP (1) JP2024520161A (zh)
CN (1) CN116530141A (zh)
WO (1) WO2023123103A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110138813B (zh) * 2018-02-02 2021-11-19 华为技术有限公司 一种传输数据的方法、通信装置及用户面功能实体
CN113498106A (zh) * 2020-03-18 2021-10-12 华为技术有限公司 一种时间敏感网络tsn流的调度方法及装置
CN112887226B (zh) * 2021-01-26 2022-07-22 重庆邮电大学 有线无线融合的卫星时间敏感网络队列管理调度方法
CN113068263B (zh) * 2021-03-26 2022-07-05 鹏城实验室 一种时间敏感网络时隙调度方法、终端及存储介质
CN113316191B (zh) * 2021-05-26 2022-08-23 电子科技大学 一种基于天地一体化网络的通信方法
WO2023283902A1 (zh) * 2021-07-15 2023-01-19 新华三技术有限公司 一种报文传输方法及装置

Also Published As

Publication number Publication date
WO2023123103A1 (zh) 2023-07-06
JP2024520161A (ja) 2024-05-21
EP4336900A1 (en) 2024-03-13

Similar Documents

Publication Publication Date Title
US8068429B2 (en) Transmit scheduling
US8943161B2 (en) Time synchronization system
EP1854254B1 (en) A method of and a system for controlling access to a shared resource
CN102123073A (zh) 数据包重排序方法及装置
CN104125619B (zh) 一种终端自组网的路由方法
CN101848523B (zh) 一种多信道无线网状网络中的路径选择方法及装置
CN111698787B (zh) 调度规则确定方法及其装置
CN104125653B (zh) 一种终端自组网的接入方法
Tabatabaee et al. QoS provisioning and tracking fluid policies in input queueing switches
US20050254480A1 (en) Router using clock synchronizer for distributed traffic control
CN112039621B (zh) 一种时间同步方法和系统
US10742260B2 (en) Synchronizing unicast traffic
CN116530141A (zh) 确定性流传输方法及设备
CN114650566A (zh) 一种提供确定性服务质量的边缘计算网络架构
CN114553792A (zh) 调度参数的调整方法、装置、设备及计算机可读存储介质
Hong et al. Hardware-efficient implementation of WFQ algorithm on NetFPGA-based OpenFlow switch
Wang et al. Randomized load balancing with a helper
CN114338555B (zh) 一种用于实现广域确定性网络的全网周期标签规划的方法及装置
CN115695327A (zh) 一种数据传输方法、系统及电子设备
WO2022000234A1 (zh) 一种通信方法及相关设备
Marchetto et al. A blocking probability study for the aethereal network-on-chip
JP7279786B2 (ja) スケジューリング装置、スケジューリング方法およびプログラム
Huang et al. A markov-process-based delay analysis for uplink transmissions in LoRaWAN class A
CN117597908A (zh) 确定性流传输方法、系统及电子设备
CN118138505A (zh) 一种报文传输方法、装置及设备

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