转发路径时延检测方法、控制器及转发设备与流程

文档序号:18630189发布日期:2019-09-06 23:31阅读:410来源:国知局
转发路径时延检测方法、控制器及转发设备与流程

本申请涉及网络通信技术领域,具体而言,涉及一种转发路径时延检测方法、控制器及转发设备。



背景技术:

软件定义网络(softwaredefinednetwork,sdn)架构通常由控制器和转发设备组成,控制器负责向各个转发设备下发转发策略,转发设备负责根据控制器下发的策略对报文的转发。

为了使控制器能够获知数据流转发路径的工作状态以制定合适的转发策略,可以采用带内网络远程监测(inbandnetworktelemetry,int)技术对转发路径进行分析和检测。在使用了int技术的组网环境中,首个接收待测数据流报文的转发设备会作为源转发设备为数据报文添加int封装,并在int封装中添加报文在该源转发设备的转发情况数据(如,报文接收时间、处理报文转发的时间、处理报文的转发的队列工作情况等),然后转发给下一设备。

待测数据流转发路径上的各中间转发设备在接收到具有int封装的报文后,在报文中依次添加该报文在该中间转发设备的转发情况数据并转发给下一转发设备。待测数据流转发路径上最后一个转发设备作为尾转发设备在接收到具有int封装的报文后,会将报文中携带的之前所有设备的转发情况数据和自己的转发情况数据一起上送给控制器,从而使控制器获得整个转发路径的转发情况。

上述方式中,上送整个转发路径上所有转发情况数据的动作只能由尾转发设备执行,在报文转发期间出现的问题也要等到报文被转发至尾转发设备时才能被控制器获知,导致控制器的信息获取时机延后,不能及时调整转发策略。



技术实现要素:

本申请提供一种转发路径时延检测方法、控制器及转发设备,实现了由数据报文转发路径上的中间转发设备判断转发路径的时延状态并及时通知控制器。

第一方面,本申请提供一种转发路径时延检测方法,应用于软件定义网络sdn架构中与转发设备通信的控制器,所述方法包括:

向待测数据流转发路径上的源转发设备下发检测策略,所述检测策略包括待测数据流的流特征信息及预设的最大允许转发时延,使所述源转发设备根据所述流特征信息确定所述待测数据流的数据报文,并在对所述待测数据流的数据报文进行转发时,为所述数据报文添加路径检测标识,所述路径检测标识包括所述最大允许转发时延;

接收所述待测数据流转发路径上的中间转发设备针对所述待测数据流发送的通知报文;

根据所述通知报文,确定所述待测数据流的转发时延状态,所述通知报文由所述中间转发设备在转发所述待测数据流的数据报文的过程中检测到所述数据报文当前的转发时延达到所述最大允许转发时延时发送。

可选地,所述方法还包括:

向所述源转发设备发送针对所述待测数据流的优先级调整通知,使所述源转发设备提高所述数据报文携带的转发优先级参数。

可选地,所述方法还包括:

向所述源转发设备发送针对所述待测数据流的路由更新通知,所述路由更新通知中包括为所述待测数据流配置的新的转发路径,使所述源转发设备根据所述新的转发路径对所述待测数据流的数据报文进行转发。

可选地,所述方法还包括:

检测所述待测数据流当前的转发优先级是否已设置为最高;

若检测到所述待测数据流当前的转发优先级未设置为最高,则向所述源转发设备发送针对所述待测数据流的优先级调整通知,使所述源转发设备提高所述数据报文携带的转发优先级参数;

若检测到所述待测数据流当前的转发优先级已设置为最高,则向所述源转发设备发送针对所述待测数据流的路由更新通知,所述路由更新通知中包括为所述待测数据流配置的新的转发路径,使所述源转发设备根据所述新的转发路径对所述待测数据流的数据报文进行转发。

可选地,所述接收所述待测数据流转发路径上的中间转发设备针对所述待测数据流发送的通知报文的步骤,包括:

接收所述中间转发设备上送的所述待测数据流的数据报文,所述数据报文包括所述源转发设备接收所述数据报文的第一接收时间及所述中间转发设备接收所述数据报文的第二接收时间;

计算所述第二接收时间与所述第一接收时间之差,得到所述数据报文的转发时延,并检测所述转发时延是否大于所述最大允许转发时延;

若检测到所述转发时延大于所述最大允许转发时延,则将该数据报文作为所述通知报文。

第二方面,本申请提供一种转发路径时延检测方法,应用于sdn架构中与控制器通信的转发设备,所述方法包括:

接收携带有路径检测标识的第一数据报文,所述路径检测标识包括预设的最大允许转发时延;

检测所述第一数据报文到达所述转发设备时的转发时延是否达到所述最大允许转发时延;

