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

一种报文发送的方法、网络节点和系统

文献发布时间:2023-06-19 18:35:48


一种报文发送的方法、网络节点和系统

本申请是向中国知识产权局提交的申请日为2018年5月11日、申请号为201810448408.3、发明名称为“一种报文发送的方法、网络节点和系统”的申请的分案申请。

技术领域

本发明涉及通信领域,尤其涉及一种报文发送的方法、网络节点和系统。

背景技术

确定性网络(deterministic networking,DetNet)能够给应用提供高可靠性的路径。确定性网络能够提供有界时延保障和极低的丢包率等。有界时延保障是指报文在端到端转发过程中,报文转发时延是在一个固定要求的范围内的,即报文转发时延要在这个时延范围内。有界时延是通过端到端的预留带宽资源和队列管理算法实现的。循环队列和转发(cyclic queuing and forwarding,CQF)为现有技术中应用于确定性网络的一种队列管理的方法。CQF技术的核心在于报文在转发路径上的节点的某一个周期时间(cycle time)被发出,会在该节点的下一跳节点的同一cycle time被收到,并在该下一跳节点的下一个cycle time被发出。因此,每一跳的最大时延为一个cycle time,端到端的最大时延为(N+1)*cycle time,其中N为经过的报文转发路径上中间节点个数。但是,由于链路时延的存在,报文可能在一个节点的第n个cycle time被发出,但是可能会在下一跳节点的第(n+1)个cycle time才被收到,因此,CQF在报文转发过程中并不能准确的实现确定的时延保障。

发明内容

本申请提供了一种报文发送的方法、网络节点和系统,用于准确的实现报文转发过程中的时延保障。

第一方面,本发明实施例提供了一种报文发送的方法,该方法包括:控制器获取业务流的转发时延要求和所述业务流的目的地址,根据所述转发时延要求和所述目的地址确定转发所述业务流的转发路径,所述转发路径的时延满足所述业务流的转发时延要求,所述转发路径经过第一网络节点和第二网络节点,所述第一网络节点为所述转发路径的入口节点,所述第二网络节点为所述转发路径的中间节点;所述控制器确定所述第一网络节点转发报文的第一周期时间cycle time编号和所述第二网络节点转发所述报文的第二cycletime编号,所述报文为所述业务流中的一个报文;所述控制器生成第一表项和第二表项,所述第一表项包括所述报文的序列号和所述第一cycle time编号的对应关系,所述第二表项包含所述报文的序列号和所述第二cycle time编号的对应关系;所述控制器将所述第一表项向所述第一网络节点发送,所述第一表项用于指示所述第一网络节点在所述第一cycletime编号对应的时间内发送所述报文;所述控制器将所述第二表项向所述第二网络节点发送,所述第二表项用于指示所述第二网络节点在所述第二cycle time编号对应的时间内发送所述报文。

通过上述技术方案,控制器根据业务流的转发时延要求确定转发路径,并分别确定转发路径上的入口节点和中间节点的转发时间对应的cycle time编号,然后将包含报文序列号和对应报文发送时间的cycle time编号发送到转发路径的入口节点和中间节点,这样在转发路径上的入口节点和中间节点可以将对应该序列号的报文在对应cycle time编号对应的时间内发送,从而能够实现报文转发确定的时延保障。

在一种可能的设计中,所述控制器获得所述第一网络节点和所述第二网络节点的节点时延,所述节点时延包括报文处理时延和报文发送时延;所述控制器获得所述转发路径上的链路的链路时延;所述转发路径的时延满足所述报文的转发时延要求包括:所述第一网络节点的节点时延、第二网络节点的节点时延和所述转发路径上的链路的链路时延之和在所述报文转发时延要求的范围内。

在一种可能的设计中,所述控制器获得所述第一网络节点的cycle time的时长以及所述第二网络节点的cycle time的时长;所述控制器获得对应所述控制器当前时间的所述第一网络节点的第三cycle time编号及第二网络节点的第四cycle time编号;所述控制器根据所述第一网络节点的cycle time的时长和所述第三cycle time编号确定所述第一cycle time编号;所述控制器根据所述第一网络节点的cycle time的时长、所述第一网络节点到所述第二网络节点的链路时延、所述第二网络节点的报文处理时延、所述第四cycletime编号和所述第二网络节点的cycle time的时长确定所述第二cycle time编号。

在一种可能的设计中,所述控制器确定所述第一网络节点的第一邻接段标识和所述第二网络节点的第二邻接段标识;所述控制器生成标签栈,所述标签栈包含所述第一邻接段标识和所述第二邻接段标识;所述控制器将所述标签向所述第一网络节点发送,所述标签栈用于指示所述第一网络节点将所述报文沿所述转发路径转发。

在一种可能的设计中,所述控制器将所述转发路径的信息向所述第一网络节点发送,触发所述第一网络节点根据所述转发路径的信息生成对应所述转发路径的标签交换路径,所述标签交换路径用于转发所述报文。

在一种可能的设计中,所述第一表项和第二表项还分别包含有所述业务流的流标识。

第二方面,本发明实施提供了一种报文发送的方法,该方法包括:第一网络节点获得业务流的转发时延要求和所述业务流的目的地址;所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址获得用于转发所述业务流的转发路径,所述转发路径的时延满足所述业务流的转发时延要求,所述第一网络节点为所述转发路径的入口节点,第二网络节点为所述转发路径的中间节点;所述第一网络节点获得第一表项,所述第一表项包含报文的序列号和所述第一网络节点转发报文时的第一cycle time编号的对应关系,所述报文为所述业务流中的一个报文;所述第一网络节点根据所述第一表项在所述cycle time编号对应的时间内将所述报文向所述第二网络节点发送。

