一种单组播流量调度管理的方法及装置与流程

文档序号:12376433阅读:150来源:国知局
一种单组播流量调度管理的方法及装置与流程

本发明涉及通信领域,尤其涉及一种单组播流量调度管理的方法及装置。



背景技术:

本申请发明人在实现本申请实施例技术方案的过程中,至少发现相关技术中存在如下技术问题:

持续增长的因特网业务,让数据通信领域对数据产品的服务质量(QoS)性能的要求越来越高。对于流量管理芯片来说,在拥塞情况下不仅要保证流量的正确性,还要保证单组播流量之间比例的准确性。

在流量管理芯片的实际应用中,单播一般是下行控制,受下行处理能力的影响,常采用一种“拉”的机制来控制单播流量;而组播一般是上行控制,受交换网和下行的影响,采用一种“推”的机制来控制组播流量,其中,这里下行为报文流量的接收方,上行为报文流量的发送方。在单组播发升拥塞流量的情况下,单播下行会将令牌信息给上行,从而来控制上行的单播的出队,在这过程中,令牌传递经过交换网需要时间,因此不能及时性传递给上行,这样会造成单播流量不均衡的到达下行;而组播是采用“推”的机制控制下行组播流量的出队,在不知下行处理能力的情况下让报文出队会引起下行的拥塞,下行感知到拥塞后,若经过交换网反馈给上行后,是不及时的。在这种情况下,单组播的拥塞会相互影响,在进行按比例调度时,会造成比例的不准确性。

在单组播拥塞情况下,不仅要保证输出能力的正确性,还要保证单组播之间比例的准确性。为了满足此需求,最常用的方法是对于单组播进行优先级和权重分配的输出,这样从一定角度来看能保证优先级也能保证一定的比例,但这种方法在组播流量超过出口的处理能力,且单播流量不稳定的情况下,很难 保证单组播之间的流量和比例。存在此问题的原因是单组播之间的流量缺乏统一的控制。

基于以上分析,如何在拥塞情况下保证Qos的正确性,在现有技术中缺乏相应的解决机制。



技术实现要素:

有鉴于此,本发明实施例希望提供一种单组播流量调度管理的方法及装置,至少解决了现有技术存在的问题,能够在拥塞情况下保证Qos的正确性。

本发明实施例的技术方案是这样实现的:

本发明实施例提供一种单组播流量调度管理的方法,所述方法包括:

接收到报文后,根据所述报文的报文头中携带的报文类型对所述报文进行分队列缓存;其中,所述报文类型包括单播报文和组播报文;将缓存的组播报文经过组播调度处理后生成调度组播报文;将所述调度组播报文与缓存的单播报文按照优先级和预设的权重分配进行出列调度。

进一步地,根据缓存的单播报文的数量和组播报文的数量为所述单播报文和所述组播报文分配令牌;采用为所述组播报文分配的令牌对所述缓存的组播报文进行所述组播调度处理生成调度组播报文。

进一步地,所述根据缓存的单播报文的数量和组播报文的数量为所述单播报文和所述组播报文分配令牌包括:统计缓存的单播报文的数量和组播报文的数量;将所述单播报文的数量和所述组播报文的数量的总和与预设的反压门限进行比较,根据所述比较结果确定反压指示;根据所述反压指示调整令牌的下发周期,并根据调整后得到的下发周期下发令牌;按照预设的权重分配比例将下发的所述令牌分配给所述单播报文和所述组播报文。

进一步地,根据所述反压指示调整令牌的下发周期包括:当所述根据所述反压指示表示所述单播报文的数量和所述组播报文的数量的总大于所述预设的反压门限时,统计出列的单播报文和组播报文的令牌的数目;根据所述出列的单播报文和组播报文的令牌的数目调整令牌的下发周期。

进一步地,采用为所述组播报文分配的令牌对所述缓存的组播报文进行组播调度处理生成调度组播报文包括:将分配给高优先级的组播报文的令牌的盈余数量与令牌盈余反压门限进行比较,根据比较结果为组播高优先级报文和低优先级组播报文分配令牌;具有令牌的组播报文为调度组播报文。

进一步地,采用为所述组播报文分配的令牌对所述缓存的组播报文进行组播调度处理生成调度组播报文还包括:将高/低优先级队列的令牌的盈余数量和对应优先级队列的第一个报文的长度进行比较,当高/低优先级队列的令牌的盈余数量大于等于对应优先级队列的第一个报文的长度,则所述第一个报文完成组播调度成为调度高/低优先级组播报文。