若所述转发时延达到所述最大允许转发时延,则向所述控制器发送通知报文。

可选地,所述第一数据报文还携带有第一接收时间,所述第一接收时间为由源转发设备添加的数据报文接收时间,所述源转发设备与所述转发设备处于用于转发所述第一数据报文的转发路径中;

所述检测所述第一数据报文到达所述转发设备时的转发时延是否达到所述最大允许转发时延之前,所述方法还包括:

计算所述转发设备接收所述第一数据报文的第二接收时间与所述第一接收时间之差,得到所述第一数据报文到达所述转发设备时的转发时延。

可选地,所述第一数据报文还携带有第三接收时间,所述第三接收时间为所述转发路径中除所述源转发设备之外的其他转发设备添加的数据报文接收时间,所述其他转发设备为所述转发设备的上游转发设备;

所述检测所述第一数据报文到达本转发设备时的转发时延是否达到所述最大允许转发时延之前,所述方法还包括:

在所述第一数据报文中添加该转发设备接收所述第一数据报文的第二接收时间,得到第二数据报文;

根据所述第三接收时间及所述第一接收时间,判断数据报文到达所述上游转发设备时的转发时延是否达到所述最大允许转发时延;

若数据报文到达所述上游转发设备时的转发时延达到所述最大允许转发时延,则转发所述第二数据报文;

若数据报文到达所述上游转发设备时的转发时延未达到所述最大允许转发时延,则检测所述第一数据报文到达所述转发设备时的转发时延是否达到所述最大允许转发时延。

可选地,所述向所述控制器发送通知报文,包括:

对所述第二数据报文进行复制;

将复制后的所述第二数据报文作为所述通知报文,并向所述控制器发送。

第三方面,本申请提供一种转发路径时延检测方法,应用于sdn架构中与控制器通信的转发设备,所述方法包括:

接收控制器下发的检测策略,所述检测策略包括待测数据流的流特征信息及预设的最大允许转发时延;

根据所述流特征信息,获取所述待测数据流的第一数据报文;

向中间转发设备发送携带路径检测标识的第二数据报文,所述第二数据报文由所述第一数据报文添加所述路径检测标识后获得,所述路径检测标识包括所述最大允许转发时延,使所述中间转发设备在检测到所述第二数据报文到达所述中间转发设备时的转发时延达到所述最大允许转发时延时,向所述控制器发送通知报文;

所述转发设备与所述中间转发设备处于用于转发所述待测数据流的报文的转发路径中。

可选地,所述方法还包括:

接收所述控制器根据所述通知报文发送的优先级调整通知;

根据所述优先级调整通知提高所述第二数据报文中的转发优先级参数,并根据调整后的转发优先级参数对所述第二数据报文进行转发。

可选地,所述方法还包括:

接收所述控制器根据所述通知报文发送的路由更新通知,所述路由更新通知中包括所述控制器为所述待测数据流配置的新的转发路径;

根据所述新的转发路径对所述第二数据报文进行转发。

可选地,所述方法还包括:

接收所述控制器根据所述通知报文发送的调整通知;

检测所述待测数据流当前的转发优先级是否已设置为最高;

若检测到所述待测数据流当前的转发优先级未设置为最高,则提高所述第二数据报文携带的转发优先级参数;

若检测到所述待测数据流当前的转发优先级已设置为最高,则发起路由更新以选择新的转发路径对所述第二数据报文进行转发。

第四方面,本申请提供一种控制器,包括机器可读存储介质及处理器,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被所述处理器执行时,所述控制器实现本申请提供的转发路径时延检测方法。

第五方面,本申请提供一种转发设备,包括机器可读存储介质及处理器,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被所述处理器执行时,所述转发设备实现本申请提供的转发路径时延检测方法。

相对于现有技术而言,本申请具有以下有益效果:

本申请提供的转发路径时延检测方法、控制器及转发设备,通过在待测数据流的数据报文中携带预设的最大允许转发时延,使待测数据流转发路径上的中间转发设备在转发待测数据流的数据报文的过程中,可以在检测到当前的转发时延大于最大允许转发时延时即向控制器发送通知报文。如此,使得控制器可以及时的获知待测数据流转发路径的转发时延状态,从而可以及时地调整待测数据流的转发策略以保证传输质量。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的sdn架构的示意图;

图2为本申请实施例提供的转发路径时延检测方法的流程示意图之一;

图3为本申请实施例提供的路径检测标识的示意图;

图4为本申请实施例提供的转发路径时延检测方法的流程示意图之二;

图5为本申请实施例提供的控制器的示意图;

图6为本申请实施例提供的转发路径时延检测装置的功能模块示意图之一;

图7为本申请实施例提供的转发路径时延检测装置的功能模块示意图之二;