在该技术方案中,第一网络节点根据业务流的转发时延要求和所述业务流的目的地址获得转发该业务流的转发路径,并获得包含包含报文序列号和第一网络节点转发报文时的第一cycle time编号的对应关系的表项,然后在该第一cycle time编号对应的时间内将对应该序列号的报文向第一网络节点的下一跳发送,从而实现第一网络节点在确定的时间将报文向外发送,有利于实现报文转发确定的时延保障。

在一种可能的设计中,所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址获得用于转发报文的转发路径包括:所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址计算所述转发路径。

在一种可能的设计中,所述第一网络节点生成第二表项,所述第二表项包含所述报文的序列号和所述第二网络节点转发所述报文时的第二cycle time编号的对应关系;所述第一网络节点将所述第二表项向所述第二网络节点发送,所述第二表项用于指示所述第二网络节点在所述第二cycle time编号对应的时间内发送所述报文。

在一种可能的设计中,所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址获得用于转发所述业务流的转发路径包括:所述第一网络节点向控制器发送所述转发时延要求和所述目的地址,触发所述控制器根据所述转发时延要求和所述目的地址确定所述转发路径,并生成所述第一表项;所述第一网络节点接收所述控制器发送的所述第一表项和所述转发路径的信息。

在一种可能的设计中,所述第一网络节点从所述控制器获得第二表项,所述第二表项包含所述报文的序列号和所述第二网络节点转发所述报文时的第二cycle time编号的对应关系;所述第一网络节点将所述第二表项向所述第二网络节点发送,所述第二表项用于指示所述第二网络节点在所述第二cycle time编号对应的时间内发送所述报文。

在一种可能的设计中,所述转发路径信息包括所述转发路径上的节点的地址信息,所述方法还包括:所述第一网络节点根据所述转发路径上的节点的地址信息触发生成对应所述转发路径的标签交换路径,所述标签交换路径用于转发所述报文。

在一种可能的设计中,所述转发路径信息为对应所述转发路径的标签栈,所述标签栈包含所述第一网络节点的邻接段标识和所述第二网络节点的邻接段标识,所述标签栈用于指示所述第一网络节点将所述报文沿所述转发路径转发。

在一种可能的设计中,所述第一网络节点根据所述第一表项在所述cycle time编号对应的时间内将所述报文向所述第二网络节点发送包括:

所述第一网络节点根据所述报文的序列号在匹配到所述第一表项后,将所述报文加入到对应所述cycle time编号的报文队列中,当所述报文队列为发送队列时,将所述报文向所述第二网络节点发送。

在一种可能的设计中,所述第一网络节点接收所述第二网络节点的节点时延,所述节点时延包括报文处理时延和报文发送时延;

所述第一网络节点获得所述转发路径上的链路的链路时延;

所述转发路径的时延满足所述报文的转发时延要求包括:

所述第一网络节点的节点时延、第二网络节点的节点时延和所述转发路径上的链路的链路时延之和在所述报文转发时延要求的范围内。

在一种可能的设计中,所述第一网络节点确定第一网络节点的cycle time的时长,并获得所述第二网络节点的cycle time的时长;

所述第一网络节点确定当前时间的所述第一网络节点的第三cycle time编号及第二网络节点的第四cycle time编号;

所述第一网络节点根据所述第一网络节点的cycle time的时长和所述第三cycletime编号确定所述第一cycle time编号;

所述第一网络节点根据所述第一网络节点的cycle time的时长、所述第一网络节点到所述第二网络节点的链路时延、所述第二网络节点的报文处理时延、所述第四cycletime编号和所述第二网络节点的cycle time的时长确定所述第二cycle time编号。

第三方面,本发明实施提供了一种报文发送的方法,该方法包括:第二网络节点获得包含序列号和cycle time编号对应关系的表项,所述序列号为报文序列号,所述cycletime编号用于指示所述第二网络节点在所述cycle time编号对应的时间内发送所述序列号对应的报文;所述第二网络节点接收第一网络节点发送的报文,所述报文包含有流标识和所述序列号;所述第二网络节点在根据所述报文包含的序列号匹配到所述表项后,在所述cycle time编号对应的时间内将所述报文向所述第二网络节点的下一跳网络节点发送。

在该方案中,转发路径的中间节点根据报文的序列号匹配该表项,然后在该表项包含的cycle time编号对应的时间内将报文向下一跳网络节点发送,从而实现转发路径中间节点在确定的时间将报文向外发送,有利于实现报文转发确定的时延保障。

在一种可能的设计中,所述第二网络节点获得包含序列号和cycle time编号对应关系的表项包括:所述第二网络节点接收所述第一网络节点发送的所述表项,或者,

所述第二网络节点接收控制器发送的所述转发表项。

在一种可能的设计中,所述第二网络节点在所述cycle time编号对应的时间内将所述报文向所述第二网络节点的下一跳网络节点发送包括:所述第二网络节点将所述报文加入到对应所述cycle time编号的报文队列中,当所述报文队列为发送队列时,将所述报文向所述第二网络节点的下一跳网络节点发送。