进一步地,所述调度组播报文与缓存的单播报文按照优先级和预设的权重分配进行出列调度包括:对于高优先级单播报文和低优先级单播报文,先调度高优先级单播报文出列,再调度低优先级单播报文出列;对于高优先级调度组播报文和低优先级调度组播报文,先调度高优先级调度组播报文出列,再调度低优先级调度组播报文出列;对于同一优先级的单播报文和调度组播报文,根据预设的权重分配进行调度,之后按照先调度高优先级再调度低优先级进行出列。

本发明实施例还提供一种单组播流量调度管理的装置,所述装置包括:缓存模块、组播调度模块、出列模块,其中,所述缓存模块,用于接收到报文后,根据所述报文的报文头中携带的报文类型对所述报文进行分队列缓存;其中,所述报文类型包括单播报文和组播报文;所述组播调度模块,用于将缓存的组播报文经过组播调度处理后生成调度组播报文;所述出列模块,将所述调度组播报文与缓存的单播报文按照优先级和预设的权重分配进行出列调度。

进一步地,所述装置还包括:令牌分发模块,用于根据缓存的单播报文的数量和组播报文的数量为所述单播报文和所述组播报文分配令牌;相应的,所述组播调度模块,用于采用为所述组播报文分配的令牌对所述缓存的组播报文进行所述组播调度处理生成调度组播报文。

进一步地,所述令牌分发模块具体用于,统计缓存的单播报文的数量和组 播报文的数量;将所述单播报文的数量和所述组播报文的数量的总和与预设的反压门限进行比较,根据所述比较结果确定反压指示;根据所述反压指示调整令牌的下发周期,并根据调整后得到的下发周期下发令牌;按照预设的权重分配比例将下发的所述令牌分配给所述单播报文和所述组播报文。

进一步地,所述令牌分发模块具体还用于:当所述根据所述反压指示表示所述单播报文的数量和所述组播报文的数量的总大于所述预设的反压门限时,统计出列的单播报文和组播报文的令牌的数目;根据所述出列的单播报文和组播报文的令牌的数目调整令牌的下发周期。

进一步地,所述组播调度模块具体用于,将分配给高优先级的组播报文的令牌的盈余数量与令牌盈余反压门限进行比较,根据比较结果为组播高优先级报文和低优先级组播报文分配令牌;具有令牌的组播报文为调度组播报文。

进一步地,所述组播调度模块还用于,将高/低优先级队列的令牌的数量和对应优先级队列的第一个报文的长度进行比较,当高/低优先级队列的令牌的数量大于等于对应优先级队列的第一个报文的长度,则所述第一个报文完成组播调度成为调度高/低优先级组播报文。

进一步地,所述出列模块具体用于,对于高优先级单播报文和低优先级单播报文,先调度高优先级单播报文出列,再调度低优先级单播报文出列;对于高优先级调度组播报文和低优先级调度组播报文,先调度高优先级调度组播报文出列,再调度低优先级调度组播报文出列;对于同一优先级的单播报文和调度组播报文,根据预设的权重分配进行调度,之后按照先调度高优先级再调度低优先级进行出列。

本发明实施例的一种单组播流量调度管理的方法,接收到报文后,根据所述报文的报文头中携带的报文类型对所述报文进行分队列缓存;其中,所述报文类型包括单播报文和组播报文;将缓存的组播报文经过组播调度处理后生成调度组播报文;将所述调度组播报文与缓存的单播报文按照优先级和预设的权重分配进行出列调度。采用本发明实施例,至少解决了现有技术存在的问题,能够在组播业务日益增加的情况下,保证组播和单播相互不影响,保证单组播 流量在不同的拥塞场景下智能的实现流量全局控制,按比例分配,从而在拥塞情况下保证Qos的正确性。

附图说明

图1为本发明实施例一提供的单组播流量调度管理的方法的流程示意图;

图2为本发明实施例二提供的数据处理流程示意图;

图3为本发明实施例三提供的分发令牌的流程示意图;

图4为本发明实施例四提供的组播调度的流程示意图;

图5为本发明实施例五提供的单组播流量调度管理的装置的结构示意图;

图6为本发明实施例六提供的单组播流量进行调度管理的系统示意图。

具体实施方式

