流量控制方法及装置与流程

文档序号:13450020阅读:186来源:国知局
流量控制方法及装置与流程

本发明涉及通信技术领域,尤指一种流量控制方法及装置。



背景技术:

目前,路由器、交换机等网络设备中,从物理接口收到的报文要经过入口线卡和出口线卡的处理,然后转发出去,如图1所示。

主要包含如下处理:报文发送到入口线卡进行报文头部解析、查转发表以确定出口、并且对报文作分类限速等处理;根据报文分类的结果,将其放到不同的队列当中,按照队列所配置的策略进行调度;报文交给虚拟输出队列(virtualoutputqueue,voq),根据出口队列的拥塞情况,控制进入交换网的流量大小,报文进行切片然后提交到交换网;交换网将分片都转发到对应的出口线卡上,由出口线卡将分片重组成为原始报文;重组后的报文重新进行出口线卡上的队列调度,在出口线卡上重新查表而后从物理接口转发出去。

在上述处理过程中,入口线卡进行队列调度之后,voq可能只允许队列调度后的一部分报文能够进入交换网,也就是说剩下的部分报文将会随机丢弃,若用户配置了层次化服务质量(hierarchicalqualityofservice,hqos),此时,可能造成某一个用户的低优先级的流量全部被丢弃,从而导致该用户的服务得不到保障。因此,现有的流量控制方法无法保证多级队列流量的公平性。



技术实现要素:

本发明实施例提供一种流量控制方法及装置,用以解决现有技术中存在的无法保证多级队列流量的公平性的问题。

根据本发明实施例,提供一种流量控制方法,应用在网络设备的入口线卡中,包括:

获取所述入口线卡的每个虚拟输出队列voq的信用点;

确定出口线卡的各个出口队列是否拥塞;

若确定所述出口线卡的第一出口队列拥塞,则确定与所述第一出口队列对应的第一voq;

确定所述第一voq是否包括下级队列;

若所述第一voq包括下级队列,则根据所述第一出口队列的调度策略和所述第一voq的信用点控制所述第一voq的各个下级队列的流量发送速率。

具体的,获取所述入口线卡的每个voq的信用点,具体包括:

向所述出口线卡发送信用点获取请求,以使所述出口线卡根据各个出口队列的拥塞情况确定分配给与各个出口队列对应的voq的信用点,并向所述入口线卡发送携带各个voq的信用点的信用点获取响应;

接收所述出口线卡发送的信用点获取响应;

获取所述信用点获取响应中携带的各个voq的信用点。

具体的,确定出口线卡的各个出口队列是否拥塞,具体包括:

向所述出口线卡发送拥塞监控请求,以使所述出口线卡监控各个出口队列的长度是否超过设定阈值,若监控到第一出口队列的长度超过所述设定阈值,则确定所述第一出口队列拥塞,向所述入口线卡发送携带所述第一出口队列的队列标识和拥塞标识的拥塞监控响应;

接收所述出口线卡发送的拥塞监控响应;

获取所述拥塞监控响应携带的所述第一出口队列的队列标识和拥塞标识;

确定所述第一出口队列拥塞。

具体的,确定与所述第一出口队列对应的第一voq,具体包括:

获取出口队列与voq的对应关系;

在所述对应关系中查找所述第一出口队列的队列标识;

将在所述对应关系中查找到的所述第一出口队列的队列标识对应的voq确定为所述第一出口队列对应的第一voq。

具体的,根据所述第一出口队列的调度策略和所述第一voq的信用点控制所述第一voq的各个下级队列的流量发送速率,具体包括:

根据所述第一出口队列的调度策略将所述第一voq的信用点分配给所述第一voq的各个下级队列;

按照分配给所述第一voq的各个下级队列的信用点和对应下级队列的配置发送速率二者中的较小者发送对应下级队列中的报文。

根据本发明实施例,还提供一种流量控制装置,应用在网络设备的入口线卡中,包括:

获取模块,用于获取所述入口线卡的每个虚拟输出队列voq的信用点;

第一确定模块,用于确定出口线卡的各个出口队列是否拥塞;

第二确定模块,用于若确定所述出口线卡的第一出口队列拥塞,则确定与所述第一出口队列对应的第一voq;

第三确定模块,用于确定所述第一voq是否包括下级队列;

