掌桥专利:专业的专利平台
掌桥专利
首页

报文转发方法、转发设备和网络设备

文献发布时间:2023-06-19 09:29:07


报文转发方法、转发设备和网络设备

技术领域

本申请涉及数据传输领域,尤其涉及报文转发方法、转发设备和网络设备。

背景技术

近年来,传统以太网结合服务质量(Quality of Service,Qos)技术,在尽力而为(Best-Effort)转发机制基础上提供了更高效率低时延的网络服务。然而,由于网络中的突发和拥塞是无法预知和避免的,因此在Best-Effort转发机制下,仍会一定概率地出现转发时延大或者丢包的现象。这难以满足一些对时延和丢包很敏感的业务的传输(例如,时间敏感网络(Time Sensitive Networking,TSN)报文流的传输)需求。

在一个典型的例子中,由于传输阻塞,转发设备在某段时间可能收不到某个TSN报文流,在下一段时间则密集收到该TSN报文流。基于Best-Effort转发机制的先到先服务(First Come First Service,FCFS)等调度策略,转发设备会在一段时间内不转发该TSN报文流,而在下一段时间密集输出该TSN报文流。这使得该TSN报文流的传输时延不是均匀的,抖动很大,系统进行报文转发的效率低下。

发明内容

本申请提供一种报文转发方法、转发设备和网络设备,有助于减小报文在转发时的抖动,可以提高系统转发报文的资源利用率和转发效率。

第一方面,提供了一种报文转发方法,包括:接收N个时间敏感网络TSN报文流,其中,该N个TSN报文流中每个TSN报文流对应一个定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的约束条件,N为大于或等于2的正整数;根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发该N个TSN报文流,每个TSN报文流在遵循对应的约束条件的情况下被转发,其中,该新的约束条件是根据该N个TSN报文流中每个TSN报文流对应的约束条件确定的。

第一方面的报文转发方法,在多个TSN报文流转发的场景下配置一种新的约束条件,使得每个TSN报文流在遵循自己对应的约束条件的情况下被转发,有助于减小报文在转发时的抖动,可以提高系统转发报文的资源利用率和转发效率。

在第一方面的一种可能的实现方式中,转发设备可以根据新的约束条件,将N个TSN报文流作为一个新的报文流进行转发。在本可能的实现方式中,将N个TSN报文流作为一个新的报文流进行转发,这样下一跳转发设备可以不用关注N个TSN报文流,而是对新的报文流进行转发处理,可以降低下一跳转发设备的处理难度。

应理解,将N个TSN报文流作为一个新的报文流进行转发可以理解为将N个TSN报文流汇聚为一个新的报文流进行转发。

在第一方面的一种可能的实现方式中,该新的报文流中携带该新的报文流的流标识ID。在本可能的实现方式中,下一跳转发设备可以根据报文流的流ID,更方便地对新的报文流进行处理。

在第一方面的一种可能的实现方式中,该新的约束条件中的单个时间周期的时长是该N个TSN报文流对应的约束条件中的单个时间周期的时长的最小公倍数。在本可能的实现方式中,将N个TSN报文流对应的约束条件中的单个时间周期的时长的最小公倍数作为新的约束条件中的单个时间周期的时长,使得在新的约束条件中的单个时间周期内,每个TSN报文流的报文至少发送对应的一个时间周期的报文,并且实际发送每个TSN报文流的时间周期不发生变化。

在第一方面的一种可能的实现方式中,该根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发该N个TSN报文流,包括:根据该新的约束条件,转发该N个TSN报文流,其中,在该新的约束条件对应的时间周期的开始时间发送第一报文,该第一报文中携带用于指示该新的约束条件对应的时间周期的开始时间的定界信息,和/或在该新的约束条件对应的时间周期的结束时间发送第二报文,该第二报文中携带用于指示该新的约束条件对应的时间周期的结束时间的定界信息。在本可能的实现方式中,在时钟异步网络中,在发送新的报文流时在每个时间周期的报文内携带定界信息,以便于下一跳设备识别时间周期的边界。

在第一方面的一种可能的实现方式中,该新的约束条件对应的时间周期包括安全中心区和保护间隔区,该N个TSN报文流中的报文是在该安全中心区被转发的。在本可能的实现方式中,在时钟同步网络中,在新的约束条件对应的时间周期设置保护间隔区,以防止下一跳设备识别时间周期时发生边界识别错误。

应理解,该N个TSN报文流中的任意一个报文都没有在保护间隔区被转发。

在第一方面的一种可能的实现方式中,在该根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发该N个TSN报文流之前,该方法还包括:接收网络配置设备发送的用于指示该新的约束条件的信息;根据该用于指示该新的约束条件的信息,确定该新的约束条件。在本可能的实现方式中,新的约束条件是由网络配置设备确定的。

在第一方面的一种可能的实现方式中,在转发设备根据定义了时间周期长度、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发该N个TSN报文流之前,转发设备还可以获取N个TSN报文流中每个TSN报文流对应的约束条件;根据N个TSN报文流中每个TSN报文流对应的约束条件,确定新的约束条件。在本可能的实现方式中,新的约束条件是由转发设备确定的。

在第一方面的一种可能的实现方式中,该根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发该N个TSN报文流,包括:将该N个TSN报文流分别保存在N个缓存队列中,该N个TSN报文流与该N个缓存队列一一对应,每个缓存队列有控制报文输出的门控开关;根据与该新的约束条件对应的门控列表,通过控制该门控开关控制该N个缓存队列中的报文的输出。

在第一方面的一种可能的实现方式中,该根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发该N个TSN报文流,包括:将该N个TSN报文流分别保存在N个缓存队列中,该N个TSN报文流与该N个缓存队列一一对应;根据时隙转发表对保存在该N个缓存队列中的该N个TSN报文流进行转发。

在第一方面的一种可能的实现方式中,该根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发该N个TSN报文流,包括:按照新的约束条件从N个TSN报文流中取出相应的报文保存在第一缓存队列中,第一缓存队列中的报文是新的约束条件的一个时间周期内的报文;在对应的时刻将第一缓存队列中的报文输出。

在第一方面的一种可能的实现方式中,该N个TSN报文流中包括第一TSN报文流和第二TSN报文流,该第一TSN报文流对应的约束条件和该第二TSN报文流对应的约束条件不同。换而言之,本可能的实现方式更适用于N个TSN报文流中存在至少两个约束条件不同的TSN报文流的情况。

第二方面,提供了一种报文转发方法,包括:获取N个时间敏感网络TSN报文流中每个TSN报文流对应的定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的约束条件,其中,N为大于或等于2的正整数;根据该N个TSN报文流中每个TSN报文流的约束条件,确定定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,当该新的约束条件被转发设备用于转发该N个TSN报文流时,每个TSN报文流在遵循对应的约束条件的情况下被转发。