下面结合附图对技术方案的实施作进一步的详细描述。

实施例一

本发明实施例一提供一种单组播调度的方法,如图1所示,该方法包括:

S101:接收到报文后,根据所述报文的报文头中携带的报文类型对所述报文进行分队列缓存;其中,所述报文类型包括单播报文和组播报文;

具体的,下行(数据接收方)通过交换网接收到上行(数据发送方)发送的报文数据后,先判断报文的报文头中携带的表示报文类型的标记,这里,报文头中携带的报文类型包括单播报文和组播报文,并根据报文的报文类型将报文进行分队列缓存,将单播报文保存在单播队列中,将组播报文保存在组播队列中。

这里,在将单播报文保存在单播队列中时,可根据单播报文之间的优先级将单播报文进行优先级缓存,即将高优先级单播报文缓存在单播高优先级队列中,将低优先级单播报文缓存在单播低优先级队列中,使单播报文根据优先级进入相应的单播优先级队列。

对于组播报文,可根据组播报文之间的优先级将组播报文进行优先级缓存, 即将组播高优先级报文缓存在组播高优先级队列中,将低优先级组播报文缓存在组播低优先级队列中,使组播报文根据优先级进入相应的组播优先级队列。

S102:将缓存的组播报文经过组播调度处理后生成调度组播报文;

在接收到报文后,根据缓存的单播报文的数量和组播报文的数量为单播报文和组播报文分配令牌;采用为组播报文分配的令牌对缓存的组播报文进行组播调度处理生成调度组播报文。

根据缓存的单播报文的数量和组播报文的数量为单播报文和组播报文分配令牌具体包括:统计缓存的单播报文的数量和组播报文的数量;将单播报文的数量和组播报文的数量的总和与预设的反压门限进行比较,根据比较结果确定反压指示;根据反压指示调整令牌的下发周期,并根据调整后的下发周期下发令牌;按照预设的权重分配比例将下发的令牌分配给单播报文和所述组播报文。这里,可周期性的将单播报文的数量和组播报文的数量的总和与预设的反压门限进行比较,当报文入队和出队时,单播报文的数量和组播报文的数量的总和发生变化,则更新一次单播报文的数量和组播报文的数量的总和,将该总和与预设的反压门限比较一次。

这里,根据所述反压指示调整令牌的下发周期包括:当所述根据所述反压指示表示所述单播报文的数量和所述组播报文的数量的总大于所述预设的反压门限时,统计出列的单播报文和组播报文的令牌的数目;根据所述出列的单播报文和组播报文的令牌的数目调整令牌的下发周期。为单播报文和组播报文分配令牌时,可根据缓存的单播报文的数量和组播报文的数量以及出列调度处的报文出队情况分配令牌,具体的,单播报文的数量和所述组播报文的数量的总大于所述预设的反压门限(反压指示可为1),即根据单播报文的数量和组播报文的数量的总和确定反压指示为1时,根据出队反馈的令牌信息调整周期,即:出列模块反馈一个令牌信息过来,就下发一次令牌。令牌分发模块反馈令牌信息的流程:出列调度将出队的报文长度与令牌大小进行比较,当出队的报文长度的大小不足一个令牌的大小时,就将该报文长度记录下来等后续报文来到够一个令牌后再进行反馈,具体反馈是:当大于等于1个令牌数目的时候,将每 个令牌按照系统周期(系统频率)的间隔传递给令牌分发模块。

在实际使用中,单播报文的数量和所述组播报文的数量的总小于等于所述预设的反压门限(反压指示可为0),即根据单播报文的数量和组播报文的数量的总和确定反压指示为0时,采用下发周期为传统的下发周期。当反压指示为1,调整的下发周期也可根据处理芯片的处理能力预先设置,这里预先设置的下发周期同反压指示为0时下发周期不同。

根据所述反压指示和出队调度反馈的令牌大小一起配合调整令牌的下发周期,根据调整后的下发周期结合预设的权重分配比例将下发的令牌分配给单播报文和组播报文。

在实际应用中,每个周期下发的令牌的数量和单播报文和组播报文的数量有关系,当令牌总数量查过一定的报文数量后,就不再下发令牌,对于是否下发的令牌的状态变化过程,为现有技术,本方案对此不在赘述。