第四方面,本发明实施例提供了一种控制器,执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,该控制器包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。

第五方面,本发明实施例提供了一种第一网络节点,执行第二方面或第二方面的任意一种可能的实现方式中的方法。具体地,该第一网络节点包括用于执行第二方面或第二方面的任意一种可能的实现方式中的方法的单元。

第六方面,本发明实施例提供了一种第二网络节点,执行第三方面或第三方面的任意一种可能的实现方式中的方法。具体地,该第二网络节点包括用于执行第三方面或第三方面的任意一种可能的实现方式中的方法的单元。

第七方面,提供了一种控制器,该控制器包括:处理器、网络接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第一方面或第一方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。

第八方面,提供了一种第一网络节点,该第一网络节点包括:处理器、网络接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第二方面或第二方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。

第九方面,提供了一种第二网络节点,该第二网络节点包括:处理器、网络接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第三方面或第三方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。

第十方面,提供了一种报文发送的系统,该系统包含前述方面提供的控制器、第一网络节点和第二网络节点。

第十一方面,提供了一种报文发送的系统,该系统包含前述方面提供的第一网络节点和第二网络节点。

第十二方面,提供了一种计算机存储介质,用于储存为上述网络节点或控制器所用的计算机软件指令,其包括用于执行上述方面所设计的程序。

第十三方面,提供了一种计算机程序产品,所述计算机程序产品包含指令,当该指令在计算机上执行时,使得计算机执行前述方面所述的方法。

附图说明

图1为本发明实施例提供的一种应用CQF报文转发示意图;

图2为本发明实施例提供的一种报文转发应用场景示意图;

图3为本发明实施例提供的一种报文转发流程示意图;

图4为本发明实施例提供的第一表项和第二表项的示意图;

图5为本发明实施例提供的一种报文转发流程示意图;

图6为本发明实施例提供的一种报文队列示意图;

图7为本发明实施例提供的一种控制器的结构示意图;

图8为本发明实施例提供的一种控制器的结构示意图;

图9为本发明实施例提供的一种第一网络节点的结构示意图;

图10为本发明实施例提供的一种第一网络节点的结构示意图;

图11为本发明实施例提供的一种第二网络节点的结构示意图;

图12为本发明实施例提供的一种第二网络节点的结构示意图;

图13为本发明实施例提供的一种报文转发系统的示意图;

图14为本发明实施例提供的一种报文转发系统的示意图。

具体实施方式

下面结合附图,对本发明的实施例进行描述。

CQF是一种利用双队列交替发送报文的队列管理方法,报文在每个网络节点上都有一个独立的发送时间段,经过资源预留同一个时间段的报文都保证有足够的带宽,不同时间段之间的报文被隔离,报文在每个网络节点被转发时都有确定的时延。如图1所示,每个网络节点上都有两个报文队列,一个是报文接收队列,一个是报文发送队列。报文接收队列用于接收上一跳网络节点发送给当前网络节点的报文。报文发送队列用于把缓存的报文发送给下一跳网络节点。报文接收队列和报文发送队列的角色可以互相转换,报文接收队列接收的报文,在它变为报文发送队列时,会被发送给下一跳网络节点。每个网络节点都有一个时钟,经过一个固定长度的时间段,报文接收队列和报文发送队列交换角色,即报文接收队列变成报文发送队列,报文发送队列变成报文接收队列,定义这个固定长度的时间段为一个cycle time,简称cycle。网络节点以cycle为单位记录时间,每个网络节点的cycle的长度相同,且要求不同网络节点的cycle的起止时间要相同。报文接收队列和报文发送队列的角色以cycle为周期进行互换。

参见图1,图1为网络节点使用CQF进行报文转发示意图,在cycle 1,节点101的报文发送队列将报文发送至节点102的报文接收队列,当时间从cycle 1变为到cycle 2时,节点102的报文接收队列变成报文发送队列。在cycle 2,节点102的报文发送队列将报文发送到节点103的报文接收队列。在报文从节点101转发到节点103的过程中,报文转发最大时延为(N+1)*cycle,其中N为转发路径上中间节点的个数。在图1所示的场景中报文从节点101转发到节点103的报文转发时延为2*cycle。由于这个计算报文转发时延的过程没有考虑节点之间的链路的影响,这种方式获得报文最大转发时延是不准确的,例如:报文在cycle 1被节点101转发到节点102,如果节点101和节点102之间的链路时延大于一个cycle的长度,则并不能保证报文在cycle 1内被转发到节点102。因此,CQF在报文转发过程中并不能准确的实现确定的时延保证。

图2为本发明实施例提供的一种报文发送方法的网络场景示意图。该应用场景包括:控制器200、发送端201、接收端206、网络节点202、网络节点203、网络节点204和网络节点205。其中控制器200为软件定义网络(software defined network,SDN)架构下的控制器,用于实现流量控制,并对网络中的节点进行管理,在图2所示场景中,控制管理网络节点202、网络节点203、网络节点204和网络节点205。在一种可能的实现方式中,网络节点202、网络节点203、网络节点204和网络节点205所在的网络为分段路由(segment routing,SR)网络,并且网络节点202、网络节点203、网络节点204和网络节点205分别支持SR功能。在另一种可能的实现方式中,网络节点202、网络节点203、网络节点204和网络节点205所在的网络为多协议标签交换(mutiprotocol label switching,MPLS)网络,并且网络节点202、网络节点203、网络节点204和网络节点205分别支持MPLS转发。发送端201和接收端206可以为用户设备,例如,手机或个人电脑等。网络节点202到网络节点203的链路为链路1,网络节点203到网络节点204的链路为链路2,网络节点202到网络节点204的链路为链路3,网络节点204到网络节点205的链路为链路4。本发明实施例中,网络节点可以为一个具体的网络设备,例如:路由器或交换机等。