第二方面的报文转发方法,在多个TSN报文流转发的场景下配置一种新的约束条件,使得每个TSN报文流在遵循自己对应的约束条件的情况下被转发,有助于减小报文在转发时的抖动,可以提高系统转发报文的资源利用率和转发效率。

在第二方面的一种可能的实现方式中,转发设备可以根据新的约束条件,将N个TSN报文流作为一个新的报文流进行转发。

应理解,将N个TSN报文流作为一个新的报文流进行转发可以理解为将N个TSN报文流汇聚为一个新的报文流进行转发。

在第二方面的一种可能的实现方式中,该新的报文流中携带该新的报文流的流标识ID。

在第二方面的一种可能的实现方式中,该新的约束条件中的单个时间周期的时长是该N个TSN报文流对应的约束条件中的单个时间周期的时长的最小公倍数。

在第二方面的一种可能的实现方式中,该新的约束条件定义了在该新的约束条件对应的时间周期的开始时间发送第一报文,该第一报文中携带用于指示该新的约束条件对应的时间周期的开始时间的定界信息,和/或在该新的约束条件对应的时间周期的结束时间发送第二报文,该第二报文中携带用于指示该新的约束条件对应的时间周期的结束时间的定界信息。

在第二方面的一种可能的实现方式中,该新的约束条件对应的时间周期包括安全中心区和保护间隔区,该N个TSN报文流中的报文是在该安全中心区被转发的。

应理解,该N个TSN报文流中的任意一个报文都没有在保护间隔区被转发。

在第二方面的一种可能的实现方式中,该N个TSN报文流被分别保存在N个缓存队列中,该N个缓存队列中的报文是根据与该新的约束条件对应的门控列表,通过控制门控开关控制输出的,该N个TSN报文流与该N个缓存队列一一对应,每个缓存队列有控制报文输出的该门控开关。

在第二方面的一种可能的实现方式中,该N个TSN报文流被分别保存在N个缓存队列中,该N个TSN报文流与该N个缓存队列一一对应,该N个缓存队列中的该N个TSN报文流是根据时隙转发表转发的。

在第二方面的一种可能的实现方式中,该方法还包括:向转发设备发送用于指示该新的约束条件的信息。

在第二方面的一种可能的实现方式中,该方法还包括:接收该N个TSN报文流;根据该新的约束条件,转发该N个TSN报文流,该每个TSN报文流在遵循对应的约束条件的情况下被转发。

第三方面,提供了一种转发设备,该转发设备包括用于执行第一方面以及第一方面的任一种可能的实现方式的模块。

第四方面,提供了一种网络设备,该网络设备包括用于执行第二方面以及第二方面的任一种可能的实现方式的模块。

第五方面,提供了一种转发设备,该转发设备可以包括处理器和存储器,该存储器用于存储指令,当该处理器执行该存储器存储的指令时,使得转发设备执行第一方面以及第一方面的任一种可能的实现方式该的方法。

第六方面,提供了一种网络设备,该网络设备可以包括处理器和存储器,该存储器用于存储指令,当该处理器执行该存储器存储的指令时,使得网络设备执行第二方面以及第二方面的任一种可能的实现方式该的方法。

第七方面,一种计算机存储介质,其上存储有指令,当该指令在计算设备上运行时,使得该计算设备执行第一方面以及第一方面的任一种可能的实现方式该的方法。

第八方面,一种计算机存储介质,其上存储有指令,当该指令在计算设备上运行时,使得该计算设备执行第二方面以及第二方面的任一种可能的实现方式该的方法。

第九方面,一种计算机应用程序,该计算机应用程序包括有指令,当该指令在计算设备上运行时,使得该计算设备执行第一方面以及第一方面的任一种可能的实现方式该的方法。

第十方面,一种计算机应用程序,该计算机应用程序包括有指令,当该指令在计算设备上运行时,使得该计算设备执行第二方面以及第二方面的任一种可能的实现方式该的方法。

附图说明

图1是本申请一个实施例的报文转发方法的示意图。

图2是本申请一个实施例的输出端口的时间周期长度的示意图。

图3是本申请一个实施例的定界报文的示意图。

图4是本申请一个实施例的时间周期的示意图。

图5是本申请一个实施例的转发设备接收和转发的报文流的示意图。

图6是本申请一个实施例提供的对报文进行缓存的方案的示意图。

图7是本申请另一个实施例提供的对报文进行缓存的方案的示意图。

图8是本申请另一个实施例提供的对报文进行缓存的方案的示意图。

图9是本申请一个实施例的对缓存队列中的报文进行调度的示意图。

图10是应用本申请一个实施例的报文转发方法的示意图。

图11是本申请一个实施例中转发设备A转发报文流的示意图。

图12是本申请一个实施例的输出端口处的缓存队列的示意图。

图13是本申请另一个实施例中转发设备A转发报文流的示意图。

图14是本申请一个实施例中转发设备B转发报文流的示意图。

图15是本申请一个实施例的转发设备的示意性框图。

图16是本申请一个实施例中网络设备的示意性框图。

图17是本申请实施例提供的一种报文转发方法的流程示意图。

图18是本申请实施例提供的一种报文转发方法的流程示意图。

图19是本申请实施例提供的一种系统的示意性框图。

图20是本申请另一个实施例的转发设备的示意性框图。

图21是本申请另一个实施例的网络设备的示意性框图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

本申请中涉及的TSN可以是电气和电子工程师学会(Institute of Electricaland Electronics Engineers,IEEE)时间敏感网络工作组(time-sensitive networkingtask group)定义的标准。例如,TSN可以是IEEE802.1ASbt或者IEEE802.1Qcc。TSN报文流可以是遵循TSN的报文流。不同的TSN报文流可以具有不同的特征。例如,TSN报文流1的五元组不同于TSN报文流2的五元组。五元组可以包括源网际协议(Internet Protocol,IP)地址、目的IP地址、源端口、目的端口以及协议号(protocol)。再例如,TSN报文流1的约束条件不同于TSN报文流2的约束条件。约束条件可以包括单个时间周期的时长、单个报文的最大长度和单个时间周期内允许传输的报文的数量的最大值。关于约束条件,可以参考下文的说明。

本申请一个实施例提供了一种报文转发方法。该报文转发方法可以由转发设备执行。所述转发设备可以采用包交换架构。该报文转发方法可以包括:接收N个时间敏感网络TSN报文流,其中,N个TSN报文流中每个TSN报文流对应一个定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的约束条件,N为大于或等于2的正整数;根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流,每个TSN报文流在遵循对应的约束条件的情况下被转发,其中,新的约束条件是根据N个TSN报文流中每个TSN报文流对应的约束条件确定的。

本申请实施例的报文转发方法,在多个TSN报文流转发的场景下配置一种新的约束条件,使得每个TSN报文流在遵循自己对应的约束条件的情况下被转发,有助于减小报文在转发时的抖动,可以提高系统转发报文的资源利用率和转发效率。