这里,将组播调度之前的组播报文保存在组播前级队列中,将组播调度之后的调度组播报文保存在组播后级队列中,组播前级队列中的报文只有经过调度组播后才能进入组播后级队列中。这里,组播高优先级报文缓存在组播高优先级前级队列中,低优先级组播报文缓存在组播低优先级前级队列中,高优先级调度组播报文缓存在组播高优先级后级队列中,低优先级调度组播报文缓存在组播低优先级后级队列中。其中,在统计缓存的单播报文的数量和组播报文的数量时,对于组播报文,统计组播调度前的组播报文的数量,即统计单播高优先级队列、单播低优先级队列、组播高优先级前级队列和组播低优先级前级队列中的报文。

采用为组播报文分配的令牌对缓存的组播报文进行组播调度处理生成调度组播报文包括:将分配给高优先级的组播报文的令牌的盈余数量与令牌盈余反压门限进行比较,根据比较结果为组播高优先级报文和低优先级组播报文分配令牌;具有令牌的组播报文为调度组播报文。若组播高优先级前级队列中有报文且有令牌,则将组播高优先级报文放入组播高优先级后级队列,否则继续暂存于组播高优先级前级队列;若组播低优先级前级队列有报文且有令牌,则将 报文放入组播低优先级后级队列,否则继续暂存于组播低优先级前级队列中。其中,前级队列中有报文则表示存在能够出队的报文,但该报文能不能从前级队列出队受令牌的控制,因此,通过对组播前级队列中是否有报文与有令牌(令牌的盈余数量)的判定达到限速的目的,以限制报文通过后给组播后级队列造成拥堵,影响Qos效果,即单组播权重比例的不正确性。

采用为组播报文分配的令牌对缓存的组播报文进行组播调度处理生成调度组播报文还包括:将高/低优先级队列的令牌的盈余数量和对应优先级队列的第一个报文的长度进行比较,当高/低优先级队列的令牌的盈余数量大于等于对应优先级队列的第一个报文的长度,则所述第一个报文完成组播调度成为调度高/低优先级组播报文。这里,当高优先级队列的令牌的盈余数量增加时,针对高优先级队列的令牌的进行比较,当低优先级队列的令牌的盈余数量增加时,针对低优先级队列的令牌的进行比较。

这里,令牌的盈余数量是当前的令牌数量,即下发令牌的令牌盈余数量增加,当组播根据令牌调度出队的时候,令牌盈余数量减。

S103:将调度组播报文与缓存的单播报文按照优先级和预设的权重分配进行出列调度。

具体的,对于高优先级单播报文和低优先级单播报文,先调度高优先级单播报文出列,再调度低优先级单播报文出列;对于高优先级调度组播报文和低优先级调度组播报文,先调度高优先级调度组播报文出列,再调度低优先级调度组播报文出列;对于同一优先级的单播报文和调度组播报文,根据预设的权重分配进行调度,之后按照先调度高优先级再调度低优先级进行出列。若单播高优先级队列和单播低优先级队列都不空的话,先调度单播高优先级队列的报文,再单播低优先级队列的报文;若组播高优先级后级队列和组播低优先级后级队列都不空的话,先调度组播高优先级后级队列的报文,再调度组播低优先级后级队列的报文。若单播和组播调度出来的结果都是高优先级或都是低优先级的报文,则同一个优先级按照配置的权重分配比例再进行调度;若单组播调度的结果是不同优先级,一个高优先级一个低优先级,则继续按照高优先级优 先调度的原则进行出队。同时将出队的报文长度以令牌大小为单位计算出令牌数目,不足一个等下一个报文出队再一起计算,将令牌数目反馈给令牌分发模块。

本发明实施例一提供单组播流量调度管理的方法是一种对单组播流量统一管理的方法,能有效的在网络拥塞的情况下,实现单组播流量比例的正确性。在实施例一的单组播流量调度管理的方法可描述为数据处理流程和令牌发放流程。通过统计队列缓存的深度形成反压信息以及出队调度报文长度情况得到令牌反馈信息,将两者反馈给令牌分配模块一起控制令牌的下发,来实现单组播流量的统一管理。

实施例二

如图2所示,实施例二提供了一种单组播流量调度管理中数据处理方法,包括:

S201:配设预设参数;