控制模块,用于若所述第一voq包括下级队列,则根据所述第一出口队列的调度策略和所述第一voq的信用点控制所述第一voq的各个下级队列的流量发送速率。

具体的,所述获取模块,具体用于:

向所述出口线卡发送信用点获取请求,以使所述出口线卡根据各个出口队列的拥塞情况确定分配给与各个出口队列对应的voq的信用点,并向所述入口线卡发送携带各个voq的信用点的信用点获取响应;

接收所述出口线卡发送的信用点获取响应;

获取所述信用点获取响应中携带的各个voq的信用点。

具体的,所述第一确定模块,具体用于:

向所述出口线卡发送拥塞监控请求,以使所述出口线卡监控各个出口队列的长度是否超过设定阈值,若监控到第一出口队列的长度超过所述设定阈值,则确定所述第一出口队列拥塞,向所述入口线卡发送携带所述第一出口队列的队列标识和拥塞标识的拥塞监控响应;

接收所述出口线卡发送的拥塞监控响应;

获取所述拥塞监控响应携带的所述第一出口队列的队列标识和拥塞标识;

确定所述第一出口队列拥塞。

具体的,所述第二确定模块,具体用于:

获取出口队列与voq的对应关系;

在所述对应关系中查找所述第一出口队列的队列标识;

将在所述对应关系中查找到的所述第一出口队列的队列标识对应的voq确定为所述第一出口队列对应的第一voq。

具体的,所述控制模块,具体用于:

根据所述第一出口队列的调度策略将所述第一voq的信用点分配给所述第一voq的各个下级队列;

按照分配给所述第一voq的各个下级队列的信用点和对应下级队列的配置发送速率二者中的较小者发送对应下级队列中的报文。

本发明有益效果如下:

本发明实施例提供一种流量控制方法及装置,通过获取所述入口线卡的每个voq的信用点;确定出口线卡的各个出口队列是否拥塞;若确定所述出口线卡的第一出口队列拥塞,则确定与所述第一出口队列对应的第一voq;确定所述第一voq是否包括下级队列;若所述第一voq包括下级队列,则根据所述第一出口队列的调度策略和所述第一voq的信用点控制所述第一voq的各个下级队列的流量发送速率。该方案中,在确定第一出口队列拥塞后,可以根据第一出口队列的调度策略和与第一出口队列对应的第一voq的信用点来控制第一voq的各个下级队列的流量发送速率,不再随机丢弃报文,从而能够避免将某个用户的低优先级的流量全部丢弃,保证多级队列流量的公平性。

附图说明

图1为现有技术中网络设备的报文处理过程的示意图;

图2为本发明实施例中一种流量控制方法的流程图;

图3为本发明实施例中s21的流程图;

图4为本发明实施例中s22的流程图;

图5为本发明实施例中s23的流程图;

图6为本发明实施例中s24的流程图;

图7为本发明实施例中一种流量控制装置的结构示意图。

具体实施方式

针对现有技术中存在的无法保证多级队列流量的公平性的问题,本发明实施例提供一种流量控制方法,该方法可以应用在如图1所示的入口线卡中,该方法的流程如图2所示,执行步骤如下:

s21:获取入口线卡的每个voq的信用点。

路由器、交换机等网络设备中,一般都存在voq机制,来控制入口线卡有过量的流量进入交换网。在出口拥塞的时候,可以通过voq的信用点分配机制来控制入口线卡发送到交换网的流量,也就是说入口线卡得到多少信用点,就发送多少流量进入交换网。

s22:确定出口线卡的各个出口队列是否拥塞。

通常,出口线卡的各个出口队列有不同的优先级,如果各个出口队列没有拥塞,也就是说每个优先级的出口队列在转发时可以得到实时处理,那么,所有入口线卡的报文都转发到出口时,仍然可以顺利转发出去,也就不需要对入口线卡转发到交换网的流量进行控制。如果某个出口队列出现拥塞,那么,入口线卡的报文会丢弃一部分,为了保证对各个用户服务的公平性,这时候就需要对入口线卡进行流量控制。因此,在对入口线卡进行流量控制时,需要确定出口线卡的各个出口队列是否拥塞。

s23:若确定出口线卡的第一出口队列拥塞,则确定与第一出口队列对应的第一voq。