图8为本申请实施例提供的转发设备的示意图;

图9为本申请实施例提供的转发路径时延检测装置的功能模块示意图之三;

图10为本申请实施例提供的转发路径时延检测装置的功能模块示意图之四。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参照图1,图1为本申请实施例提供的一种snd架构的示意图,其中,控制器(controller)可以与每个转发设备1、转发设备2、转发设备3、转发设备4、转发设备5、转发设备6通信,以接收各转发设备上送的转发情况数据,并向各转发设备下发转发策略。各转发设备之间可以相互通信,并可以根据控制器下发的转发策略对报文执行转发。可以理解的是,在图1所示sdn网络中,转发设备1、转发设备2、转发设备3和转发设备4也可称之为叶节点(leaf),即图1所示leaf1、leaf2、leaf3和leaf4;转发设备5和转发设备6也可称之为脊节点(spine),即图1所示spine1和spine2。

需要说明的是,针对从一个主机(host)发往另一个主机的待测数据流,与发送数据报文的主机连接的转发设备为最先对数据报文执行转发的设备,在本申请实施例中将该转发设备称为待测数据流的转发路径上的源转发设备。与接收数据报文的主机连接的转发设备为最后对数据报文进行转发的设备,在本申请实施例中将该转发设备称为待测数据流的转发路径上的尾转发设备。在本申请实施例中,将待测数据流的转发路径上,位于源转发设备和尾转发设备之间的其他转发设备称为中间转发设备。还需要说明的是,在本申请实施例中,对于不同的数据流,一个转发设备在作为一个数据流的源转发设备的同时,也可以作为另一个数据流的中间转发设备或尾转发设备。

例如,请参照图1,在图1所示组网中,主机host10与转发设备leaf1连接,主机host40与转发设备leaf4连接,当主机host10发往主机host40的报文依次经转发设备leaf1、转发设备spine1及转发设备leaf4发送到主机host40时,对于这条数据流,转发设备leaf1为源转发设备,转发设备leaf4为尾转发设备,转发设备spine1为中间转发设备。

请参照图2,图2为本申请实施例提供的一种转发路径时延检测方法,下面对该方法的各个步骤进行详细阐述。

步骤s110,控制器向待测数据流转发路径上的源转发设备下发检测策略,该检测策略包括待测数据流的流特征信息及预设的最大允许转发时延。

在本申请实施例中,管理员可以针对需要检测的待测数据流在控制器上配置检测策略,检测策略中可以包括该待测数据流的最大允许转发时延及该待测数据流的流特征信息(如源ip地址、目的ip地址、端口号等)。然后管理员可以指定将检测策略发送给该待测数据流转发路径上的源转发设备。

可选地,由于发送待测数据流的主机可能会发生迁移,即发送待测数据流的主机在不同时间点接入的转发设备可能是不同的,而在发送待测数据流的主机接入的转发设备改变后,待测数据流转发路径上的源转发设备也就不同了,因此在本申请实施例中,控制器可以将针对待测数据流配置的检测策略下发到sdn网络中的每个叶子转发设备,其中,叶子转发设备为sdn网络中用于与主机连接的转发设备。如此,可以保证无论发送待测数据流的主机当前接入到哪个转发设备,该转发设备上都存储有针对待测数据流的检测策略。

步骤s120,源转发设备根据检测策略中的流特征信息,获取待测数据流的第一数据报文,并向中间转发设备发送携带路径检测标识的第二数据报文,所述第二数据报文由所述第一数据报文添加所述路径检测标识后获得,所述路径检测标识包括所述最大允许转发时延。

在本申请实施例中,源转发设备在接收到数据报文时,可以将数据报文的流特征信息与检测策略中待测数据流的流特征信息进行比对,若相符,则确定接收到数据报文为待测数据流的第一数据报文。

接着,源转发设备可以向中间转发设备发送第二数据报文,第二数据报文由所述第一数据报文添加所述路径检测标识后获得。例如,源转发设备可以为该第一数据报文添加intheader字段得到第二数据报文然后发送给中间转发设备。

在本申请实施例中,所述检测策略可以为服务质量(qualityofservice,qos)策略表,管理员可以在控制器上对qos策略表进行配置,在qos策略中记录需要执行带内数据流分析(inboundflowanalyze,ifa)的待测数据流的流特征信息,然后将qos策略表下发到源转发设备。源转发设备将接收到的qos策略表下发到硬件后,会将接收到的数据报文的流特征信息与qos策略表中记录的待测数据流的流特征信息进行比对,若相符,则为数据报文添加路径检测标识以执行ifa分析。