应理解,本申请各实施例中约束条件可以包括单个时间周期的时长、单个报文的最大长度和单个时间周期内允许传输的报文的数量的最大值。其中,单个时间周期的时长具体可以对应于标准中的术语MeasurementInterval,也称为测量间隔;单个报文的最大长度具体可以对应于标准中的术语MaxFrameSize、单个时间周期内允许传输的报文的数量的最大值具体可以对应于标准中的术语MaxIntervalFrame。

关于MeasurementInterval、MaxFrameSize以及,请参考与音频/视频桥接(audio/video bridging,AVB)有关的标准。具体可以是IEEE802.1 AVB工作组发布的标准。例如,802.1ba,802.1as、802.1at或者802.1av。

还应理解,本申请实施例中,单个时间周期的时长可以以时间,例如,纳秒、微秒、毫秒等表征。单个时间周期的时长也可以结合带宽,以数据量,例如,比特、字节等表征,本申请实施例对此不作限定。

TSN报文流在转发设备的各个端口输入或输出是有周期性规律的,约束条件就是用来表示该周期性规律的参数。换句话说,TSN报文流是按照一定的时间周期循环输入转发设备的,且每一个时间周期内的数据量有上限。但本申请实施例并不仅限服务于严格的固定比特率(Constant Bit Rate,CBR)报文流,如果报文流存在一定波动性,则需要转发设备按照单个时间周期内发送数据量的上限进行配置和转发预留。在转发报文的过程中,如果没有收到足量的TSN报文,可以从低优先级的报文队列中调度报文,避免带宽浪费。

本申请实施例的新的约束条件除包括以上三个参数外,还可以包括体现新的约束条件中的时间周期与N个TSN报文流的时间周期之间的层次关系或嵌套关系的参数,本申请实施例对此不作限定。此外,本申请实施例的约束条件还可以包括其他参数,本申请实施例对此不作限定。

图1是本申请一个实施例的报文转发方法的示意图。转发设备具有M个输入端口。例如图1示出了4个输入端口,分别是端口#1、端口#2、端口#3和端口#4。M个输入端口中的N个输入端口用于接收N个TSN报文流。N个输入端口与N个TSN报文流一一对应。图1提供的示意图中,N等于3。具体来说,端口#1、端口#2和端口#3用于接收TSN报文流。例如,端口#1、端口#2和端口#3上接收的TSN报文流分别为报文流#1、报文流#2和报文流#3。每个TSN报文流(报文流#1、报文流#2和报文流#3)对应一个约束条件。例如,报文流#1的单个时间周期的时长为T1。此外,报文流#1的约束条件还包括单个报文的最大长度和单个时间周期内允许传输的报文的数量的最大值。报文流#2的单个时间周期的时长为T2,报文流#2的约束条件还包括单个报文的最大长度和单个时间周期内允许传输的报文的数量的最大值。报文流#3的单个时间周期的时长为T3,报文流#3的约束条件还包括单个报文的最大长度和单个时间周期内允许传输的报文的数量的最大值。

本申请实施例中,N个TSN报文流中的任意两个TSN报文流可以具有相同的约束条件,也可以具有不同的约束条件。当任意两个TSN报文流具有不同的约束条件时,约束条件中的三个参数可以完全不同,也可以部分不同。换而言之,N个TSN报文流中包括第一TSN报文流和第二TSN报文流,第一TSN报文流对应的约束条件和第二TSN报文流对应的约束条件可以不同。例如,第一TSN报文流的单个时间周期的时长不同于第二TSN报文流的单个时间周期的时长。或者,第一TSN报文流的单个时间周期的时长等于第二TSN报文流的单个时间周期的时长,并且第一TSN报文流的单个时间周期内允许传输的报文的数量的最大值不同于第二TSN报文流的单个时间周期内允许传输的报文的数量的最大值。

转发设备具有至少一个输出端口,用于转发接收到的报文流。例如,输出端口可以是图1中的端口#5。转发设备可以根据新的约束条件,将N个TSN报文流作为一个新的报文流进行转发。在本申请实施例中,将N个TSN报文流作为一个新的报文流进行转发时,可以将N个TSN报文流汇聚为一个新的报文流,并对新的报文流进行转发。新的报文流对应新的约束条件。新的约束条件包括:单个时间周期的时长(例如图1中的T

TSN报文流中可以携带有流标识(IDentity,ID)。例如报文流#1携带流ID#1。报文流#2携带流ID#2。报文流#3携带流ID#3。本申请实施例中,转发设备可以在N个TSN报文流汇聚成的新的报文流中添加新的报文流的ID。也就是说,新的报文流中的每个报文可以携带新的报文流ID。这样,转发设备将新的报文流转发至下一跳设备时,下一跳设备可以根据接收到的报文中携带的所述新的报文流ID,对接收到的报文进行处理。也就是说,下一跳设备可以根据报文中携带的所述新的报文流ID,将报文流#1中的报文、报文流#2中的报文以及报文流#3中的报文作为同一个报文流中的报文。假设所述新的报文流中没有携带所述新的报文流ID,则所述下一跳设备可能会将报文流#1中的报文和报文流#2中的报文作为不同的报文流中的报文。对该新的报文流进行相关操作,例如配置门控列表或时隙转发表等对新的报文流进行转发,门控列表和时隙转发表将在下文中详细说明。当然,本申请实施例中,转发设备也可以不在新的报文流中添加新的报文流的ID,尤其是在网络中所有的转发设备时钟同步的情况下。

可选地,新的约束条件可以由转发设备确定。例如,在转发设备根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发所述N个TSN报文流之前,转发设备还可以获取N个TSN报文流中每个TSN报文流对应的约束条件;根据N个TSN报文流中每个TSN报文流对应的约束条件,确定新的约束条件。

转发设备确定新的约束条件后,可以将确定的新的约束条件通知下一跳转发设备,以保证收发双端配置一致。具体而言,例如转发设备确定新的约束条件后,将新的约束条件中的单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度等通知下一跳转发设备,以便于下一跳转发设备按照相应的参数进行解析或其他处理等等,本申请实施例对此不作限定。

可选地,新的约束条件可以由网络配置设备确定。例如,在根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流之前,转发设备还可以接收网络配置设备发送的用于指示新的约束条件的信息;根据用于指示新的约束条件的信息,确定新的约束条件。相应地,网络配置设备向转发设备发送用于指示新的约束条件的信息。

应理解,网络配置设备计算得到新的约束条件后,可以将计算的新的约束条件至少通知一个链接的收发双端,以保证收发双端配置一致。具体而言,例如网络配置设备确定新的约束条件后,将新的约束条件中的单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度等通知转发设备和对应的下一跳转发设备,以便于转发设备按照相应的参数进行发送,下一跳转发设备按照相应的参数进行解析或其他处理等等,本申请实施例对此不作限定。