结合图2所示的网络场景,参见图3,本发明实施例提供了一种报文发送的方法,该方法包括:

S301,控制器接收网络节点的节点时延和网络中的链路时延。节点时延包括节点的报文处理时延和报文发送时延。报文发送时延也可以成为报文出队列时延。举例来说,控制器200分别接收网络节点202、网路节点203、网络节点204和网络节点205的节点时延。链路时延包括网络中网络节点之间的时延,如图2中链路1、链路2、链路3和链路4的时延。

在一个示例中,网络节点的报文处理时延为处理过的报文的平均处理时延或最大处理时延。报文发送时延,为网络节点发送过的报文的平均发送时延或最大发送时延。链路1的链路时延为报文从网络节点202转发到网络节点203的平均转发时延或最大转发时延,链路2的链路时延为报文从网络节点203转发到网络节点204的平均转发时延或最大转发时延,链路3的链路时延为报文从网络节点202转发到网络节点204的平均转发时延或最大转发时延,链路4的链路时延为报文从网络节点204转发到网络节点205的平均转发时延或最大转发时延。

S302,控制器获取业务流的转发时延要求和该业务流的目的地址。该业务流为需要通过控制器管理的网络转发的业务流,在图2所示场景中,该业务流中的报文需要经过控制器控制管理的网络转发。

在一个示例中,业务流的转发时延要求和业务流的目的地址可以是SR网络的入口节点向控制器发送的,如图2中的网络节点202向控制器200发送需要转发的业务流的时延要求及业务流的目的地址。

在一个示例中,业务流的转发时延要求和业务流的目的地址可以是接入端201向控制器发送的。当该接入端201需要通过控制器管理的网络发送业务流时,将业务流的转发时延要求以及业务流的目的地址向控制器发送。

在一个示例中,该业务流的转发时延要求可以为一个时延范围,举例来说,该时延要求为报文转发时延在10毫秒(ms)到15ms之间,或者该转发时延要求为一个具体时延,例如,转发时延为20ms。

S303,控制根据业务流的目的地址计算转发路径,该转发路径的时延满足所述业务流的转发时延要求。该转发路径包括入口节点、中间节点以及出口节点。该转发路径的时延包含转发路径入口节点的节点时延、中间节点的节点时延以及从入口节点到出口节点之间链路的链路时延。

结合图2,举例来说,业务流的目的地址为接收端206的地址,控制器200根据该目的地址计算SR网络中的转发路径,其中可以到达接收端206的路径有两条,分别为路径1和路径2。路径1经过网络节点202、网络节点203和网络节点205,路径2经过网络节点202、网络节点204和网络节点205。其中路径1的时延满足业务流的转发时延要求,路径2的时延不满足业务流的转发时延要求,则控制器选择路径1作为转发业务流的转发路径。路径1的入口节点为网络节点202,路径1的中间节点为网络节点203,路径1中的出口节点为网络节点205。

S304,控制器获得转发路径的入口节点的cycle time的时长和控制器当前时间入口节点的cycle time编号。本申请实施例中cycle time的时长为cycle time所占用的时间长度,如cycle time的时长为1毫秒(ms)。

S305,控制器获得转发路径的中间节点的cycle time的时长和控制器当前时间中间节点的cycle time编号。中间节点可以有一个或多个。控制器当前时间是指控制器去获得中间节点cycle time编号的时间。

在本申请实施例中,每个网络节点的cycle time的时长可以不同也可以相同。cycle time是网络节点进程调度的一个单位,在一个cycle time中完成一次队列中报文的发送。每个网络节点的cycle time从网络节点启动时候开始进行编号,并逐渐递增。可见,在本发明实施例中,每个网络节点的cycle time的时长可以相同也可以不同,并且每个网络节点的cycle time的起止时间也可以不同,这样避免了网络节点的配置复杂度,简化了设备管理工作量,同时提供高了报文转发效率。

结合图2,举例来说,控制分别获得网络节点202和网络节点203的cycle time的时长。网络节点202的cycle time的时长为第一时长,例如:10毫秒(ms),网络节点203的cycletime的时长为第二时长,例如12ms。网络节点202当前的cycle time编号为第一编号,例如,124,网络节点203当前的cycle time编号为第二编号,例如156。

S306,控制器确定入口节点发送报文的cycle time编号,并确定中间节点发送该报文的cycle time编号,该报文属于所述业务流。可选地,该报文可以是该业务流中的第一个报文,或者为该业务流中的任意一个报文。

控制器得到了入口节点当前的cycle time编号及cycle time的时长,即可选择一个时间点作为入口节点发送该报文的时间,并确定对应这个时间的cycle time编号。举例来说,入口节点当前的cycle time编号为k,例如k=1001,cycle time时长为m,例如m=10ms,控制器选择等待t秒后让入口节点开始发送该报文,例如t=50秒,则对应发送该报文的cycle time编号L按照如下公式计算:

L=k+t*1000/m。

即L=1001+50*1000/10=6001。