所述路径检测标识中可以包括待测数据流的最大允许转发时延,例如,请参照图3,图3为本申请实施例中源转发设备为第二数据报文携带的intheader字段的示意图,其中,探测标记probemarker(1)和探测标记probemarker(2)字段分别为intheader字段的探测标记的高32位和低32位,用于标识intheader字段的起始;版本号version字段用于记录intheader字段的版本号,消息类型messagetype字段用于记录报文的类型;标记符flags字段为报文标记符,用于表示是否复制允许、超过最大跳数是否置位等;遥测请求向量telemetryrequestvector字段为遥测请求向量表,用于标记哪些数据需要收集;跳数计数hoplimit字段用于记录报文的最大跳数限制;跳数计数hopcount字段用于记录报文的当前跳数;需要置零mustbezero字段为需要设置为0的比特位;最大长度maximumlength字段用于记录采集int数据的最大长度,当前长度currentlength字段用于采集int数据的当前长度;发送方句柄sender’shandle字段用于记录报文的发送者标识,序列号sequencenumber字段用于记录报文的序列号。

相较于通常的ifa检测inthead字段,在本申请实施例中加入了最大允许时延(高位)maxdelaytimeu字段和最大允许时延(低位)maxdelaytimel字段,分别用于记录最大允许转发时延的高32位的值和低16位的值。

源转发设备在得到第二数据报文后,根据该第二数据报文的流特征信息执行正常的查表转发,以将该第二数据报文转发至待测数据流转发路径上的下一跳转发设备。

可选地,在步骤s120中,源转发设备还可以在第二数据报文中添加该源转发设备接收到该第一数据报文的第一接收时间。例如,在步骤s120中,源转发设备还在发送的数据报文中添加intmetadata字段,并在intmetadata字段中记录接收第一数据报文的第一接收时间(如接收时间戳,rxtimestamp)。

步骤s130,中间转发设备接收携带有路径检测标识的第三数据报文。

在本步骤中,中间转发设备接收到的第三数据报文可以为源转发设备发送的第二数据报文,也可以为该中间转发设备的上一跳转发设备发送的带有路径检测标识的数据报文。

步骤s140,中间转发设备检测第三数据报文到达该中间转发设备时的转发时延是否达到最大允许转发时延。

在本申请实施例中,待测数据流转发路径上的中间转发设备在接收到数据报文时,检测接收到的数据报文是否具有路径检测标识,若检测到接收到的数据报文具有路径检测标识,则认为该数据报文为需要进行时延检测的第三数据报文,该中间转发设备会根据路径检测标识中的信息检测该第三数据报文到达该中间转发设备时的转发时延是否大于该第三数据报文中携带的最大允许转发时延。

可选地,在步骤s140中,接收到第三数据报文的中间转发设备可以计算该中间转发设备接收到该第三数据报文的第二接收时间与该第三数据报文中携带的第一接收时间之差,得到该第三数据报文到达该中间转发设备的转发时延。然后比较该转发时延是否达到第三数据报文中携带的最大允许转发时延,并根据计较结果执行步骤s150或步骤s160。

若检测到第三数据报文到达该中间转发设备时的转发时延达到最大允许转发时延,则执行步骤s150。

若检测到第三数据报文到达该中间转发设备时的转发时延未达到最大允许转发时延,则执行步骤s160。

步骤s150,中间转发设备向控制器发送与该第三数据报文对应的通知报文,并继续执行转发。

在本申请实施例中,若中间转发设备检测到第三数据报文到达该中间转发设备时的转发时延达到最大允许转发时延,表示待测数据流的报文转发时延已经不满足预定的转发时延要求,则该中间转发设备立即向控制器发送通知报文,从而使控制器可以根据通知报文确定待测数据流的转发时延状态,及时地调整待测数据流的转发策略以保证数据转发的及时性。

步骤s160,中间转发设备继续执行转发。

在本申请实施例中,若中间转发设备检测到第三数据报文到达该中间转发设备时的转发时延未达到最大允许转发时延,表示待测数据流的报文转发时延还满足预定的转发时延要求,不需要通知控制器进行调整,则该中间转发设备继续执行转发。

相较于现有的int检测方式中控制器只能从尾转发设备获知转发路径的时延情况的方案,在本申请实施例提供的转发路径时延检测方法中,通过在数据报文中携带待测数据流的最大允许转发时延,使中间转发设备可以在检测到当前的转发时延不满足要求时及时通知控制器,从而使控制器可以更及时的根据所述通知报文,确定所述待测数据流的转发时延状态。

可选地,为了避免所述转发路径上多个转发设备针对待测数据流的数据报文重复地向控制器发送通知报文,请参照图4,在本申请实施例中,步骤s140之前,还可以包括步骤s210到步骤s220。

步骤s210,中间转发设备在第三数据报文中添加该中间转发设备接收第三数据报文的第二接收时间,得到第四数据报文。

