发明内容
有鉴于此,本发明提供了一种链路选择方法和一种链路选择装置,应用于具有高速链路和低速链路的组网中,能够提高对链路资源的利用率。
本发明的方案是这样实现的:
一种链路选择方法,应用于具有高速链路和低速链路的组网中,该方法包括:
确定待传输流量的流量优先级;当确定待传输流量为低优先级流量时,判断所述高速链路上是否有高优先级流量,
如果有,则确定低速链路传输所述待传输流量,如果所述判断所述高速链路上是否有高优先级流量的判断结果与上一次判断高速链路上是否有高优先级流量的判断结果相同,则采用当前转发表转发待传输流量,该当前转发表具有采用低速链路对应的接口作为出接口的转发表项;否则,利用低速链路对应的接口作为出接口,更新当前转发表,采用更新后的转发表转发待传输流量;
如果没有,则确定高速链路传输所述待传输流量,如果所述判断所述高速链路上是否有高优先级流量的判断结果与上一次判断高速链路上是否有高优先级流量的判断结果相同,则采用当前转发表转发待传输流量,该当前转发表具有采用高速链路对应的接口作为出接口的转发表项;否则,利用高速链路对应的接口作为出接口,更新当前转发表;采用更新后的转发表转发待传输流量。
较佳地,所述确定待传输流量的流量优先级之后,进一步包括:当确定待传输流量为高优先级流量时,确定高速链路传输所述待传输流量。
其中,所述判断所述高速链路上是否有高优先级流量的依据为:表示高速链路是否有高优先级流量的高速链路状态标识;
该方法进一步包括:在确定待传输流量为高优先级流量时,将所述高速链路状态标识设置为有高优先级流量;当高速链路上没有高优先级流量传输的持续时间大于或等于预设超时时间时,将所述高速链路状态标识设置为没有高优先级流量。
其中,所述持续时间大于或等于预设超时时间的执行条件为:
在所述确定待传输流量为低优先级流量之后,在所述判断所述高速链路上是否有高优先级流量之前,且所述高速链路状态标识为有高优先级流量;
或者,在所述高速链路状态标识为有高优先级流量期间,定时执行。
较佳地,该方法进一步包括:预先配置路由策略,该路由策略中包括第一访问控制列表ACL和第二ACL;
第一ACL的内容包括:匹配第一ACL的待传输流量的流量优先级为高;且应用高速链路对应的出口;
第二ACL的内容包括:匹配第二ACL的待传输流量的流量优先级为低;且当确定高速链路时应用高速链路对应的出口,当确定低速链路时应用低速链路对应的出口;
所述确定待传输流量的流量优先级为:根据所述路由策略,确定与待传输流量匹配的ACL,当匹配的ACL为第一ACL时,确定待传输流量为高优先级流量,当匹配的ACL为第二ACL时,确定待传输流量的低优先级流量;
当确定待传输流量为高优先级流量时,所述确定高速链路传输所述待传输流量之后,进一步包括:根据所述第一ACL,应用高速链路对应的出口作为出接口转发待传输流量;
当确定待传输流量为低优先级流量时,所述确定低速链路传输所述待传输流量之后,进一步包括:根据所述第二ACL,应用低速链路对应的出口作为出接口转发待传输流量;
当确定待传输流量为低优先级流量时,所述确定高速链路传输所述待传输流量之后,进一步包括:根据所述第二ACL,应用高速链路对应的出口作为出接口转发待传输流量。
其中,当所述组网中具有多条高速链路时,所述判断所述高速链路上是否有高优先级流量为:判断所有高速链路上是否均有高优先级流量,如果是,则判定高速链路上有高优先级流量,否则,判定高速链路上没有高优先级流量;
当确定待传输流量为低优先级流量时,所述确定高速链路传输所述待传输流量为:从没有高优先级流量的高速链路中选择其中一条,作为传输所述待传输流量的高速链路。
一种链路选择装置,用于为待传输流量选择高速链路或低速链路作为传输链路,该装置包括:
流量优先级确定单元,用于确定待传输流量的流量优先级,将确定结果发送给链路选择单元;
链路选择单元,用于在确定结果显示待传输流量为低优先级流量时,判断高速链路上是否有高优先级流量;如果有,则确定低速链路传输所述待传输流量;如果没有,则确定高速链路传输所述待传输流量;
转发单元,该转发单元包括判断模块、路由策略模块、转发表维护模块和转发模块;其中,
所述判断模块,用于从所述链路选择单元接收判断高速链路上是否有高优先级流量的判断结果和所确定的传输链路,判断接收的判断结果是否与上一次接收的判断结果相同;如果相同,则通知所述转发模块;如果不同,则将接收的所确定的传输链路信息发送给所述路由策略模块;
所述路由策略模块,用于接收所述传输链路信息,在所述传输链路信息指示低速链路时,利用低速链路对应的接口作为出接口,更新所述转发表维护模块中的转发表;在所述传输链路信息指示高速链路时,利用高速链路对应的接口作为出接口,更新所述转发表维护模块中的转发表;通知所述转发模块;
所述转发表维护模块,用于存储转发表,接受所述路由策略模块的更新;
所述转发模块,用于在接收到通知后,根据所述转发表维护模块中的转发表转发所述待传输流量。
其中,所述链路选择单元包括接收模块、高优先级流量处理模块、标识维护模块和低优先级流量处理模块;
所述接收模块,用于接收所述确定结果,在所述确定结果显示待传输流量为高优先级流量时,通知所述高优先级流量处理模块;在所述确定结果显示待传输流量为低优先级流量时,通知所述低优先级处理模块;
所述高优先级流量处理模块,用于在接收到通知时,确定高速链路传输所述待传输流量,将所述标识维护模块维护的高速链路状态标识设置为有高优先级流量;
所述标识维护模块,用于存储所述高速链路状态标识的值,当高速链路上没有高优先级流量传输的持续时间大于或等于预设超时时间时,将所述高速链路状态标识设置为没有高优先级流量;
所述低优先级流量处理模块,用于在接收到通知时,根据所述标识维护模块中的高速链路状态标识判断高速链路上是否有高优先级流量,如果有,则确定低速链路传输所述待传输流量;如果没有,则确定高速链路传输所述待传输流量。
较佳地,所述标识维护模块进一步用于,在所述低优先级流量处理模块判断高速链路上是否有高优先级流量之前,如果高速链路状态标识为有高优先级流量,则判断所述持续时间是否大于或等于预设超时时间,或者,在所述高速链路状态标识为有高优先级流量期间,定时判断所述持续时间是否大于或等于预设超时时间。
根据以上技术方案可见,本发明实施例在网络只有低优先级流量时,流量走高速链路;当网络既有高优先级流量又有低优先级流量时,低优先级流量走低速链路。那么,低优先级流量可以在高速链路空闲的情况下占用高速链路,使得高速链路的带宽资源得到充分利用,从而提高了链路资源利用率。此外,本发明实施例在网络只有高优先级流量时,流量走高速链路;在网络既有高优先级流量又有低优先级流量时,高优先级流量走高速链路,保证高优先级流量对高速链路的占用。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明实施例提供了一种在具有高速链路和低速链路的组网中进行链路选择的方案,其基本思想为:确定待传输流量的流量优先级,当确定待传输流量为低优先级流量时,判断高速链路上是否有高优先级流量,如果有,则确定低速链路传输待传输流量;如果没有,则确定高速链路传输待传输流量。
此外,在确定待传输流量为高流量优先级流量时,仍确定以高速链路传输待传输流量。
可见,当网络只有高优先级流量时,流量走高速链路;当网络只有低优先级流量时,流量走高速链路;当网络既有高优先级流量又有低优先级流量时,高优先级流量走高速链路,低优先级流量走低速链路。既保证高优先级流量对高速链路的占用,又使得低优先级流量可以在高速链路空闲的情况下占用高速链路,使得高速链路的带宽资源得到充分利用,从而提高了链路资源利用率。
如果网络中具有多条高速链路,则在判断高速链路上是否有高优先级流量时,判断所有高速链路上是否都有高优先级流量,如果是,则判定高速链路上有高优先级流量;否则,判定高速链路上没有高优先级流量,此时从没有高优先级流量的高速链路中选择其中一条,用于传输待传输的低优先级流量。
较佳地,为了避免低优先级流量在高速链路和低速链路之间频繁切换,在判断高速链路上是否有高优先级流量时,判断高速链路上没有收到高优先级流量的持续时间是否大于预设超时时间,例如300s,如果是,则判定高速链路上没有高优先级流量,认为高优先级业务暂时中止;否则,判定高速链路上有高优先级数据。那么,如果高优先级流量刚刚在高速链路上传输完毕,立刻接收到了低优先级流量,此时,高速链路不能马上用于传输低优先级流量,低优先级流量将在低速链路上传输一段时间,待达到预设超时时间后,低优先级流量才切换到高速链路上传输。
本发明中的链路选择方案可以应用在图1中的出口路由器中,图2为本发明实施例中出口路由器执行链路选择方法的流程图,如图2所示,该方法包括以下步骤:
步骤201:接收流量,根据流量源地址确定流量的流量优先级。
本步骤中,预先将承载高业务优先级的流量指定为高流量优先级,将承载低业务优先级的流量指定为低流量优先级。如图1所示,来自不同源地址的流量承载不同业务优先级的业务,因此可以通过流量的源地址区分流量优先级。
那么,本步骤确定流量优先级时,以所接收的待传输流量的源地址为索引,在预设的源地址与流量优先级之间的对应关系中进行匹配,查找与所接收的待传输流量的源地址对应的流量优先级。
其中,源地址是匹配信息。在实际中,匹配信息还可以是流量的目的IP地址、源端口号或目的端口号。匹配操作可以采用匹配预设的ACL实现。
步骤202:判断流量的优先级是否为高,如果是,则执行步骤203;否则,执行步骤204。
步骤203:将本发明增设的高速链路状态标识(flow_status)置为高(high),采用高速链路传输高优先级流量。本流程结束。
步骤204:更新flow_status的值。
本步骤中,如果flow_status的值为低(low),则更新后仍为low;如果,flow_status的值为high,表明高速链路之前被高优先级流量占用,计算高速链路上一次传输高优先级流量的时间到当前时间的时间差,如果该时间差大于或等于预设超时时间,则确定高速链路可以被低优先级流量占用,此时,将flow_status置为low;如果计算的时间差小于预设超时时间,则保持flow_status的值不变。
步骤205:判断flow_status的值,如果为high,则执行步骤206;否则,执行步骤207。
步骤206:flow_status的值为high,表示高速链路被高优先级流量占用,此时,确定低速链路传输低优先级流量。本流程结束。
步骤207:flow_status的值为low,表示高速链路没有被高优先级流量占用,其状态为空闲,此时,确定高速链路传输低优先级流量。本流程结束。
至此,本流程结束。
以上步骤204中更新flow_status值的操作也可以定时执行。
当确定传输链路后,需要配置转发表,然后根据转发表进行流量传输。当上一次转发和本次转发所用的链路相同时,可以不对转发表进行修改,以节省转发表修改所占用的资源。因此,本发明实施例可以只在上一次转发和本次转发使用不同链路时,才修改转发表。以下对与本发明的链路选择以及根据选择结果进行流量转发的流程进行详细描述。
图3为本发明实施例中出口路由器执行链路选择和流量转发方法的流程图。如图3所示,该方法包括以下步骤:
步骤301:接收流量,根据流量源地址确定流量的流量优先级。
本步骤中,在预先配置的路由策略中,查找与所接收的待传输流量匹配的ACL,将匹配的ACL中记载的流量优先级确定为待传输流量的流量优先级。其中,路由策略中至少包括第一ACL和第二ACL,第一ACL的内容包括:匹配第一ACL的待传输流量的流量优先级为高;且应用高速链路对应的出口;第二ACL的内容包括:匹配第二ACL的待传输流量的流量优先级为低;且当确定高速链路时应用高速链路对应的出口,当确定低速链路时应用低速链路对应的出口。
为了实现以上路由策略的配置,在实际中,可以对现有技术中的路由策略进行改造,为if match acl命令增加参数:流量优先级;为applyoutput-interface命令增加参数:链路优先级。具体配置如下:
[H3C]acl number 3101//编号为3101的ACL;
[H3C-acl-adv-3101]rule permit in source 10.0.0.1//源IP地址为10.0.0.1的业务流匹配编号为3101的ACL;该项为匹配规则(rule);
[H3C-route-policy]if-match acl 3101high//如果匹配上编号为3101的ACL,则流量优先级为高(high);
[H3C-route-policy]apply output-interface ethernet 1/0//应用出口ethernet 1/0。;
[H3C]acl number 3102//编号为3102的ACL;
[H3C-acl-adv-3102]rule permit in source 10.0.0.2//源IP地址为10.0.0.2的业务流匹配编号为3102的ACL;
[H3C-route-policy]if-match acl 3102low//如果匹配上编号为3102的ACL,则流量优先级为低(low);
[H3C-route-policy]apply output-interface Ethernet 1/0high//当确定选用高(high)链路优先级的链路时,应用出口ethernet 1/0;
[H3C-route-policy]apply output-interface Serial 2/0low//当确定选用低(low)链路优先级的链路时,应用出口Serial 2/0。
本实施例中,路由策略中的匹配信息为流量的源IP地址,且一个ACL有一个匹配规则(rule)。在实际中,匹配信息可以设置为流量的目的IP地址、源端口号或目的端口号,等等。而且,一个ACL也可以有多个匹配规则(rule)。
本步骤中,采用流量的源地址在ACL中进行匹配,如果源地址为10.0.0.1,则匹配上编号为3101的ACL,确定流量的优先级高;如果流量源地址为10.0.0.2,则匹配上编号为3102的ACL,确定流量的优先级低。
当流量的优先级低时,还需要根据后续步骤确定应用哪个出口。
步骤302:判断流量的优先级是否为高,如果是,则执行步骤310;否则,执行步骤320。
步骤310:确定当前流量为高优先级流量,将flow_status置为high,并用当前时间更新高优先级流量接收时间(high_flow_time)的值。执行步骤330。
步骤320:确定当前流量为低优先级流量,判断当前flow_status的值是否为high,如果是,则执行步骤321;否则,执行步骤330。
步骤321:判断当前时间与high_flow_time之差的绝对值是否大于或等于预设超时时间(high_flow_timeout);如果是,则执行步骤322;否则,执行步骤323。
步骤322:将high_flow_time的值改为low,执行步骤323。
步骤323:判断当前flow_status的值是否与上一次记录的flow_status相同;如果是,则执行步骤330;否则,执行步骤324。
如果当前flow_status的值与上一次记录的flow_status相同且为high,则上一次转发流量时使用的转发表中具有采用低速链路对应的接口作为出接口的转发表项,本次转发仍然适用,无需更新,因此,直接执行步骤330。
如果当前flow_status的值与上一次记录的flow_status相同且为low,则上一次转发流量时使用的转发表中具有采用高速链路对应的接口作为出接口的转发表项,本次转发仍然适用,无需更新,因此,直接执行步骤330。
如果出口路由器是第一次接收到流量,则出口路由器中没有上一次记录的flow_status,那么,按照当前flow_status的值与上一次记录的flow_status不同处理即可。
步骤324:如果flow_status的值从low变为high,则利用配置的低链路优先级的链路对应的接口作为出接口,更新转发表;如果flow_status的值从high变为low,则利用配置的高链路优先级的链路对应的接口作为出接口,更新转发表。
本步骤中,如果flow_status的值从low变为high,则确定选用低链路优先级的链路,那么根据步骤301描述的路由策略配置,选择出口Serial 2/0作为出接口,从而将流量通过低速链路传输;如果flow_status的值从high变为low,则确定选用高链路优先级的链路,那么根据步骤301描述的路由策略配置,选择出口Ethernet 1/0作为出接口,从而将流量通过高速链路传输。
步骤325:记录本次的flow_status值。执行步骤330。
步骤330:根据转发表转发当前流量。
该转发表是根据路由策略配置和步骤324的执行结果确定的。对于高优先级流量,转发表中的转发表项为通过Ethernet1/0接口将流量传输到高速链路上。对于低优先级流量,是通过Ethernet1/0接口将流量传输到高速链路上,或是通过Serial2/0将流量传输到低速链路上,是根据步骤324的执行结果确定的。
至此,本流程结束。
图3示出的流程是在确定流量优先级为低之后读取当前时间并计算当前时间与high_flow_time的时间差,为了减少转发流程中读取当前时间和计算时间差所占用的时间对转发性能的影响,在本实施例中,可以设置一个定时器,例如设置定时时间为10s,当定时器超时,执行读取系统当前时间和计算时间差的操作。同理,步骤310中更新high_flow_time的操作也可以在将high_status设置为high之后的定时器超时刻执行。定时器的超时时间例如设置为10s。
本发明实施例还提供了一种链路选择装置。图4为本发明实施例中链路选择装置的结构示意图。如图4所示,该装置包括流量优先级确定单元41和链路选择单元42。其中,
流量优先级确定单元41,用于确定待传输流量的流量优先级,将确定结果发送给链路选择单元42。具体来说,该流量优先级确定单元41获取待传输流量的源地址,将获取的源地址与预设的源地址与流量优先级之间的对应关系进行匹配,从而确定待传输流量的流量优先级。
链路选择单元42,用于接收流量优先级确定单元41发来的确定结果,在确定结果显示待传输流量为低优先级流量时,判断高速链路上是否有高优先级流量,如果有,则确定低速链路传输待传输流量;如果没有,则确定高速链路传输待传输流量。
该链路选择单元42具体包括接收模块421、高优先级流量处理模块422、低优先级流量处理模块423和标识维护模块424;其中,
接收模块421,用于接收流量优先级确定单元41发来的确定结果,在该确定结果显示待传输流量为高优先级流量时,通知高优先级流量处理模块422;在确定结果显示待传输流量为低优先级流量时,通知低优先级处理模块423。
高优先级流量处理模块422,用于在接收到通知时,确定高速链路传输待传输流量,将标识维护模块424维护的flow_status设置为high。
低优先级流量处理模块423,用于在接收到通知时,根据标识维护模块424中的flow_status判断高速链路上是否有高优先级流量,如果有,则确定低速链路传输待传输流量;如果没有,则确定高速链路传输待传输流量。
标识维护模块424,用于存储flow_status的值;在高速链路上没有高优先级流量传输的持续时间大于或等于预设超时时间时,将flow_status设置为low。在实际中,可以在flow_status每次被设置为high时,记录设置时间,即前述high_flow_time,在低优先级流量处理模块接收到通知之后,如果flow_status为high,则计算当前时间与所记录的high_flow_time之间的时间差,如果时间差大于或等于预设超时时间,则将高速链路状态标识设置为low。在实际中,也可以在flow_status为high的阶段,定时执行所述计算和根据计算结果的处理操作。
在选定传输链路后,还需要根据选定的传输链路进行转发表的设置,继而根据转发表进行转发。因此,图4中的链路选择装置还包括转发单元43。该转发单元43具体包括:判断模块431、路由策略模块432、转发表维护模块434和转发模块433;其中,
判断模块431,用于从链路选择单元42中的低优先级流量处理模块423接收高速链路上是否有高优先级流量的判断结果和所确定传输链路信息,判断接收的判断结果是否与上一次接收的判断结果相同;如果相同,则通知转发模块433;如果不同,则将接收的传输链路信息发送给路由策略模块432。
路由策略模块432,用于接收判断模块431发来的传输链路信息,在所接收的传输链路信息指示低速链路时,利用低速链路对应的接口作为出接口,更新转发表维护模块434中的转发表;在所接收的传输链路信息指示高速链路时,利用高速链路对应的接口作为出接口,更新转发表维护模块434中的转发表;最后,通知转发模块433。该路由策略模块432执行的操作是根据路由策略实现的,该路由策略具体可以为前述方法实施例中步骤301描述的路由策略。
转发表维护模块434,用于存储转发表;接受路由策略模块432对转发表的更新。
转发模块433,用于在接收到通知后,根据转发表维护模块434中的转发表,转发待传输流量。
如果链路选择单元42中的高优先级流量处理模块422确定采用高速链路传输流量优先级为高的待传输流量时,通知判断模块431。判断模块431接收到通知,且获知该通知来自高优先级流量处理模块422时,通知转发模块433。
如果网络中具有多条高速链路,则低优先级流量处理模块423在判断高速链路上是否有高优先级流量时,判断所有高速链路上是否都有高优先级流量,如果是,则判定高速链路上有高优先级流量;如果所有高速链路中的一个或几个没有高优先级流量,则判定高速链路上没有高优先级流量,此时,从没有高优先级流量的高速链路中选择其中一条,用于传输待传输的低优先级流量。
可见,使用本发明能够提高对链路资源的利用率。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。