这里,配置的参数包括:反压门限、权重分配比例、令牌盈余反压门限,其中反压门限可根据调度报文路径上的时延情况进行设置,从而要保证报文不出空;令牌下发时对于单播和组播报文的分配比例和出队时的权重分配比例保持一致;只需要设置单播报文的数量和组播报文的数量的总和小于预设的反压门限(反压指示可为0,表示反压无效)时的令牌下发周期,单播报文的数量和组播报文的数量的总和大于等于预设的反压门限(反压指示可为1,表示反压有效)时的令牌下发周期。

这里,可默认初始的令牌下发周期为反压指示为0时的下发周期。

S202:进行报文类型的判断;若是单播进入步骤S203,若是组播进入步骤S204。

S203:根据报文优先级进入单播相应的单播优先级队列;

判断单播报文的优先级;若是低优先级,进入单播低优先级队列;若是高优先级,进入单播高优先级队列。

S204:根据报文优先级进入组播相应的组播优先级队列;

判断组播报文的优先级,若是低优先级,进入组播低优先级前级队列;若是高优先级进入组播高优先级前级队列,进入步骤205。

S205:组播调度处理;

对组播高低优先级前级队列中的组播报文进行组播调度生成调度组播报文,具体组播调度处理过程见图4的流程图。

S206:进入相应的组播优先级后级队列;

将调度出来的调度组播报文放入组播后级队列。这里,组播高优先级前级队列中的组播高优先级报文调度后进入组播高优先级后级队列,组播低优先级前级队列中的组播高优先级报文调度后进入组播低优先级后级队列。

S207:根据优先级和权重对报文进行调度出列;

根据优先级和权重分配比例对单播高低优先级队列和组播高低优先级后级队列进行调度,将调度出来的报文出列,权重分配比例在S201配置。

实施例三

如图3所示,实施例三提供的单组播流量调度管理中的令牌发送方法,包括:

S301:统计缓存的单播报文的数量和组播报文的数量;

获得单播报文的数量和组播报文的数量之和,即统计出单播高低优先级队列和组播高低优先级前级队列的总深度。

S302:将S301统计的总深度与S201配置的反压门限进行比较;

若S301统计的总深度低于反压门限则进入步骤S303,否则进入步骤S304

S303:将反压指示标记为0;

0代表无效,反压指示标记为0表示单播报文的数量和组播报文的数量的总和小于等于预设的反压门限。

S304:将反压指示标记为1;

1代表有效,反压指示标记为1表示单播报文的数量和组播报文的数量的总和大于预设的反压门限。

其中,反压指示为1时的下发周期可在S201中预先设置,也可根据S207 的报文的出列情况进行调整。

S305:按照默认的的下发周期下发令牌;

S306:根据反压指示调整令牌的下发周期;

依据S303或S304的结果调整令牌的下发周期,这里,当反压指示为0时,根据原来的下发周期下发令牌,当反压指示为1时,下发周期发生变化,根据反压指示为1时的调整周期下发令牌。

当然,在调整下发周期时,调整之前的下发周期为反压指示为1时的下发周期,则当此时反压指示为0时,下发周期发生变化;当反压指示为1时,下发周期不发生变化。

S307:将下发的令牌根据S201配置的权重分配比例为单组播报文分配令牌。

S308:对于单播报文,将分配给单播报文的单播令牌发送给上行使用。

S309:对于组播报文,将分配给组播报文的组播令牌发分给组播调度处使用。

在实际使用中,在S304确定反压指示为1时,在S306的下发令牌的过程中,根据S207的报文的出列情况进行调整具体为:根据调度出列的报文的令牌的数量进行反馈,根据反馈的令牌的数量调整下发周期。其中,将调度出去的报文长度以令牌大小为单位计算令牌的数目(不足一个令牌大小,等下一个报文出队后再参与计算),当出队的报文长度的大小不足一个令牌的大小时,就将该报文长度记录下来等后续报文来到够一个令牌后再进行反馈,具体反馈是:当大于等于1个令牌数目的时候,将每个令牌按照系统周期(系统频率)的间隔传递给令牌分发模块。

实施例四

图4为组播调度处理过程,具体包括:

S401:将组播高优先级的令牌的盈余数量与令牌盈余反压门限进行比较;

将组播高优先级的令牌的盈余数量与步骤S201配置的令牌盈余反压门限进行比较,若组播高优先级的令牌的盈余数量大于令牌盈余反压门限则进入 S402,否则进入S403。

S402:增加组播低优先级报文的令牌;

将分发的令牌分配给组播低优先级报文,相应的低优先级令牌的盈余数量增加,进入S404;