相应地,由于各转发设备在对携带路径检测标识的数据报文执行转发时,都会在数据报文中添加自己的报文接收时间,因此,本中间转发设备接收到的第三数据报文中还携带有第三接收时间,第三接收时间为所述转发路径中除所述源转发设备之外的其他转发设备添加的数据报文接收时间,所述其他转发设备为所述本中间转发设备的上游转发设备。

步骤s220,中间转发设备根据第三接收时间及第一接收时间,判断待测数据流的数据报文到达上游转发设备时的转发时延是否达到最大允许转发时延。

若中间转发设备检测到待测数据流的数据报文到达上游转发设备时的转发时延达到最大允许转发时延,则表示上游转发设备已经针对待测数据流的数据报文向控制器发送过了通知消息,因此,本中间转发设备不再执行步骤s140,直接执行步骤s160,并在步骤s160中对第四数据报文执行转发。

若本中间转发设备检测到待测数据流的数据报文到达上游转发设备时的转发时延未达到最大允许转发时延,则需要进一步通过步骤s140判断数据报文到达本中间转发设备时的转发时延是否达到最大允许转发时延。

可选地,在一个例子中,中间转发设备可以根据所述转发路径上位于自己上游的每个转发设备添加的报文接收时间,计算待测数据流的数据报文到达各个转发设备的转发时延,若检测到数据报文到达任意一个上游转发设备时的转发时延达到最大允许转发时延,则可以认为该上游转发设备已经针对该数据报文向控制器发送过了通知报文,则本中间转发设备不再执行步骤s140。

在另一个例子中,由于若数据报文到达某个中间转发设备时的转发时延大于了最大允许转发时延,则数据报文到达该中间转发设备下游的其他转发设备时的转发时延必定也会大于最大允许转发时延,因此,中间转发设备可以仅根据转发路径上该中间转发设备的上一跳转发设备添加的接收时间,判断数据报文到达上一跳转发设备时的转发时延是否大于最大允许转发时延,则可以认为上游的转发设备已经针对该数据报文向控制器发送过通知消息了,本中间转发设备就不再执行步骤s140。

可选地,在一个例子中,中间转发设备发送的通知报文可以为中间转发设备生成的用于告知控制器待测数据流的转发路径时延状态的报文。

在另一个例子中,在步骤s140中,可以是由中间转发设备复制第四数据报文,将复制后的第四数据报文作为通知报文发送给控制器。

由于中间转发设备还可能因为其他的处理机制复制待测数据流的数据报文上送给控制器,因此,在本申请实施例中,控制器接收到中间转发设备上送的待测数据流的数据报文后,可以根据第二接收时间及第一接收时间计算数据报文的当前的转发时延是否大于最大允许转发时延,若检测到当前的转发时延大于最大允许转发时延,则将该数据报文作为用于告知控制器所述转发路径的转发时延状态的通知报文。

值得说明的是,对于步骤s130到步骤s160,尾转发设备的处理动作与中间转发设备的处理动作大致相同,不同之处在于,在步骤s150及步骤s160中,中间转发设备在对数据报文继续执行转发时,将数据报文转发至下一跳转发设备;而尾转发设备在对数据报文执行转发时,去除数据报文的路径检测标识后将根据数据报文的目的地址转发给相应的主机。

可选地,在本申请实施例中,控制器在接收到通知报文后,可以向源转发设备下发控制指令调整源转发设备针对待测数据流的转发策略。

在一个例子中,控制器可以在收到通知报文后,向源转发设备发送针对待测数据流的优先级调整通知,使源转发设备提高待测数据流后续的数据报文携带的转发优先级参数。

具体地,源转发设备在为待测数据流的数据报文添加转发标识的时,还可以在数据报文中添加或配置转发优先级参数,从而使得各转发设备根据数据报文中携带的转发优先级参数确定该数据报文的转发优先级并执行转发。

控制器在接收到通知报文后,可以向源转发设备下发优先级调整通知,使源转发设备根据优先级调整通知提高待测数据流的数据报文携带的转发优先级参数。如此,各转发设备在对待测数据流的数据报文进行转发时会根据提高后的由的转发优先级参数优先进行转发处理,从而减少待测数据流的转发时延。

例如,请再次参照图3,源转发设备添加的路径检测标识中还可以包括新增的传输质量服务transitqos字段,transitqos字段用于记录转发优先级参数值,各转发设备可以根据数据报文中transitqos字段确定该数据报文的转发优先级。

进一步地,在本申请实施例中,控制器发送给源转发设备的检测策略中还可以包括待测数据流的初始优先级参数,源转发设备根据该初始优先级参数配置transitqos字段的初始值。