其中,控制器可以通过计算该时间t时的时间以及入口节点转发该报文时控制器的时间计算获得。

控制器确定了入口节点的cycle time编号后,再确定中间节点的cycle time编号。控制器确定转发路径上第一个中间节点的cycle time编号,该第一个中间节点为入口节点的下一跳节点,如图2中节点202为入口节点,则节点203为节点202的下一跳节点。控制器按照如下方式计算第一个中间节点的cycle time编号:

报文在中间节点入队列之前的时长t按照如下公式计算,

t=t1+t2+t3,其中,

t1为报文在入口节点编号为L的cycle time被转发时的时间长度;

t2为入口节点到中间节点之间的链路的链路时延;

t3为中间节点最大报文处理时延。

根据报文在中间节点的入队之前的时长t,估算报文在中间节点最晚入队所在的cycle time编号,例如:

中间节点当前的cycle time编号为a,例如a=2001,cycle time时长为m,例如m=20ms,上述计算的中间节点最晚入队时长t=20秒,则对应中间节点发送该报文的cycletime编号B按照如下公式计算:

B=a+t*1000/m=3001。

控制器按照如下方式计算除第一个中间节点之外的中间节点(非第一中间节点)的cycle time编号:

报文在非第一个中间节点的入队列之前的时长t按照如下公式计算,

t=t1+t2+t3+t4,其中,

t1为报文在入口节点编号为L的cycle time被转发时的时间长度;

t2为入口节点到非第一个中间节点之间的链路的链路时延;

t3为非第一个中间节点的最大报文处理时延;

t4为入口节点和非第一个中间节点之间经过的中间节点的节点时延之和。

S307,控制器生成第一表项和第二表项,所述第一表项包括所述报文的序列号和所述第一cycle time编号的对应关系,所述第二表项包含所述报文的序列号和所述第二cycle time编号的对应关系。

在一个示例中,该第一表项和第二表项分别包含所述业务流的流标识。该流标识可以为报文的五元组或流标签(flow label,FL)。该报文的五元组包括报文的源互联网协议(Internet Protocol,IP)地址、源端口、目的IP地址、目的端口和传输层协议号。相应的,第一表项包含该业务流的流标识、报文序列号和第一cycle time编号,所述第二表项包括该业务流的流标识、报文序列号和第二cycle time编号。

在一个示例中,该第一表项和第二表项可以分别包含多个对应关系,如图4,第一表项和第二表项分别包含3个字段:流标识(Flow ID)、序列号(Sequence Num)和周期编号(Cycle Num)。第一表项包括3个对应关系:流标识Flow 1、报文序列号0001和周期编号Cycle 1的对应关系;流标识Flow 1、报文序列号0002和周期编号Cycle 3的对应关系;流标识Flow 1、报文序列号0003和周期编号Cycle 5的对应关系。第二表项包括3个对应关系:流标识Flow 1、报文序列号0001和周期编号Cycle 3的对应关系;流标识Flow 1、报文序列号0002和周期编号Cycle 5的对应关系;流标识Flow 1、报文序列号0003和周期编号Cycle 7的对应关系。

S308,所述控制器向所述第一网络节点发送所述第一表项和该转发路径的信息,所述第一表项用于指示所述第一网络节点在所述第一cycle time编号对应的时间内发送所述报文。

S309,所述控制器将所述第二表项向所述第二网络节点发送,所述第二表项用于指示所述第二网络节点在所述第二cycle time编号对应的时间内发送所述报文。

在一个示例中,第一网络节点和第二网络节点分别支持SR功能,该转发路径的信息为标签栈,该标签栈包含该第一网络节点的第一邻接段标识和该第二网络节点的第二邻接段标识,所述标签栈用于指示所述第一网络节点将所述报文沿所述转发路径转发。

在一个示例中,该转发路径的信息包括转发路径上的网络节点的地址,该路径信息用于触发所述第一网络节点根据所述转发路径的信息生成对应所述转发路径的标签交换路径(label switching path,LSP),所述标签交换路径用于转发所述报文。例如,第一网络节点根据路径上的网络节点的地址利用RSVP或MPLS触发生成对应该转发路径的LSP。

S310,入口节点接收控制器发送的该第一表项和该转发路径的信息。入口节点根据第一表项中的对应关系转发该业务流中的报文。

举例来说,入口节点根据图4所示的第一表项,确定对应业务流标识为Flow 1的业务流中序列号为0001的报文需要在编号为Cycle 1的Cycle time内转发。入口节点在确定了发送该业务报文的cycle time编号后,将该报文加入到对应该cycle time编号的报文队列中,该报文队列为报文接收队列,当该报文队列变为报文发送队列时,将该报文向中间节点转发。入口节点根据图4所示的第一表项,将该业务流中报文序列号为0002的报文在编号为Cycle 3的Cycle time内转发,将该业务流中报文序列号为0003的报文在编号为Cycle 5的Cycle time内转发。中间节点根据图4所示的第二表项将该业务流中报文序列号为0001的报文在编号为Cycle 3的Cycle time内转发,将该业务流中报文序列号为0002的报文在编号为Cycle 5的Cycle time内转发,将该业务流中报文序列号为0003的报文在编号为Cycle 7的Cycle time内转发。