还应理解,转发设备或网络配置设备确定新的约束条件,可以是在报文流开始发送之前,数据链路建立期间。具体而言,在报文流被转发之前,在网络中需建立用于传输报文流的数据链路,该数据链路可以包括一跳或多跳转发设备。在数据链路建立期间,数据链路上的转发设备可以获取自身需转发的报文流的约束条件,来确定新的约束条件;或数据链路对应的网络配置设备获取各报文流的约束条件,来确定用于传输报文流的数据链路上的转发设备在转发时需遵循的新的约束条件。

前文中说明了约束条件至少具有三个参数。新的约束条件对应的三个参数的设定,应使得每个TSN报文流均遵循自身的约束条件。对于新的约束条件中的单个时间周期的时长,显而易见的是,在同一个输出端口上,如果各TSN报文流仍遵循原来各自的约束条件被转发,那么TSN报文流中高速率报文流对应的时间周期短,低速率报文流对应的时间周期长。当输出端口混合承载不同速率的报文流时,转发设备或网络配置设备可以设置一个组合时间周期来满足同时传输不同速率的报文流的需求。组合时间周期支持层次化的设计,即一个大时间周期中包含多个小时间周期,且可以用不同的符号(例如,可以只用报文流的流标识(IDentity,ID))来标识不同的报文流的小时间周期的位置。例如,下文中表1就是用流ID来标识各报文流的小时间周期在大时间周期中的位置。

在一个具体的例子中,输出端口的单个时间周期的时长(大时间周期的时长)可以是N个TSN报文流的单个时间周期的时长的最小公倍数(Lowest Common Multiple,LCM),即T

应理解,通常而言,转发设备的输出端口的时间周期对应的最小时间单位是转发设备能转发处理的最小时间单位,即转发设备的输出端口的单个时间周期的时长是转发设备能转发处理的最小时间单位的整数倍。因此,转发设备或网络配置设备在确定新的约束条件中的单个时间周期的时长时,可能存在由于需要考虑转发设备能转发处理的最小时间单位,而不能以最小公倍数作为输出端口的单个时间周期的时长的情况。此时,转发设备或网络配置设备可以将输出端口的单个时间周期的时长设置为最小公倍数加一个适配值Tr。例如,图2是本申请一个实施例的输出端口的单个时间周期的时长的示意图。如图2所示,输出端口的单个时间周期的时长T

本申请实施例的新的约束条件中的单个时间周期的时长可以大于或等于所有TSN报文流的输入端口的单个时间周期的时长中的最大值。即,新的约束条件中的单个时间周期的时长的设计,可以满足使得每个TSN报文流的报文在一个时间周期内至少发送一次,但本申请实施例对此不作限定。

新的约束条件中的单个时间周期内允许传输的报文的数量的最大值可以大于或等于所有TSN报文流的单个时间周期内允许传输的报文的数量的最大值的和。新的约束条件的单个时间周期内可以发送N个TSN报文流中每个TSN报文流在单个时间周期内传输的报文。对于新的约束条件中的单个报文的最大长度,可以等于所有TSN报文流的的单个报文的最大长度的最大值中的最大值。例如,假设报文流#1的单个报文的最大长度为L1。假设报文流#2的单个报文的最大长度为L2。假设报文流#3的单个报文的最大长度为L3。L1大于L2。L2大于L3。则新的约束条件中的单个报文的最大长度可以等于L1。但是,本申请实施例不对新的约束条件的单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度等参数的大小进行限定。

除了上述配置之外,转发设备通过对时间周期的边界的识别,从而区分各个报文流中的报文块并将其放入相应的缓存队列中保存,以等待转发。时间周期的边界识别分为网络中设备时钟同步以及网络中设备时钟异步两种情况。

在时钟异步网络中,各设备在发送报文流时通常可以通过在每个时间周期的报文内携带定界信息,或者其他带外信息等手段来界定时间周期的边界,以便于下一跳设备识别时间周期的边界。应理解,该定界信息可以携带在TSN报文流中,例如可以在时间周期的开始时间、结束时间发或其他约定的时间发送定界信息。该定界信息可以携带在专用的定界报文中,该定界报文在时间周期的开始时刻、结束时刻发或其他约定的时刻发送。专用的定界报文不属于所述N个TSN报文流中的任意一个TSN报文流。另外,专用的定界报文可以在两个时间周期之间,其本身可以不属于任何时间周期。时钟异步网络的情况需要额外的定界信息,但是时间资源浪费较少,且配置相对简单。当然,时钟异步网络也可以通过其他方式判定时间周期的边界,本申请实施例对此不作限定。

在一个具体的例子中,根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流,可以包括:根据新的约束条件,转发N个TSN报文流,其中,在新的约束条件对应的时间周期的开始时间发送第一报文,第一报文中携带用于指示新的约束条件对应的时间周期的开始时间的定界信息,和/或在新的约束条件对应的时间周期的结束时间发送第二报文,第二报文中携带用于指示新的约束条件对应的时间周期的结束时间的定界信息。

图3是本申请一个实施例的定界报文的示意图。如图3所示,端口#1、端口#2和端口#3分别接收的报文流#1、报文流#2和报文流#3。报文流#1、报文流#2和报文流#3在各自的时间周期的开始时间均携带有定界报文,这些定界报文可以是上一跳设备,即发送报文流#1、报文流#2和报文流#3的设备添加的。端口#5发出的新的报文流在时间周期的开始时间也携带有定界报文,该定界报文可以是图3所示的转发设备添加的。

在时钟同步网络中,网络中的各设备的时钟配置是相同的(或至少期望其是相同的)。因此,转发设备可以通过自身的时钟(其余网络中其他设备的时钟所指示的时间与该转发设备的时钟指示的时间是相同或至少是相近的)来判断时间周期的边界。由于网络中各转发设备的时钟精度可能不同,并且相对可能存在左右漂移,这造成时间周期的边界部分有一定范围的抖动,在抖动范围内的时间不能发送TSN报文,否则可能会由于时间周期边界判断不准确,造成某些转发设备调度错误。本申请实施例的方法,在时间周期内设置一定的保护间隔区来预防时钟精度不够可能带来的边界识别错误,以及可能造成的调度错误。本申请实施例只在每个时间周期的安全中心区发送TSN报文,在每个时间周期的保护间隔区不发送TSN报文,例如不发送报文或者只发送非TSN报文。所述非TSN报文报文可以是背景(BackGround,BG)流的报文,也可能是其他的优先级较低的报文,本申请实施例对此不作限定。综上,时钟同步网络的情况需要预留一定的保护间隔区,这会带来的一些额外的资源浪费。

在一个具体的例子中,新的约束条件对应的时间周期包括安全中心区和保护间隔区,N个TSN报文流中的报文是在安全中心区被转发的。N个TSN报文中的任意一个报文都没有在保护间隔区被转发。换而言之,本申请实施例中,根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流,可以包括:根据新的约束条件,转发N个TSN报文流,其中,新的约束条件对应的每个时间周期包括安全中心区和保护间隔区,在新的约束条件对应的每个时间周期的安全中心区发送TSN报文,新的约束条件对应的每个时间周期的保护间隔区不发送TSN报文。