在另一个例子中,控制器可以在收到通知报文后,向源转发设备发送针对待测数据流的路由更新通知,该路由更新通知中包括控制器为待测数据流配置的新的转发路径。源转发设备在接收到路由更新通知后,会根据路由更新通知选择该新的转发路径对待测数据流的数据报文进行转发。

在又一个例子中,控制器可以在收到通知报文后,先检测待测数据流当前的转发优先级是否已设置为最高。

若检测到待测数据流当前的转发优先级未设置为最高,则向源转发设备发送针对待测数据流的优先级调整通知,使源转发设备提高数据报文携带的转发优先级参数。

若检测到待测数据流当前的转发优先级已设置为最高,说明该转发路径已经不可能满足最大允许转发时延的要求,则源转发设备向源转发设备发送针对待测数据流的路由更新通知,使源转发设备选择新的转发路径对待测数据流的数据报文进行转发。

在又一个例子中,控制器可以在收到通知报文后仅向源转发设备发送一调整通知。

源转发设备接收到调整通知后,检测待测数据流当前的转发优先级是否已设置为最高。

若检测到待测数据流当前的转发优先级未设置为最高,则源转发设备自行提高数据报文携带的转发优先级参数。

若检测到待测数据流当前的转发优先级已设置为最高,则源转发设备自行发起路由更新以选择新的转发路径对数据报文进行转发。

基于上述设计,在本申请实施例提供的转发路径时延检测方法中,控制器可以在接收到中间转发设备发送的通知报文后及时调整待测数据流的转发策略,以保证待测数据流的转发时延尽快满足要求。

为方便本领域技术人员理解本申请实施例提供的方案,下面通过一个例子解释本申请实施例提供的方案。

请再次参照图1,假设现在需要对图1所示主机host10发往主机host40的待测数据流量进行时延监控。管理员可以在控制器controller上配置该待测数据流的检测策略,包括待测数据流的流特征信息(如,ip地址和tcp端口)、该待测数据流的最大允许转发时延及初始转发优先级。

然后管理员可以将检测策略下发到sdn网络中的所有叶子转发设备,如图1所示转发设备leaf1到leaf4,各转发设备保存检测策略,并根据检测策略下发到硬件。

若当前主机host10接入到转发设备leaf1,leaf1在接收到host10发往host40的数据报文后,数据报文流特征信息查转发表,确定该数据报文需要通过overlay网络层隧道转发至leaf4,则leaf1会为报文添加隧道封装,隧道目的地址为leaf4。可以理解的是,在underlay网络层实现转发时,转发路径为转发设备leaf1—转发设备spine1—转发设备leaf4。

具体地,leaf1根据该数据报文的流特征信息查qos策略表,发现该数据报文需要进行ifa处理,则为该数据报文添加inthead字段和intmetadata字段,其中,inthead字段记录有最大允许转发时延和初始传输优先级,intmetadata字段记录有该数据报文在leaf1的初始接收时间。

然后,leaf1对数据报文执行转发,根据转发表将封装后的数据报文转发至spine1。

spine1接收到数据报文,检测到该数据报文具有inthead字段,则根据接收该数据报文的时间在该数据报文的intmetadata字段中添加自己的intmetadata数据。然后spine1计算intmetadata字段中,由spine1添加的接收时间和由leaf1添加初始接收时间之差得到该数据报文到达spine1时的转发时延,并比较该转发时延是否大于该数据报文中携带的最大允许转发时延。

若spine1检测到该数据报文到达spine1时的转发时延达到了最大允许转发时延,则复制一份添加了spine1的接收时间之后的数据报文作为通知报文发往控制器,并对添加了spine1的接收时间之后的数据报文执行正常转发。控制器接收到通知报文后,检测到当前的转发时延大于最大允许转发时延,则向leaf1发送调整通知,使leaf1提高待测数据流的数据报文中inthead字段的转发优先级参数的值,或控制leaf1选择新的转发路径执行对待测数据流的报文转发。

若spine1检测到该数据报文到达spine1时的转发时延未达到最大允许转发时延,则将添加了spine1的接收时间之后的数据报文转发给leaf4。

leaf4接收到数据报文,检测到该数据报文具有inthead字段,则根据接收到该数据报文的时间,在该数据报文的intmetadata字段中添加自己的intmetadata数据。然后leaf4计算intmetadata字段中,由spine1添加的接收时间和由leaf1添加的初始接收时间之差得到该数据报文到达spine1时的转发时延,并比较该数据报文到达spine1时的转发时延是否大于最大允许转发时延。

若该数据报文到达spine1时的转发时延大于最大允许转发时延,则表示spine1已经针对该数据报文向控制器发送过了通知报文,则leaf4直接执行正常转发。由于leaf4是尾转发设备,leaf4会去掉数据报文的int封装后发送给host40。