在一个示例中,入口节点可以根据第一表项确定报文序列号为0003之后的报文被转发时的Cycle time编号,该Cycle time编号为公差为2、首项为Cycle 5的等差数列,例如,入口节点确定转发报文序列号为0004的报文的Cycle time编号为Cycle 5加2,即Cycle7,转发报文序列号为0005的报文的Cycle time编号为Cycle 9。基于同样的方式,中间节点可以根据第二表项确定报文序列号为0003之后的报文被转发时的Cycle time编号,该Cycle time编号为公差为2、首项为Cycle 7的等差数列。

在一个示例中,该转发路径的信息包括转发路径上的网络节点的地址,所述第一网络节点根据所述转发路径的信息生成对应所述转发路径的LSP,利用该标签交换路径转发该业务流中的报文。

在一个示例中,入口节点在利用图4所示的第一表项进行报文转发前,将对应该转发路径的标签栈或入标签(inlabel)插入业务流标识为Flow 1的业务流中序列号位0001的报文头部。

在一个示例中,当入口节点将该报文加入到对应该cycle time的报文队列中后,当该报文队列为发送队列时,通过该发送队列将报文向中间节点转发。

结合图2所示的网络场景,参见图5,本发明实施例提供了一种报文发送的方法,该方法应用于图2所示的网络场景时,该网络场景可以包括控制器200,也可以不包括控制器200,该方法包括:

S501,第一网络节点获得业务流的转发时延要求和所述业务流的目的地址。该第一网络节点为该转发路径的入口节点,如图3所示实施例中的入口节点。

S502,所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址获得用于转发所述业务流的转发路径,所述转发路径的时延满足所述业务流的转发时延要求,所述第一网络节点为所述转发路径的入口节点,第二网络节点为所述转发路径的中间节点。

S503,所述第一网络节点获得第一表项,所述第一表项包含报文的序列号和所述第一网络节点转发报文时的第一cycle time编号的对应关系,所述报文为所述业务流中的一个报文。如图3所示实施例中的中间节点。

S504,第二网络节点获得包含序列号和cycle time编号对应关系的第二表项,所述序列号为报文序列号,所述cycle time编号用于指示所述第二网络节点在所述cycletime编号对应的时间内发送所述序列号对应的报文。

S505,所述第一网络节点根据所述第一表项在所述cycle time编号对应的时间内将所述报文向所述第二网络节点发送。

S506,所述第二网络节点接收第一网络节点发送的报文,所述报文包含有流标识和所述序列号。

在本申请实施例中,步骤S505可以在步骤S504前执行,也可以在步骤S504之后执行,本申请实施例并不限定这两个步骤的先后顺序。

S507,所述第二网络节点在根据所述报文包含的序列号匹配到所述第二表项后,在所述第二表项包含的cycle time编号对应的时间内将所述报文向所述第二网络节点的下一跳网络节点发送。

在一个示例中,第一网络节点可以执行图3所示实施例中入口节点执行的步骤,详细步骤描述参见图3所示实施例,第二网络节点可以执行图3所示实施例中中间节点执行的步骤,详细步骤描述参见图3所示。

在一个示例中,所述第二网络节点获得包含序列号和cycle time编号对应关系的表项包括:所述第二网络节点接收所述第一网络节点发送的所述表项,或者,

所述第二网络节点接收控制器发送的所述转发表项。

在一个示例中,所述第二网络节点在所述cycle time编号对应的时间内将所述报文向所述第二网络节点的下一跳网络节点发送包括:所述第二网络节点将所述报文加入到对应所述cycle time编号的报文队列中,当所述报文队列为发送队列时,将所述报文向所述第二网络节点的下一跳网络节点发送。

在一个示例中,所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址获得用于转发报文的转发路径包括:

所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址计算所述转发路径。

在一个示例中,所述第一网络节点生成第二表项,所述第二表项包含所述报文的序列号和所述第二网络节点转发所述报文时的第二cycle time编号的对应关系;

所述第一网络节点将所述第二表项向所述第二网络节点发送,所述第二表项用于指示所述第二网络节点在所述第二cycle time编号对应的时间内发送所述报文。

在一个示例中,所述第一网络节点根据所述业务流的转发时延要求和所述业务流的目的地址获得用于转发所述业务流的转发路径包括:

所述第一网络节点向控制器发送所述转发时延要求和所述目的地址,触发所述控制器根据所述转发时延要求和所述目的地址确定所述转发路径,并生成所述第一表项;

所述第一网络节点接收所述控制器发送的所述第一表项和所述转发路径的信息。

在一个示例中,所述转发路径信息包括所述转发路径上的节点的地址信息,所述方法还包括:

所述第一网络节点根据所述转发路径上的节点的地址信息触发生成对应所述转发路径的标签交换路径,所述标签交换路径用于转发所述报文

在一个示例中,所述转发路径信息为对应所述转发路径的标签栈,所述标签栈包含所述第一网络节点的邻接段标识和所述第二网络节点的邻接段标识,所述标签栈用于指示所述第一网络节点将所述报文沿所述转发路径转发。

在一个示例中,所述第一网络节点根据所述第一表项在所述cycle time编号对应的时间内将所述报文向所述第二网络节点发送包括:

所述第一网络节点根据所述报文的序列号在匹配到所述第一表项后,将所述报文加入到对应所述cycle time编号的报文队列中,当所述报文队列为发送队列时,将所述报文向所述第二网络节点发送。