图4是本申请一个实施例提供的两个相邻的时间周期的示意图。如图4所示,新的约束条件对应的时间周期长度为T

在TSN报文流通过输入端口进入转发设备后,转发设备将报文缓存起来,然后按照新的约束条件将报文从输出端口输出。具体地,转发设备可以根据接收的报文流各自对应的约束条件和/或报文流的流ID,将报文流识别后,存储在至少一个缓存队列中。缓存队列的分配方式有多种。例如,可以按照报文流的流ID分配缓存队列,或者可以按照输出端口的时间周期(例如时间周期ID,即CycleID)分配缓存队列,或者按照流ID和CycleID的组合条件分配缓存队列,下文将会分别对这3种情况进行详细说明。本申请实施例还可以按照其他条件分配缓存队列,本申请实施例对此不作限定。不同的缓存队列分配方式在报文流之间的时延干扰以及实现难度等方面存在差异,在具体的实现中可以由转发设备或网络配置设备视具体情况确定。

图5是本申请一个实施例的转发设备接收和转发的报文流的示意图。在图5所示的例子中,转发设备接收3个TSN报文流,报文流#1(流ID为flow1)、报文流#2(流ID为flow2)和报文流#3(流ID为flow3)。其中,报文流#1的单个时间周期的时长为T1;报文流#2的单个时间周期的时长为T2,T2=T1;报文流#3的单个时间周期的时长为T3,是报文流#1的单个时间周期的时长的二倍加一个报文流#3的突发长度(Burst Length,BL),BL对应于报文流#3的单个报文的最大长度。如图5所示,转发设备在新的约束条件下,将报文流#1、报文流#2和报文流#3汇聚成新的报文流进行转发。新的报文流的时间周期长度T

报文流进入转发设备后,可以按照上文中描述的不同的分配方式进入至少一个缓存队列。在一种缓存方案中,转发设备将N个TSN报文流分别保存在N个缓存队列中,N个TSN报文流与N个缓存队列一一对应。图6是本申请一个实施例提供的对报文进行缓存的方案的示意图。如图6所示,该方案中,转发设备按照流ID分配缓存队列。流ID为flow1的报文流#1的报文进入缓存队列Q1中,流ID为flow2的报文流#2的报文进入缓存队列Q2中,流ID为flow3的报文流#3的报文进入缓存队列Q3中。

在另一种缓存方案中,转发设备内部可以缓存多个时间周期的数据。转发设备将N个TSN报文流按照输出端口发送报文的时间周期形成缓存队列,同一输出时间周期的多个报文流的报文可以存储在一个缓存队列里。一个时间周期内的报文在缓存队列的先后顺序可以遵循预设的顺序。本申请对一个时间周期内的报文在缓存队列的先后顺序不作限定。图7是本申请另一个实施例提供的对报文进行缓存的方案的示意图。如图7所示,该方案中,转发设备按照时间周期ID分配缓存队列。时间周期#1的报文(例如图7中左边的虚线框中的报文)进入缓存队列Q1中,时间周期#2(例如图7中右边的虚线框中的报文)的报文进入缓存队列Q2中。值得注意的是,转发设备的缓存队列的数量M可以由设备转发的内部时延(Internal Delay)和新的报文流的时间周期长度(New MeasurementInterval)决定。例如,M=Internal Delay/New MeasurementInterval+1。其中,设备转发的内部时延是指由于转发设备进行转发时需要进行相关的处理需要一定的时间从而引发的时延,是与转发设备的转发能力相关的时延。