若该数据报文到达spine1时的转发时延大于最大允许转发时延,则leaf4计算intmetadata字段中由leaf4添加的当前的接收时间和由leaf1添加初始接收时间之差得到该数据报文到达leaf4时的转发时延,并比较该转发时延是否大于该数据报文中携带的最大允许转发时延。

若leaf4检测到该数据报文到达leaf4时转发时延达到了最大允许转发时延,则复制一份添加了leaf4的接收时间后的数据报文作为通知报文发往控制器,并去掉数据报文的int封装后发送给host40。控制器接收到通知报文后,检测到当前的转发时延大于最大允许转发时延,则向leaf1发送调整通知,使leaf1提高之后待测数据流的数据报文中inthead字段的转发优先级参数的值,或控制leaf1选择新的转发路径执行对待测数据流的报文转发。

若leaf4检测到该数据报文到达leaf4时转发时延未达到最大允许转发时延,则去掉原数据报文的int封装后发送给host40。

请参照图5,图5为本申请实施例提供的一种控制器100的硬件结构示意图。该控制器100可包括处理器130及机器可读存储介质120。处理器130与机器可读存储介质120可经由系统总线通信。并且,机器可读存储介质120存储有机器可执行指令,处理器130通过读取并执行机器可读存储介质120中与转发路径时延检测逻辑对应的机器可执行指令,可使控制器100执行上述转发路径时延检测方法中由控制器执行的步骤。

请参照图6,本申请实施例还提供一种转发路径时延检测装置110,转发路径时延检测装置110包括至少一个可以软件形式存储于机器可读存储介质120中的功能模块。从功能上划分,转发路径时延检测装置110装置可以包括策略下发模块111、通知接收模块112及延时状态确定模块113。

策略下发模块111用于向待测数据流转发路径上的源转发设备下发检测策略,所述检测策略包括待测数据流的流特征信息及预设的最大允许转发时延,使所述源转发设备根据所述流特征信息确定所述待测数据流的数据报文,并在对所述待测数据流的数据报文进行转发时,为所述数据报文添加路径检测标识,所述路径检测标识包括所述最大允许转发时延。

通知接收模块112用于接收所述待测数据流转发路径上的中间转发设备针对所述待测数据流发送的通知报文,所述通知报文由所述中间转发设备在转发所述待测数据流的数据报文的过程中检测到所述数据报文当前的转发时延达到所述最大允许转发时延时发送。

延时状态确定模块113用于根据所述通知报文,确定所述待测数据流的转发时延状态。

可选地,请参照图7,在本申请实施例中,所述转发路径时延检测装置110还包括转发调整模块114。

在一个例子中,转发调整模块114用于向所述源转发设备发送针对所述待测数据流的优先级调整通知,使所述源转发设备提高所述数据报文携带的转发优先级参数。

在另一个例子中,转发调整模块114用于向所述源转发设备发送针对所述待测数据流的路由更新通知,所述路由更新通知中包括为所述待测数据流配置的新的转发路径,使所述源转发设备根据所述新的转发路径对所述待测数据流的数据报文进行转发。

在又一个例子中,转发调整模块114用于检测所述待测数据流当前的转发优先级是否已设置为最高;若检测到所述待测数据流当前的转发优先级未设置为最高,则向所述源转发设备发送针对所述待测数据流的优先级调整通知,使所述源转发设备提高所述数据报文携带的转发优先级参数;若检测到所述待测数据流当前的转发优先级已设置为最高,则向所述源转发设备发送针对所述待测数据流的路由更新通知,所述路由更新通知中包括为所述待测数据流配置的新的转发路径,使所述源转发设备根据所述新的转发路径对所述待测数据流的数据报文进行转发。

可选地,在本申请实施例中,通知接收模块112具体用于接收所述中间转发设备上送的所述待测数据流的数据报文,所述数据报文包括所述源转发设备接收所述数据报文的第一接收时间及所述中间转发设备接收所述数据报文的第二接收时间;计算所述第二接收时间与所述第一接收时间之差,得到所述数据报文的转发时延,并检测所述转发时延是否大于所述最大允许转发时延;若检测到所述转发时延大于所述最大允许转发时延,则将该数据报文作为所述通知报文。

请参照图8,图8为本申请实施例提供的一种转发设备200的硬件结构示意图。该转发设备200可包括处理器230及机器可读存储介质220。处理器230与机器可读存储介质220可经由系统总线通信。并且,机器可读存储介质220存储有机器可执行指令,处理器230通过读取并执行机器可读存储介质220中与转发路径时延检测逻辑对应的机器可执行指令,可至转发设备作为源转发设备或中间转发设备执行上述转发路径时延检测方法中由转发设备执行的步骤。