S403:增加组播高优先级报文的令牌;

将令牌分给组播高优先级报文,相应的高优先级的令牌的盈余数量增加,进入S407;

S404:将低优先级报文的令牌的盈余数目和低优先级前级队列中的第一个报文的长度进行比较;若低优先级的令牌的盈余数量大于等于第一个报文长度,则进入S406,否则进入S405,其中,这里将低优先级报文的令牌称为低优先级的令牌。

S405:该报文不能从组播低优先级前级队列出队,继续留在组播低优先级前级队列;

S406:该报文从组播低优先级前级队列出队,进入组播低优先级后级队列,同时相应的低优先级令牌的盈余数量减少。

S407:将高优先级报文的令牌的盈余数目和高优先级前级队列中的第一个报文的长度进行比较,若高优先级的令牌数目大于等于第一个报文长度,则进入S409,否则进入S408;其中,这里将高优先级报文的令牌称为高优先级的令牌。

S408:该报文继续留在组播高优先级前级队列,不能从组播高优先级前级队列出;

S409:该报文从组播高优先级前级队列出队,报文进入组播高优先级后级队列,同时相应的高优先级令牌的盈余数量减少。

实施例五

为实现上述一种单组播流量调度管理的方法,本发明实施例还提供一种一种单组播流量调度管理的装置,如图5所示,包括:缓存模块501、组播调度模块502、出列模块503,其中,

缓存模块501,用于接收到报文后,根据所述报文的报文头中携带的报文类型对报文进行分队列缓存;其中,报文类型包括单播报文和组播报文;

组播调度模块502,用于将缓存的组播报文经过组播调度处理后生成调度组播报文;

出列模块503:将调度组播报文与缓存的单播报文按照优先级和预设的权重分配进行出列调度。

出列模块503具体用于:对于高优先级单播报文和低优先级单播报文,先调度高优先级单播报文出列,再调度低优先级单播报文出列;对于高优先级调度组播报文和低优先级调度组播报文,先调度高优先级调度组播报文出列,再调度低优先级调度组播报文出列;对于同一优先级的单播报文和调度组播报文,根据预设的权重分配进行调度,之后按照先调度高优先级再调度低优先级进行出列。

该装置还包括令牌分发模块504,用于根据缓存的单播报文的数量和组播报文的数量为所述单播报文和所述组播报文分配令牌。

令牌分发模块504具体用于:统计缓存的单播报文的数量和组播报文的数量;将所述单播报文的数量和所述组播报文的数量的总和与预设的反压门限进行比较,根据所述比较结果确定反压指示;根据所述反压指示调整令牌的下发周期,并根据调整后得到的下发周期下发令牌;按照预设的权重分配比例将下发的令牌分配给所述单播报文和所述组播报文。

令牌分发模块504具体还用于:当所述根据所述反压指示表示所述单播报文的数量和所述组播报文的数量的总大于所述预设的反压门限时,统计出列的单播报文和组播报文的令牌的数目;根据所述出列的单播报文和组播报文的令牌的数目调整令牌的下发周期。

组播调度模块502,用于采用为所述组播报文分配的令牌对所述缓存的组播报文进行组播调度处理生成调度组播报文。

组播调度模块502具体用于:将分配给高优先级的组播报文的令牌的盈余数量与令牌盈余反压门限进行比较,根据比较结果为组播高优先级报文和低优 先级组播报文分配令牌;具有令牌的组播报文为调度组播报文。

组播调度模块502还用于:将高/低优先级队列的令牌的盈余数量和对应优先级队列的第一个报文的长度进行比较,当高/低优先级队列的令牌的盈余数量大于等于对应优先级队列的第一个报文的长度,则所述第一个报文完成组播调度成为调度高/低优先级组播报文。

实施例六

如图6所示,为本发明实施例提供的单组播流量进行调度管理的系统示意图,在该系统中,包括上行(数据发送方)和下行(数据接收方),下行和上行之间通过通信网络进行数据交互,

如图6所示,下行包括缓存模块501、组播调度模块502、出队模块503、令牌分发模块504,这里,缓存模块501包括:判断单元5011、缓存单元5012,其中,缓存单元5012中包括四个队列,分别为缓存单播高优先级报文的单播高优先级队列,缓存单播低优先级报文的单播低优先级队列,缓存组播高优先级报文的组播高优先级前级队列,缓存组播低优先级报文的组播低优先级前级队列;单播高优先级队列和单播低优先级队列组成单播区域(单播队列)完成接收的单播报文的缓存,组播高优先级前级队列和组播低优先级前级队列组成组播区域(组播前级队列)完成接收的组播报文的缓存。