出口线卡通常包括多个出口队列,拥塞的出口队列定义为第一出口队列。通常,出口线卡的各个出口队列与入口线卡的各个voq之间有映射关系,因此,在确定出第一出口队列拥塞以后,需要确定与第一出口队列对应的voq,该voq定义为第一voq。

s24:确定第一voq是否包括下级队列。

s25:若第一voq包括下级队列,则根据第一出口队列的调度策略和第一voq的信用点控制第一voq的各个下级队列的流量发送速率。

入口线卡上的voq可能会包括多个下级队列,每个下级队列可以对应一个用户,也可能不包括下级队列,对于包括多个下级队列的voq,在其对应的出口队列拥塞时,可能出现某一个下级队列的报文全部被丢弃的情况,也就是说可能出现某个用户的报文全部被丢弃的情况,因此,需要进行流量控制。在确定第一出口队列拥塞并确定第一voq包括下级队列之后,可以根据第一出口队列的调度策略和第一voq的信用点来控制第一voq的各个下级队列的流量发送速率。其中,可以根据实际需要预先设定第一出口队列的调度策略。

该方案中,在确定第一出口队列拥塞后,可以根据第一出口队列的调度策略和与第一出口队列对应的第一voq的信用点来控制第一voq的各个下级队列的流量发送速率,不再随机丢弃报文,从而能够避免将某个用户的低优先级的流量全部丢弃,保证多级队列流量的公平性。

具体的,上述s21中的获取入口线卡的每个voq的信用点,实现过程如图3所示,具体包括:

s211:向出口线卡发送信用点获取请求,以使出口线卡根据各个出口队列的拥塞情况确定分配给与各个出口队列对应的voq的信用点,并向入口线卡发送携带各个voq的信用点的信用点获取响应。

s212:接收出口线卡发送的信用点获取响应。

s213:获取信用点获取响应中携带的各个voq的信用点。

入口线卡可以定期向出口线卡发送信用点获取请求,出口线卡根据各个出口队列的拥塞情况为每个voq分配信用点,并通过信用点获取响应告知入口线卡。

具体的,上述s22中的确定出口线卡的各个出口队列是否拥塞,实现过程如图4所示,具体包括:

s221:向出口线卡发送拥塞监控请求,以使出口线卡监控各个出口队列的长度是否超过设定阈值,若监控到第一出口队列的长度超过设定阈值,则确定第一出口队列拥塞,向入口线卡发送携带第一出口队列的队列标识和拥塞标识的拥塞监控响应。

s222:接收出口线卡发送的拥塞监控响应。

s223:获取拥塞监控响应携带的第一出口队列的队列标识和拥塞标识。

s224:确定第一出口队列拥塞。

在确定出口线卡的各个出口队列是否拥塞时,也就是需要从出口线卡处获知,具体可以向出口线卡发送拥塞监控请求,出口线卡监控各个出口队列的长度是否超过设定阈值,若某个出口队列的长度超过设定阈值,则可以确定该出口队列拥塞,可以通知入口线卡。其中,设定阈值可以根据实际需要进行设定,队列标识也可以根据实际需要进行设定,例如,若出口线卡只有一个,且出口队列有不同的优先级,那么队列标识可以是队列优先级;若出口线卡有多个,且每个线卡的出口队列有不同的优先级,那么队列标识可以是出口线卡标识和队列优先级。

具体的,上述s23中的确定与第一出口队列对应的第一voq,实现过程如图5所示,具体包括:

s231:获取出口队列与voq的对应关系。

s232:在对应关系中查找第一出口队列的队列标识。

s233:将在对应关系中查找到的第一出口队列的队列标识对应的voq确定为第一出口队列对应的第一voq。

通常,出口队列与voq有一定的映射关系,该映射关系可以保存在出口队列与voq的对应关系中,那么,在确定第一出口队列对应的第一voq时,可以根据该对应关系来确定。

相应地,上述s25中的根据第一出口队列的调度策略和第一voq的信用点控制第一voq的各个下级队列的流量发送速率,实现过程如图6所示,具体包括:

s251:根据第一出口队列的调度策略将第一voq的信用点分配给第一voq的各个下级队列。

其中,第一出口队列的调度策略可以根据实际需要进行设定,例如,可以为等分信用点策略、设定各个下级队列的信用点占比策略等等。