在一个示例中,所述第一网络节点确定第一网络节点的cycle time的时长,并获得所述第二网络节点的cycle time的时长;第一网络节点确定当前时间的所述第一网络节点的第三cycle time编号及第二网络节点的第四cycle time编号;所述第一网络节点根据所述第一网络节点的cycle time的时长和所述第三cycle time编号确定所述第一cycletime编号。并根据所述第一网络节点的cycle time的时长、所述第一网络节点到所述第二网络节点的链路时延、所述第二网络节点的报文处理时延、所述第四cycle time编号和所述第二网络节点的cycle time的时长确定所述第二cycle time编号。具体方式可以参见图3所示实施例中控制器确定第一cycle time编号和第二cycle time编号的方式。

在一个示例中,第一网络节点的出端口对应3个报文队列,其中2个报文队列为报文接收队列,1个报文队列为报文发送队列,参见图6,第一网络节点在cycle time1时的报文队列处于报文队列状态1,在cycle time 2时的报文队列处于报文队列状态2,在cycletime 3时的报文队列处于报文队列状态3。在报文队列状态1中,队列1为发送队列,队列2和队列3为报文接收队列。在报文队列状态2中,队列2为发送队列,队列1和队列3为报文接收队列。在报文队列状态3中,队列3为发送队列,队列1和队列2为报文接收队列。报文队列状态按照图6中的3个状态进行交替切换,例如,cycle time为1,4,7,10,……时为报文队列状态1,cycle time为2,5,8,11,……时为报文队列状态2,cycle time为3,6,9,12,……时为报文队列状态3。其中每个队列对应一个cycle time编号,例如:队列1cycle time为1,4,7,10,……;队列2对应cycle time为2,5,8,11,……;队列3对应cycle time为3,6,9,12,……。即每个队列对应的cycle time编号序列为公差为3的等差数列。对应当第一网络节点确定发送该第一报文的cycle time为cycle time 5时,并且确定当前第一网络节点的cycle time编号为4,则确定当前的报文队列为状态为报报文队列状态1,将报文加入到报文队列2中。当第一网络节点的cycle time变为cycle time 5时,此时报文队列的状态为状态2,则通过报文队列2将该报文向第二网络节点发送。

在一个示例中,第二网络节点的出端口也对应图6所示的3个报文队列,报文队列的状态变化情况如图6所示。当第二网络节点在第二网络节点的cycle time 6接收到报文时,并且根据报文的序列号确定第二网络节点需要在cycle time 8将报文向外发送时,将报文加入到队列2中,此时报文队列的状态为状态3。当第二网络节点的cycle time编号变为8时,即报文队列的状态为2,此时队列2的状态为报文发送状态。第二网络节点通过报文队列2将该报文下第二网络节点的下一跳节点发送。

通过在网络节点中设置多个报文队列,能够增加报文转发的可靠性,例如,当报文到达第二网络节点时,第二网络节点的报文接收队列已经满了,此时将出现队列溢出,该报文将不能正常转发。通过增加接收报文的队列个数,可以在报文提前到达网络节点时缓存起来,当该报文的方式cycle time到达时再发送,提高了报文发送的可靠性。

图7示出了上述实施例中所涉及的控制器的一种可能的结构示意图,该控制器700可以实现图3或图5所示的实施例中的控制器的功能。参阅图7,该控制器700包括:获取单元701,确定单元702,处理单元703和发送单元704。这些单元可以执行上述方法实施例中控制器的相应功能。获取单元701,用于支持控制器700执行图3中的过程S301、S302、S304和S305;确定单元702,用于支持控制器700执行图3中的过程S303和S306;发送单元704,用于支持控制器700执行图3中的过程S308和S309。处理单元703用于支持控制器700执行图3中的过程S307和/或本文所描述的技术中控制器执行的其它过程。例如,获取单元701,用于执行上述方法实施例中节点执行的各种信息获取;确定单元502,用于执行上述方法实施例中控制器执行的确定动作;发送单元704,用于执行上述方法实施例中控制器执行的各种信息发送;处理单元703,用于执行上述方法实施例中控制器除了信息收发和确定动作之外的其他处理。举例来说,获取单元701,用于获取业务流的转发时延要求和所述业务流的目的地址;确定单元702,用于根据所述转发时延要求和所述目的地址确定转发所述业务流的转发路径,所述转发路径的时延满足所述业务流的转发时延要求,所述转发路径经过第一网络节点和第二网络节点,所述第一网络节点为所述转发路径的入口节点,所述第二网络节点为所述转发路径的中间节点;确定所述第一网络节点转发报文的第一cycle time编号和所述第二网络节点转发所述报文的第二cycle time编号,所述报文为所述业务流中的一个报文;处理单元703,用于生成第一表项和第二表项,所述第一表项包括所述报文的序列号和所述第一cycle time编号的对应关系,所述第二表项包含所述报文的序列号和所述第二cycle time编号的对应关系;发送单元704,用于将所述第一表项向所述第一网络节点发送,将所述第二表项向所述第二网络节点发送,所述第一表项用于指示所述第一网络节点在所述第一cycle time编号对应的时间内发送所述报文,所述第二表项用于指示所述第二网络节点在所述第二cycle time编号对应的时间内发送所述报文。具体执行过程请参考上述图3或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