请参照图9,本申请实施例还提供一种应用在中间转发设备的转发路径时延检测装置210,转发路径时延检测装置210包括至少一个可以软件形式存储于机器可读存储介质220中的功能模块。从功能上划分,转发路径时延检测装置210装置可以包括报文接收模块211、时延检测模块212及通知模块213。

报文接收模块211用于接收携带有路径检测标识的第一数据报文,所述路径检测标识包括预设的最大允许转发时延。

时延检测模块212用于检测所述第一数据报文到达所述转发设备时的转发时延是否达到所述最大允许转发时延。

通知模块213用于若所述转发时延达到所述最大允许转发时延,则向所述控制器发送通知报文。

可选地,在本申请实施例中,所述第一数据报文还携带有第一接收时间,所述第一接收时间为由源转发设备添加的数据报文接收时间,所述源转发设备与所述转发设备处于用于转发所述第一数据报文的转发路径中。

时延检测模块212具体用于计算所述转发设备接收所述第一数据报文的第二接收时间与所述第一接收时间之差,得到所述第一数据报文到达所述转发设备时的转发时延。

可选地,在本申请实施例中,所述第一数据报文还携带有第三接收时间,所述第三接收时间为所述转发路径中除所述源转发设备之外的其他转发设备添加的数据报文接收时间,所述其他转发设备为所述转发设备的上游转发设备。

时延检测模块212还用于在所述第一数据报文中添加该转发设备接收所述第一数据报文的第二接收时间,得到第二数据报文;根据所述第三接收时间及所述第一接收时间,判断数据报文到达所述上游转发设备时的转发时延是否达到所述最大允许转发时延;若数据报文到达所述上游转发设备时的转发时延达到所述最大允许转发时延,则转发所述第二数据报文;若数据报文到达所述上游转发设备时的转发时延未达到所述最大允许转发时延,则检测所述第一数据报文到达所述转发设备时的转发时延是否达到所述最大允许转发时延。

可选地,在本申请实施例中,通知模块213用于具体用于对所述第二数据报文进行复制,并将复制后的所述第二数据报文作为所述通知报文,并向所述控制器发送。

请参照图10,本申请实施例还提供一种应用在源转发设备的转发路径时延检测装置310,转发路径时延检测装置310包括至少一个可以软件形式存储于机器可读存储介质220中的功能模块。从功能上划分,转发路径时延检测装置310装置可以包括策略接收模块311、报文确定模块312及报文发送模块313。

策略接收模块311用于接收控制器下发的检测策略,所述检测策略包括待测数据流的流特征信息及预设的最大允许转发时延;

报文确定模块312,用于根据所述流特征信息,获取所述待测数据流的第一数据报文;

报文发送模块313,用于向中间转发设备发送携带路径检测标识的第二数据报文,所述第二数据报文由所述第一数据报文添加所述路径检测标识后获得,所述路径检测标识包括所述最大允许转发时延,使所述中间转发设备在检测到所述第二数据报文到达所述中间转发设备时的转发时延达到所述最大允许转发时延时,向所述控制器发送通知报文。

其中,所述转发设备与所述中间转发设备处于用于转发所述待测数据流的报文的转发路径中。

可选地,在本申请实施例中,转发路径时延检测装置310还可以包括转发调整模块314。

在一个例子中,转发调整模块314用于接收所述控制器根据所述通知报文发送的优先级调整通知;根据所述优先级调整通知提高所述第二数据报文中的转发优先级参数,并根据调整后的转发优先级参数对所述第二数据报文进行转发。

在另一个例子中,转发调整模块314用于接收所述控制器根据所述通知报文发送的路由更新通知,所述路由更新通知中包括所述控制器为所述待测数据流配置的新的转发路径;根据所述新的转发路径对所述第二数据报文进行转发。

在又一个例子中,转发调整模块314用于接收所述控制器根据所述通知报文发送的调整通知;检测所述待测数据流当前的转发优先级是否已设置为最高;若检测到所述待测数据流当前的转发优先级未设置为最高,则提高所述第二数据报文携带的转发优先级参数;若检测到所述待测数据流当前的转发优先级已设置为最高,则发起路由更新以选择新的转发路径对所述第二数据报文进行转发。

本文中提到的机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

综上所述,本申请实施例提供的转发路径时延检测方法、控制器及转发设备,通过在待测数据流的数据报文中携带有预设的最大允许转发时延,使待测数据流转发路径上的中间转发设备可以在检测到当前的转发时延大于最大允许转发时延时向控制器发送通知报文。如此,使得控制器可以及时的获知待测数据流转发路径的转发时延状态,从而可以及时地调整待测数据流的转发策略。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1