组播调度模块502包括:调度单元5021、组播缓存单元5022,其中,组播缓存单元5022包括两个队列:缓存调度组播高优先级报文的组播高优先级后级队列,缓存调度组播低优先级报文的组播低优先级后级队列;组播高优先级后级队列和组播低优先级后级队列组成组播后级队列完成调度组播报文的缓存。

在图6所示的系统中,当接收到从上行经过交换网到达下行的报文后,下行先通过判断模块5011判断接收到的报文的类型,并缓存在缓存单元5012,若是单播报文,缓存在单播报文区域,其中,在进行缓存时,根据优先级进入相应的单播优先级队列;若是组播报文,缓存在单播报文区域,其中,在进行缓存时,根据优先级进入相应的组播优先级前级队列。

缓存在组播区域的组播报文经过组播调度单元5021的一级的组播调度处 理后才能进入组播缓存区域5022中的组播后级队列。即,若组播高优先级前级队列中有报文且有令牌,则将高优先级组播报文放入组播高优先级后级队列,否则继续暂存于组播高优先级前级队列;若组播低优先级前级队列有报文且有令牌,则将报文放入组播低优先级后级队列,否则继续暂存于组播低优先级前级队列中。

在出列模块503中对单组播队列之间进行优先级和权重分配比例的调度,若单播高优先级队列和单播低优先级队列都不空的话,先调度单播高优先级队列的报文,再单播低优先级队列的报文;若组播高优先级后级队列和组播低优先级后级队列都不空的话,先调度组播高优先级后级队列的报文,再调度组播低优先级后级队列的报文。若单播和组播调度出来的结果都是高优先级或都是低优先级的报文,则同一个优先级按照步预先配置的权重分配比例再进行调度;若单组播调度的结果是不同优先级,一个高优先级一个低优先级,则继续按照高优先级优先调度的原则进行出队。

缓存模块501统计了单播高优先级队列、单播低优先级队列、组播高优先级前级队列和组播低优先级前级队列中缓存堆积的总报文数目,也就是接收的单播报文的数量和组播报文的数量的总和的值,将该值与预先设置的反压门限进行比较,若该值小于反压门限,则反压指示标记为0;若该值大于等于反压门限,则反压指示标记为1。将反压指示发送给令牌分发模块504。

令牌分发模块504,先按照配置的下发周期(可默认为反压指示为0时的下发周期)下发令牌,若收到反压指示为1,则根据预先配置的下发周期来调整令牌下发周期,若收到反压指示为0,则不调整令牌下发周期;在根据调整后得到的下发周期下发令牌之后,将下发的令牌按照配置的权重分配比例为单组播分配令牌。令牌分发模块504将分发给单播报文的令牌反馈给上行,用于控制上行的单播出队;将分发给组播的报文令牌给缓存模块501,用于组播调度模块502通过缓存模块501中的令牌数量控制组播报文的组播调度。

需要说明的是,当反压指示为1时,可根据出列的单播报文和组播报文的令牌的数目调整令牌的下发周期,出列的单播报文和组播报文的令牌的数目由 出列模块503反馈给令牌分发模块504。

当出列模块503中的单组播报文出列时,出列模块503统计了出列报文的令牌反馈信息,即将调度出去的报文的报文长度以令牌大小为单位计算令牌的数目,当出队的报文长度的大小不足一个令牌的大小时,就将该报文长度记录下来等后续报文来到够一个令牌后再进行反馈,具体反馈是:当大于等于1个令牌数目的时候,将每个令牌按照系统周期(系统频率)的间隔传递给令牌分发模块504。令牌分发模块504在调整下发周期时,在反压指示为1时,若接收到出列模块503反馈的令牌信息就下发一个令牌,即以出列模块503反馈的令牌信息间隔作为分发模块504的下发周期。

在实际使用中,当反压指示为1时,令牌的下发周期可为根据芯片的处理能力预先设置的下发周期。

需要说明的是,在本发明实施例中,报文进入下行后,若是单播报文,则根据优先级直接放入相应的队列中;若是组播报文,则要经过一级的令牌过滤后才能参与和单播之间的调度。

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

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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