s252:按照分配给第一voq的各个下级队列的信用点和对应下级队列的配置发送速率二者中的较小者发送对应下级队列中的报文。

有时用户会配置某个下级队列的发送速率,此时可以根据该下级队列的信用点和配置发送速率中的较小者发送该下级队列中的报文;若用户未配置某个下级队列的发送速率,可以根据该下级队列的信用点发送该下级队列的报文。

下面举例说明现有技术中的流量控制方法与本发明实施例中的流量控制方法达到的不同效果:

现有技术中,若用户配置了hqos,每个用户有不同优先级的流量,保证高优先级流量的优先处理,假设入口线卡中,voq1中为高优先级的流量,包括10个下级队列,占总流量的25%,voq2中为低优先级的流量,包括10个下级队列,占总流量的75%,voq1和voq2中的流量都会被转发到出口线卡中,voq1和voq2的流量为出口线卡带宽的2倍,这时会在出口线卡上发生拥塞,假设出口线卡有10gbps,则入口线卡有20gbps,voq1的流量为5gbps,voq2的流量为15gbps,由于voq1的优先级高,因此需要保证voq1的流量转发,那么,voq1和voq2各得到50%的发送带宽,也就是5gbps。对于voq2的流量来说,有50%流量会被随机丢弃,这就看会导致可能某个下级队列中的流量全部被丢弃,从而该下级队列对应的用户的服务得不到保证,对于该用户的服务有失公平性。

本发明实施例中,voq2的信用点可以被平均分给10个下级队列,也就是说每个下级队列都只能转发5%带宽的低优先级流量,超过该带宽的低优先级流量将被丢弃。从而使得每个下级队列的流量都能够得到公平调度,不至于出现一个下级队列的流量会抢占掉其它下级队列流量的问题。当然,这里仅仅是以各个下级队列均分信用点为例进行说明,还可以灵活设置调度策略,从而可以实现多样性的调度方式。

基于同一发明构思,本发明实施例提供一种流量控制装置,应用在网络设备的入口线卡中,该装置的结构如图7所示,包括:

获取模块71,用于获取入口线卡的每个voq的信用点;

第一确定模块72,用于确定出口线卡的各个出口队列是否拥塞;

第二确定模块73,用于若确定出口线卡的第一出口队列拥塞,则确定与第一出口队列对应的第一voq;

第三确定模块74,用于确定第一voq是否包括下级队列;

控制模块75,用于若第一voq包括下级队列,则根据第一出口队列的调度策略和第一voq的信用点控制第一voq的各个下级队列的流量发送速率。

该方案中,在确定第一出口队列拥塞后,可以根据第一出口队列的调度策略和与第一出口队列对应的第一voq的信用点来控制第一voq的各个下级队列的流量发送速率,不再随机丢弃报文,从而能够避免将某个用户的低优先级的流量全部丢弃,保证多级队列流量的公平性。

具体的,获取模块71,具体用于:

向出口线卡发送信用点获取请求,以使出口线卡根据各个出口队列的拥塞情况确定分配给与各个出口队列对应的voq的信用点,并向入口线卡发送携带各个voq的信用点的信用点获取响应;

接收出口线卡发送的信用点获取响应;

获取信用点获取响应中携带的各个voq的信用点。

具体的,第一确定模块72,具体用于:

向出口线卡发送拥塞监控请求,以使出口线卡监控各个出口队列的长度是否超过设定阈值,若监控到第一出口队列的长度超过设定阈值,则确定第一出口队列拥塞,向入口线卡发送携带第一出口队列的队列标识和拥塞标识的拥塞监控响应;

接收出口线卡发送的拥塞监控响应;

获取拥塞监控响应携带的第一出口队列的队列标识和拥塞标识;

确定第一出口队列拥塞。

具体的,第二确定模块73,具体用于:

获取出口队列与voq的对应关系;

在对应关系中查找第一出口队列的队列标识;

将在对应关系中查找到的第一出口队列的队列标识对应的voq确定为第一出口队列对应的第一voq。

具体的,控制模块75,具体用于:

根据第一出口队列的调度策略将第一voq的信用点分配给第一voq的各个下级队列;

按照分配给第一voq的各个下级队列的信用点和对应下级队列的配置发送速率二者中的较小者发送对应下级队列中的报文。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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