在另一种缓存方案中,转发设备按照流ID和时间周期ID形成缓存队列。图8是本申请另一个实施例提供的对报文进行缓存的方案的示意图。如图8所示,该方案中,转发设备按照流ID和时间周期ID分配缓存队列。长度为T3的时间周期(例如图8中的报文流#3的时间周期)的第一个T1时间周期(例如图8中的报文流#1或报文流#2的时间周期)内收到的报文流#1的报文和报文流#2的报文(例如图8中左上的虚线框中的报文)进入Q1,长度为T3的时间周期的第二个T1时间周期(例如图8中的的报文流#1或报文流#2的时间周期)内收到的报文流#1的报文和报文流#2的报文(例如图8中右上的虚线框中的报文)进入Q2,长度为T3的时间周期内的报文流#3(例如图8中左下的虚线框中的报文)的报文进入Q3。因此,长度为T3的时间周期结束时,Q1中包含1个来自报文流#1的报文,1个来自报文流#2的报文。Q2中包含1个来自报文流#1的报文,1个来自报文流#2的报文。Q3中包含1个来自报文流#3的报文。

转发设备在输出端口处根据新的约束条件进行调度,从各个缓存队列中取出报文进行输出。图9是本申请一个实施例的对缓存队列中的报文进行调度的示意图。如图9所示,转发设备有m个缓存队列,Q1,Q2,…,Qm-1,Qm。每个缓存队列有控制报文输出的门控开关,分别为G1,G2,…,Gm-1,Gm。转发设备根据预先配置的门控列表在相应时刻打开或关闭相应的门控开关。换而言之,转发设备根据与新的约束条件对应的门控列表,通过控制门控开关控制N个缓存队列中的报文的输出,门控列表的具体形式在下文中进行详细说明。

进一步地,在每一个开关时刻前可以设置保护时间,即转发设备提前关闭前一缓存队列以免前一缓存队列最后发送的报文在传输时间上干扰下一缓存队列报文的发送。按照新的约束条件在相应缓存队列中没有取到报文时,输出端口可以调度BG流的报文,这样可以提高网络链路的利用率。

除采用门控列表和门控开关的方式对缓存队列中的报文进行调度以外,本申请实施例还可以采用写操作和读操作对缓存队列中的报文进行调度。具体而言,转发设备可以在接收到TNS报文流时,生成写操作指令,通过写指针将报文写入相应的缓存队列中。转发设备可以根据新的约束条件生成读操作指令,通过读指针将报文从相应的缓存队列中读取出来并转发出去。

前文中给出了转发N个TSN报文流的两种可选地方案,一种是:将N个TSN报文流分别保存在N个缓存队列中,N个TSN报文流与N个缓存队列一一对应,每个缓存队列有控制报文输出的门控开关;根据与新的约束条件对应的门控列表,通过控制门控开关控制N个缓存队列中的报文的输出。另一种是:按照新的约束条件从N个TSN报文流中取出相应的报文保存在第一缓存队列中,第一缓存队列中的报文是新的约束条件的一个时间周期内的报文;在对应的时刻将第一缓存队列中的报文输出。

应理解,本申请实施例中可以通过其他的方式控制转发N个TSN报文流。例如,转发设备可以设置接收缓存和发送缓存,按照预设的规则将接收的N个TSN报文流的报文缓存在接收缓存中;然后按照新的约束条件,将接收缓存中的报文排列好以备发出。再如,转发设备可以设置多级缓存,对报文进行多级调整,使其符合新的约束条件再发出。又如,如果转发设备处理能力较强或者某时间段内待转发的报文流或报文数据量较少,转发设备可以直接从内部缓存中将报文按照新的约束条件转发出去。又如,由于网络中的所有的转发设备是统一配置的,这些转发设备对TSN报文流协同调度。因此,在TSN报文流在网络中占比较小的情况下,转发设备有可能预知TSN报文的到达时间,并在对应的时间段内打开门控开关,得到报文直通转发的效果,该情况要求的缓存很小且转发时间极短。本申请实施例对转发N个TSN报文流的具体实现方式不作限定。

下面以一个具体的例子说明本申请实施例的报文转发方法。图10是应用本申请一个实施例的报文转发方法的场景的示意图。图10所示是TSN报文流汇聚的场景。报文流A1和报文流B1ˉ报文流B4是TSN报文流,即是关键数据的信息源;报文流BG是低优先级的背景流。所有的报文流在转发设备A处汇聚,转发设备A的输出端口带宽100Mbps。报文流A1是高速报文流,带宽需求50Mbps;报文流B1ˉ报文流B4的带宽是10Mbps。报文流A1和报文流B1ˉ报文流B4都是周期性传输报文流,报文流A1的时间周期T1是报文流B1ˉ报文流B4的时间周期T2的五分之一。背景流BG的周期特性不受限制,其传输优先级最低。背景流可以在任何带宽空隙插入调度。其中,报文流A1和报文流B1ˉ报文流B4以及背景流BG的流ID可以分别为A1、B1、B2、B3、B4和BG。

报文流A1和报文流B1ˉ报文流B4开始发送报文前,会向网络中申请带宽并注册其指示报文流的周期性的约束条件。只有各报文流得到确认后,报文流才会开始发送报文。因此网络中的各个节点转发设备A、转发设备B和转发设备C(转发设备也称为桥接(Bridge)设备)均获得了报文流A1和报文流B1ˉ报文流B4的周期特性,并分配相应带宽来保证关键数据的时延质量。本申请实施例的报文转发方法可以应用于网络中的所有转发设备,例如包括转发设备A、转发设备B和转发设备C。假设本申请实施例网络中的所有转发设备和链路上均存在时钟差异和传输抖动。所有信息源和转发设备在周期性发送报文时定期插入定界报文;相邻两个定界报文间的TSN报文组成一组,在下一跳设备中成组的TSN报文仍然被成组转发;如果一个时间周期内没有有效报文,也需要定时发送定界报文。

图11是本申请一个实施例中转发设备A转发报文流的示意图。如图11所示,报文流A1从端口#1进入转发设备A;报文流B1ˉ报文流B4从端口#2ˉ端口#5进入转发设备A;背景流BG从端口#9进入转发设备A。报文流A1的频率是报文流B1ˉ报文流B4的频率的5倍。在网络中各设备时钟异步的情况下,报文流A1和报文流B1ˉ报文流B4没有同步关系,可能错开时间发送报文到转发设备A,也有可能同时到达。

通过预先计算或配置,转发设备A的输出端口#10可以配置层次化的新的约束条件。由于T2是T1的整倍数,可以采用T2作为端口#10的时间周期(cycle),其中包括10个子时间周期(sub-cycle),子时间周期也称为时隙。10个子时间周期可以用来发送报文流A1或报文流B1ˉ报文流B4。在空闲的子时间周期可以发送低优先级的背景流BG。表1是输出端口#10的时隙(Time Slice)安排表,它是门控列表的一种具体形式。本申请实施例的门控列表不仅限于表1所示的时隙安排表的形式。

表1输出端口#10的时隙安排表

在本实施例中,转发设备A将5个TSN报文流分别保存在5个缓存队列中,将背景流保存在一个缓存队列中。图12是本申请一个实施例的输出端口处的缓存队列的示意图。如图12所示,报文流A1缓存在缓存队列Q1,报文流B1缓存在缓存队列Q2,报文流B2缓存在缓存队列Q3,报文流B3缓存在缓存队列Q4,报文流B4缓存在缓存队列Q5,背景流BG缓存在缓存队列BG。每个缓存队列有门控开关,分别为G1,G2,G3,G4,G5和GBG。门控列表的内容与新的约束条件相对应,其用于在相应的时隙控制各开关,从相应的缓存队列中调度报文转发出去。门控列表中具体可以包括表1中的时隙的编号以及对应的报文流的流ID。

除采用门控列表的方式控制报文的转发外,本申请实施例还可以采用时隙转发表的方式控制报文的转发。关于时隙转发表的具体实现方式,可参考表2。在表2所示的实现方式中,时隙转发表中可以包括多个表项。每个表项包括一个时隙的标识以及与该时隙对应的报文的标识。所述转发设备根据本地时钟的时间确定当前的时间。根据当前的时间在时隙转发表中查找到与当前的时间匹配的表项。根据匹配的表项中的报文的标识,对报文进行转发。例如,时隙转发表可以包含60个表项,60个表项分别指示了60个时隙(例如表2中所示的时隙#1,时隙#2,…,时隙#60)。所述60个时隙可以分别对应1分钟中的60秒。其中,1个时隙对应1秒。例如,假设当前的时间是8点3分0秒至8点3分1秒之间的一个时间(例如,8点3分0秒10毫秒),则转发设备可以确定当前的时间与时隙转发表中的第一个表项(时隙的标识为时隙#1,报文的标识为报文#1)匹配。假设当前的时间是8点3分1秒至8点3分2秒之间的一个时间(例如,8点3分1秒15毫秒),则转发设备可以确定当前的时间与时隙转发表中的第二个表项(时隙的标识为时隙#2,报文的标识为报文#2)匹配。再例如,假设当前的时间是9点5分0秒至9点5分1秒之间的一个时间(例如,9点5分0秒8毫秒),则转发设备可以确定当前的时间与时隙转发表中的第一个表项(时隙的标识为时隙#1,报文的标识为报文#1)匹配。假设当前的时间是8点3分0秒10毫秒,则转发设备可以根据第一个表项中的报文的标识,对报文进行转发。具体地,转发设备的网络处理器可以从转发设备的本地时钟获取当前的时间。本地时钟包含一个用于记录当前的时间的寄存器。网络处理器获取到当前的时间后,可以以当前的时间为查找关键字,在时隙转发表中查找与当前的时间匹配的表项。报文的标识可以是报文在存储器中的存储地址,存储器中的报文可以随时间进行更新。所述转发设备中的网络处理器可以通过执行一个读指令,从而实现对报文的转发。所述读指令的操作数可以是所述报文的存储地址。

表2输出端口#10的时隙转发表

相对应地,N个TSN报文流被分别保存在N个缓存队列中,N个TSN报文流与N个缓存队列一一对应,N个缓存队列中的N个TSN报文流是根据时隙转发表转发的。或者,根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流,可以包括:将N个TSN报文流分别保存在N个缓存队列中,N个TSN报文流与N个缓存队列一一对应;根据时隙转发表对保存在N个缓存队列中的N个TSN报文流进行转发。

应理解,表2中报文#1,报文#2,…,报文#60分别对应N个TSN报文流中相应的报文流,或者对应为背景流中的报文。以N个TSN报文流中的第一TSN报文流为例,报文#1,报文#2,…,报文#60中属于第一TSN报文流的报文的时间周期仍保持第一TSN报文流的时间周期;报文#1,报文#2,…,报文#60中属于第一TSN报文流的报文的最大长度也仍符合第一TSN报文流的单个报文的最大长度;报文#1,报文#2,…,报文#60中属于第一TSN报文流的报文的数量的最大值是第一TSN报文流的单个时间周期内允许传输的报文的数量的X倍(60秒是第一TSN报文流的单个时间周期的X倍)。即,第一TSN报文流在遵循对应的约束条件的情况下被转发。N个TSN报文流中其他的报文流情况与第一TSN报文流类似,此处不再赘述。

还应理解,本申请实施例中,N个TSN报文流可以被分别保存在N个缓存队列中,也可以存储在一个或几个缓存中。转发设备转发报文时,通过报文的标识中的存储地址直接找到相应的报文,本申请实施例对此不作限定。

假设本申请实施例网络中的所有转发设备和链路是时钟同步的,汇聚后的新的报文流不需要插入定界报文来划分时间周期的边界。图13是本申请另一个实施例中转发设备A转发报文流的示意图。由于网络中各设备时钟同步,并且本申请实施例的方法对TSN报文流的发送时钟周期进行统一规划,使得不同输入端口上的报文可以避免冲突且转发设备内部缓存可以很小,TSN报文可以在很短的时延内转发出去。需要注意的是,由于协议1588或者其他时钟同步技术均存在不同程度的时钟漂移,并且链路也会随着外部温度环境变化等干扰因素发生时延抖动,因此网络全局的时钟同步也存在一定的误差。如图13所示,在时间周期规划调度上,可以把误差范围内的时间段避开,在时间周期的边界上设备保护间隔区。

应理解,本实施例的转发设备B和转发设备C的输入、输出可以与转发设备A类似。图14是本申请一个实施例中转发设备B转发报文流的示意图。在图13的例子中,多个报文流在转发设备A的输出端口汇聚成一个新的报文流,作为图14中的转发设备B的端口#1的一个输入,将该新的报文流称为报文流M。在转发设备B看来,报文流M是一条报文流,其中包括很多报文。转发设备B需要再汇入一个报文流#6(从端口#2输入)。报文流M和报文流#6可能会有发送瞬时冲突的情况。因为转发设备B为TSN流分配的带宽一定是足够的,所以转发设备B的输出端口#3长期来看带宽一定是足够的,即一定能找到空闲时间段在报文流M中插入报文流#6的报文。

在瞬时冲突时,本申请实施例的转发设备B的处理可以分两种情况。一种情况是,转发设备B具有报文流M中各报文流汇聚前的信息(可以通过提前配置来部署)。转发设备B在合并报文流M和报文流#6时,可以具有确定的配置,即具有新的固定安排。转发设备B的输出端口#3将报文流M和报文流#6又汇聚成一条新的报文流(未在图14中示出)。

另一种情况是,转发设备B不具有报文流M中各报文流汇聚前的信息。那么对于转发设备B来说,需把报文流M和报文流#6简单地调度到同一个输出端口#3上。此时,可以不保证报文流M和报文流#6的调度顺序。例如,可以如图14所示的顺序进行调度。报文流M和报文流#6汇聚成的新的报文流中,原始报文流#3的报文3相对于报文流M而言,在间奏上发生了变化,然而其最终在时间周期和间隔上没有发生变化。本申请实施例的报文转发方法允许在一定时间范围内具有一定的时延和抖动,当然也可以设计精确的时延并且不允许抖动,本申请实施例对此不作限定。

下面详细分析本申请实施例的报文转发方法可能带来的效果。传统的互联协议(Internet Protocol,IP)网络没有报文流的约束条件规划。当多报文流汇聚到一个输出端口时,源自多个输入端口的报文同时到达一个输出端口可能形成突发。现有的以太网机制是只使得相同输入端口的报文在输出端口被发送时不乱序,不同输入端口之间的报文可以以任何顺序调度出队。网络突发情况可能会占用大量缓存,并且导致时延的瞬时加大或者由于缓存不够而丢包。本申请实施例的报文转发方法对汇聚后的新的报文流的新的约束条件进行规划,可以有效地避免报文流冲突,因而避免丢包和时延抖动,在可预期的时间内完成报文地存储转发。

同时,本申请实施例的报文转发方法中提出的层次化的时间周期,使得高速报文流和低速报文流可以交替输出,将高速报文流尽量均匀的分布在输出端口的时序上,可以避免同时到达的大量低速报文流阻塞高速报文流的报文带来的报文突发。

此外,由于传统IP网络的流量模式的不确定性,现网规划不能100%的分配带宽,在用户流量达到50%或者更低时就考虑升级接口带宽,以避免出现报文丢包和时延恶化。本申请实施例的报文转发方法基于预先的时间周期规划,可以支持端口接近满速率转发关键数据。转发设备内部可以在有确定上限的时延内转发报文。

上文对本申请实施例的报文转发方法进行了说明,下文将详细说明本申请实施例的转发设备和网络设备。

图15是本申请一个实施例的转发设备100的示意性框图。转发设备100可以用于执行图1对应的实施例描述的方法。如图15所示,转发设备100可以包括:处理器110和存储器120。处理器110可以通过总线130连接到存储器120。存储器120用于存储指令,当处理器110执行存储器120存储的指令时,使得处理器110完成以下步骤:接收N个时间敏感网络TSN报文流,其中,N个TSN报文流中每个TSN报文流对应一个定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的约束条件,N为大于或等于2的正整数;根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流,每个TSN报文流在遵循对应的约束条件的情况下被转发,其中,新的约束条件是根据N个TSN报文流中每个TSN报文流对应的约束条件确定的。

举例来说,转发设备100可以包括至少一个接收器(图15中未示出)。处理器110可以经由所述至少一个接收器接收所述N个TSN报文流。转发设备100可以包括至少一个发送器(图15中未示出)。处理器110可以经由所述至少一个发送器转发所述N个TSN报文流。

本申请实施例的转发设备,在多个TSN报文流转发的场景下配置一种新的约束条件,使得每个TSN报文流在遵循自己对应的约束条件的情况下被转发,有助于减小报文在转发时的抖动,可以提高系统转发报文的资源利用率和转发效率。

可选地,作为一个实施例,新的约束条件中的单个时间周期的时长可以是N个TSN报文流对应的约束条件中的单个时间周期的时长的最小公倍数。

可选地,作为一个实施例,处理器110根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流,可以包括:根据新的约束条件,转发N个TSN报文流,其中,在新的约束条件对应的时间周期的开始时间发送第一报文,第一报文中携带用于指示新的约束条件对应的时间周期的开始时间的定界信息,和/或在新的约束条件对应的时间周期的结束时间发送第二报文,第二报文中携带用于指示新的约束条件对应的时间周期的结束时间的定界信息。

可选地,作为一个实施例,新的约束条件对应的时间周期可以包括安全中心区和保护间隔区,N个TSN报文流中的报文可以是在安全中心区被转发的。

可选地,作为一个实施例,在处理器110根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流之前,处理器还可以用于执行:接收网络配置设备发送的用于指示新的约束条件的信息;根据用于指示新的约束条件的信息,确定新的约束条件。

可选地,作为一个实施例,处理器110根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发N个TSN报文流,可以包括:将N个TSN报文流分别保存在N个缓存队列中,N个TSN报文流与N个缓存队列一一对应,每个缓存队列有控制报文输出的门控开关;根据与新的约束条件对应的门控列表,通过控制门控开关控制N个缓存队列中的报文的输出。

图16是本申请一个实施例的网络设备200的示意性框图。网络设备200可以用于执行图1对应的实施例描述的方法。如图16所示,网络设备200可以包括:处理器210和存储器220。处理器210可以通过总线230连接到存储器220。存储器220用于存储指令,当处理器210执行存储器220存储的指令时,使得处理器210可以完成以下步骤:获取N个时间敏感网络TSN报文流中每个TSN报文流对应的定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的约束条件,其中,N为大于或等于2的正整数;根据N个TSN报文流中每个TSN报文流的约束条件,确定定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,当新的约束条件被转发设备用于转发N个TSN报文流时,每个TSN报文流在遵循对应的约束条件的情况下被转发。

举例来说,网络设备200可以包括至少一个接收器(图16中未示出)。处理器210可以经由所述至少一个接收器接收所述N个TSN报文流的约束条件。网络设备200还可以包括至少一个发送器(图16中未示出),以便于处理器经由至少一个发送器将新的约束条件发送给相应的转发设备,本申请实施例对此不作限定。

本申请实施例的网络设备,在多个TSN报文流转发的场景下配置一种新的约束条件,使得每个TSN报文流在遵循自己对应的约束条件的情况下被转发,有助于减小报文在转发时的抖动,可以提高系统转发报文的资源利用率和转发效率。

可选地,作为一个实施例,新的约束条件中的单个时间周期的时长可以是N个TSN报文流对应的约束条件中的单个时间周期的时长的最小公倍数。

可选地,作为一个实施例,新的约束条件定义了在新的约束条件对应的时间周期的开始时间发送第一报文,第一报文中携带用于指示新的约束条件对应的时间周期的开始时间的定界信息,和/或在新的约束条件对应的时间周期的结束时间发送第二报文,第二报文中携带用于指示新的约束条件对应的时间周期的结束时间的定界信息。

可选地,作为一个实施例,新的约束条件对应的时间周期可以包括安全中心区和保护间隔区,N个TSN报文流中的报文可以是在安全中心区被转发的。

可选地,作为一个实施例,N个TSN报文流被分别保存在N个缓存队列中,N个缓存队列中的报文是根据与新的约束条件对应的门控列表,通过控制门控开关控制输出的,N个TSN报文流与N个缓存队列一一对应,每个缓存队列有控制报文输出的门控开关。

图17为本申请实施例提供的一种报文转发方法的流程示意图。举例来说,图15所示的转发设备100可以执行图17所示的方法。参见图17,所述方法可以包括S1701以及S1702。

S1701,接收N个时间敏感网络TSN报文流。

其中,所述N个TSN报文流中每个TSN报文流对应一个定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的约束条件,N为大于或等于2的正整数。

S1702,根据定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件,转发所述N个TSN报文流。

每个TSN报文流在遵循对应的约束条件的情况下被转发,其中,所述新的约束条件是根据所述N个TSN报文流中每个TSN报文流对应的约束条件确定的。

图18为本申请实施例提供的一种报文转发方法的流程示意图。举例来说,图16所示的网络设备200可以执行图18所示的方法。参见图18,所述方法可以包括S1801以及S1802。

S1801,获取N个时间敏感网络TSN报文流中每个TSN报文流对应的定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的约束条件。

其中,N为大于或等于2的正整数。

S1802,根据所述N个TSN报文流中每个TSN报文流的约束条件,确定定义了单个时间周期的时长、单个时间周期内允许传输的报文的数量的最大值以及单个报文的最大长度的新的约束条件。

当所述新的约束条件被转发设备用于转发所述N个TSN报文流时,每个TSN报文流在遵循对应的约束条件的情况下被转发。

图19为本申请实施例提供的一种系统1900的示意性框图。参见图19,系统1900包括控制器1901以及转发设备1902。举例来说,控制器1901可以执行图18所示的方法。转发设备1902可以执行图17所示的方法。控制器1901可以是软件定义网络(Software DefinedNetwork,SDN)控制器。转发设备1902可以是OpenFlow Switch。控制器1901可以通过控制通道与转发设备1902通信。控制器1901可以通过执行OpenFlow Switch Specification1.3.1,获取来自转发设备1902的N个TSN报文流的约束条件。控制器1901可以根据来自转发设备1902的N个TSN报文流的约束条件,执行S1801。控制器1901通过执行S1802确定新的约束条件后,控制器1901可以通过控制通道向转发设备1902发送所述新的约束条件。

图20是本申请另一个实施例的转发设备2000的示意性框图。参见图20,转发设备2000可以包括接收模块2001和转发模块2002。接收模块2001可以执行图17所示的方法的S1701。转发模块2002可以执行图17所示的方法的S1702。接收模块2001和转发模块2002可以执行图15所示的转发设备100中的处理器110的功能。

图21是本申请另一个实施例的网络设备2100的示意性框图。参见图21,网络设备2100可以包括接收模块2101和确定模块2102。接收模块2001可以执行图18所示的方法的S1801。确定模块2102可以执行图18所示的方法的S1802。接收模块2101和确定模块2102可以执行图16所示的网络设备200中的处理器210的功能。

应理解,本申请实施例中提及的处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。

需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。

应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本申请实施例还提供一种转发设备,该转发设备包括用于执行本申请实施例的方法的模块。

本申请实施例还提供一种网络设备,该网络设备包括用于执行本申请实施例的方法的模块。

本申请实施例还提供一种计算机存储介质,其上存储有指令,当所述指令在计算设备上运行时,使得所述计算设备执行本申请实施例的方法。

本申请实施例还提供一种计算机应用程序,该计算机应用程序包括有指令,当该指令在计算设备上运行时,使得该计算设备执行本申请实施例的方法。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120112180243