图8示出了上述实施例中所涉及的控制器的一种可能的结构示意图,该控制器800包括:处理器802、收发器803、存储器801以及总线804。其中,处理器802、收发器803以及存储器801通过总线804相互连接;总线804可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该控制器800可以实现图3或图5所示的实施例中的控制器的功能。处理器802和收发器803可以执行上述方法示例中控制器的相应功能。收发器803用于支持控制器800执行图3中的过程S301、S302、S308和S309。处理器802用于支持控制器800执行图3中的过程S307和/或本文所描述的技术中控制器执行的其它过程。存储器801,用于存储控制器800的程序代码和数据。具体执行过程请参考上述图3或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

图9示出了上述实施例中所涉及的第一网络节点的一种可能的结构示意图,该第一网络节点可以实现图3所示实例中入口节点或图5所示的实施例中的第一网络节点的功能。参阅图9,该第一网络节点900包括:获取单元901和第一发送单元902。这些单元可以执行上述方法示例中第一网络节点的相应功能。获取单元901,用于支持第一网络节点900执行图5中的过程S501、S502和S503;第一发送单元903,用于支持第一网络节点900执行图5中的过程S505。例如,获取单元901,用于执行上述方法实施例中第一网络节点执行的各种信息的获取;第一发送单元902,用于执行上述方法实施例中第一网络节点执行的各种信息发送。举例来说,获取单元901,用于获得业务流的转发时延要求和所述业务流的目的地址,并根据所述业务流的转发时延要求和所述业务流的目的地址获得用于转发所述业务流的转发路径,所述转发路径的时延满足所述业务流的转发时延要求,所述第一网络节点为所述转发路径的入口节点,第二网络节点为所述转发路径的中间节点;获得第一表项,所述第一表项包含报文的序列号和所述第一网络节点转发所述报文时的第一cycle time编号的对应关系,所述报文为所述业务流中的一个报文;第一发送单元902,用于根据所述第一表项在所述cycle time编号对应的时间内将所述报文向所述第二网络节点发送。具体执行过程请参考上述图3或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,接收单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

参阅图10所示,该第一网络节点1000包括:处理器1002、收发器1003、存储器1001以及总线1004。其中,收发器1003、处理器1002以及存储器1001通过总线1004相互连接;总线1004可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该第一网络节点1000可以实现图3或图5所示的实施例中的第一网络节点或入口节点的功能。处理器1102和收发器1103可以执行上述方法示例中第一网络节点或入口节点的相应功能。具体执行过程请参考上述图3或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。

图11示出了上述实施例中所涉及的第二网络节点的一种可能的结构示意图,该第二网络节点可以实现图3所示实例中入口节点或图5所示的实施例中的第二网络节点的功能。参阅图11,该第二网络节点1100包括:获取单元1101,接收单元1102和发送单元1103。这些单元可以执行上述方法示例中第二网络节点或中间节点的相应功能。获取单元1101,用于支持第二网络节点1100执行图5中的过程S504;接收单元1102,用于支持第二网络节点1100执行图5中的过程S505和S506;发送单元1103用于支持第二网络节点1100执行图5中的过程S507。例如,获取单元1101,用于执行上述方法实施例中第二网络节点执行的各种信息的获取;接收单元1102,用于执行上述方法实施例中第二网络节点执行的各种信息的接收;发送单元1103,用于执行上述方法实施例中第二网络节点执行的各种信息发送。举例来说,获取单元1101,用于获得包含序列号和循环周期cycle time编号对应关系的表项,所述序列号为报文序列号,所述cycle time编号用于指示所述第二网络节点在所述cycle time编号对应的时间内发送所述序列号对应的报文;接收单元1102,用于接收第一网络节点发送的报文,所述报文包含有流标识和所述序列号;发送单元1103,用于在根据所述报文包含的序列号匹配到所述表项后,在所述cycle time编号对应的时间内将所述报文向所述第二网络节点的下一跳网络节点发送。具体执行过程请参考上述图3或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,接收单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

参阅图12所示,该第二网络节点1200包括:处理器1202、收发器1203、存储器1201以及总线1204。其中,收发器1203、处理器1202以及存储器1201通过总线1204相互连接;总线1204可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该第二网络节点1200可以实现图3或图5所示的实施例中的第二网络节点或中间节点的功能。处理器1202和收发器1203可以执行上述方法示例中第二网络节点或中间节点的相应功能。具体执行过程请参考上述图3或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

参阅图13所示,发明实施例提供了一种报文发送的系统1300,该系统1300用于实现前述方法实施例中的报文发送的方法。该系统1300包括控制器1201、第一网络节点1202和第二网络节点1203。该控制器1201、第一网络节点1202和第二网络节点1203可以分别实现图3或图5所示的实施例中的控制器、第一网络节点和第二网络节点的功能。具体执行过程请参考上述图3或图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

参阅图14所示,发明实施例提供了一种报文发送的系统1400,该系统1400用于实现前述方法实施例中的报文发送的方法。该系统1400包括第一网络节点1401和第二网络节点1402。第一网络节点1401和第二网络节点1402可以分别实现图5所示的实施例中第一网络节点和第二网络节点的功能。具体执行过程请参考上述图5所示实施例中相应步骤的详细描述,这里不再一一赘述。

本发明实施例还提供了一种存储介质,用于储存前述实施例中所用的软件指令,其包括用于执行前述实施例所示的方法的程序,当其在计算机或设备上执行时,使得所示计算机或设备执行前述方法实施例中的方法。

本发明实施例中提到的第一网络节点中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”和“第三”。

需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的第一网络节点或控制器实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

技术分类

06120115626687