队列调度方法和装置与流程

文档序号:13177516阅读:180来源:国知局
技术领域本发明涉及互联网技术领域,特别是一种队列调度方法和装置。

背景技术:
随着公有IPv4地址分配完毕,网络和业务向以IPv6为基础的下一代互联网演进成为必然趋势,IPv4和IPv6将长期共存。在双栈环境下,通过加权轮询队列对IPv4和IPv6报文进行差异化调度时,现有网络设备根据数据包的优先级进行分类,同一优先级IPv4和IPv6数据报文再分成两类,进入不同的调度队列,通过设置调度队列的权值,按照预设的队列权值依次对IPv4报文和IPv6报文进行调度,实现双栈的差异化调度。加权轮询队列调度技术为同一优先级的IPv4和IPv6数据报文设置固定的队列权值。当某一优先级同时存在IPv4报文和IPv6报文进入队列时,这一优先级的业务可以获得预先设定的IPv4和IPv6队列权值之和对应的带宽。当某一优先级的数据报文只有IPv4或只有IPv6报文进入队列的情况下,这一优先级的数据报文只能获得IPv4或IPv6队列权值对应的带宽,不能获得预期分配给这一优先级业务的带宽。

技术实现要素:
本发明的一个目的在解决队列调度中同一优先级的IPv4和IPv6队列权值固定的问题。根据本发明的一个方面,提出一种队列调度方法,包括:将数据包根据优先级和IP协议版本分别分配到对应优先级的IPv4队列和IPv6队列;根据IPv4队列和IPv6队列的报文速率,动态调整IPv4队列和IPv6队列的权值,同一优先级的IPv4队列和IPv6队列共享对应优先级的总权值。进一步地,同一优先级的IPv4队列和IPv6队列共享对应优先级的总权值,包括:为IPv4队列分配第一预定权值,为IPv6队列分配第二预定权值,其中,第一预定权值和第二预权值之和为对应优先级的总权值。进一步地,当IPv4队列/IPv6队列的报文速率低于预定下限速率时,减小IPv4队列或IPv6队列的权值;或,当IPv4队列/IPv6队列的报文速率高于预定上限速率时,增大IPv4队列/IPv6队列的权值。进一步地,当IPv4队列/IPv6队列的报文速率低于预定下限速率时,IPv4队列/IPv6队列的权值正比于IPv4队列/IPv6队列的报文速率与预定下限速率的比值;或,当IPv4队列/IPv6队列的速率高于预定上限速率时,IPv4队列/IPv6队列的权值,正比于IPv4队列/IPv6队列的报文速率与预定上限速率的比值;或,IPv4队列/IPv6队列的权值,与IPv4队列/IPv6队列的报文速率在对应优先级中占的比例正相关。通过这样的方法,同一优先级的IPv4和IPv6队列共享对应优先级的总权值,并根据IPv4和IPv6队列的报文速率动态调整两队列的权值,实现对IPv4报文和IPv6报文灵活的差异化调度,从而能够提高差异化服务能力。根据本发明的另一个方面,提出一种队列调度装置,包括:队列创建模块,用于将数据包根据优先级和IP协议版本分别分配到对应优先级的IPv4队列和IPv6队列;权值调整模块,用于根据IPv4队列和IPv6队列的报文速率,动态调整IPv4队列和IPv6队列的权重,同一优先级的IPv4队列和IPv6队列共享对应优先级的总权值。进一步地,还包括:权值分配模块,用于为IPv4队列分配第一预定权值,为IPv6队列分配第二预定权值,其中,第一预定权值和第二预权值之和为对应优先级的总权值。进一步地,权值调整模块用于当IPv4队列/IPv6队列的报文速率低于预定下限速率时,减小IPv4队列/IPv6队列的权值;或,用于当IPv4队列/IPv6队列的报文速率高于预定上限速率时,增大IPv4队列/IPv6队列的权值。进一步地,当IPv4队列/IPv6队列的报文速率低于预定下限速率时,IPv4队列/IPv6队列的权值正比于IPv4队列/IPv6队列的报文速率与预定下限速率的比值;或,当IPv4队列/IPv6队列的速率高于预定上限速率时,IPv4队列/IPv6队列的权值,正比于IPv4队列/IPv6队列的报文速率与预定上限速率的比值;或,IPv4队列/IPv6队列的权值,与IPv4队列/IPv6队列的报文速率在对应优先级中占的比例正相关。通过这样的装置,同一优先级的IPv4和IPv6队列共享对应优先级的总权值,并根据IPv4和IPv6队列的报文速率动态调整两队列的权值,实现对IPv4报文和IPv6报文灵活的差异化调度,从而能够提高差异化服务能力。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为本发明的报文调度方法的一个实施例的流程图。图2为本发明的报文调度方法的另一个实施例的流程图。图3为本发明的报文调度装置的一个实施例的示意图。图4为本发明的报文调度装置的另一个实施例的示意图。具体实施方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。本发明的队列调度方法的一个实施例的流程图如图1所示。在步骤101中,将数据包根据优先级和IP协议版本分别分配到对应优先级的IPv4队列和IPv6队列,每个优先级均可以包含一个IPv4队列和一个IPv6队列。如,检查数据包的IP协议版本号,将每一优先级的数据包分成两队列,优先级1的IPv4数据包为队列1,优先级1的IPv6数据包为队列2;依此类推,优先级n的IPv4数据包为队列2n-1,优先级n的IPv6数据包为队列2n。在步骤102中,随着IPv4队列和IPv6队列的报文速率的变化,动态调整IPv4队列和IPv6队列的权值,同一优先级的IPv4队列和IPv6队列为关联队列,权值关联调整,并共享对应优先级的总权值。不同优先级的队列根据权值分配总的带宽资源,同一优先级的IPv4队列和IPv6队列分别按照其权值分配对应优先级的带宽。通过这样的方法,同一优先级的IPv4和IPv6队列共享对应优先级的总权值,并根据IPv4和IPv6队列的报文速率动态调整两队列的权值,实现对IPv4报文和IPv6报文灵活的差异化调度,从而能够提高差异化服务能力。本发明的报文调度方法的另一个实施例的流程图如图2所示。在步骤201中,将数据包根据优先级和IP协议版本分别分配到对应优先级的IPv4队列和IPv6队列,每个优先级均可以包含一个IPv4队列和一个IPv6队列。在步骤202中,为每个优先级的IPv4队列和IPv6队列分配初始权值。为IPv4队列分配第一预定权值,为IPv6队列分配第二预定权值。第一预定权值与第二预定权值之和为对应优先级的总权值。在步骤203中,随着IPv4队列和IPv6队列的报文速率的变化,动态调整IPv4队列和IPv6队列的权值,并保持IPv4队列和IPv6队列权值之和为对应优先级的总权值。通过这样的方法,为IPv4队列和IPv6队列分配初始权值,为根据队列的报文速率动态调整队列权值提供了基准值。在一个实施例中,可以在IPv4队列或IPv6队列的报文速率低于预定下限速率时,对IPv4队列和IPv6队列的权值进行调整。具体包括,降低报文速率低于预定下限速率的队列权值,并提高同一优先级的另一队列的权值,使二者之和为对应优先级的总权值。或者,可以在IPv4队列或IPv6队列的报文速率高于预定上限速率时,对IPv4队列和IPv6队列的权值进行调整。具体包括,提高报文速率高于预定上限速率的队列权值,并降低同一优先级的另一队列的权值,使二者之和为对应优先级的总权值。通过这样的方法,当IPv4队列或IPv6队列的报文速率在预定范围内变化时,不对队列权值做调整;当报文速率的变化范围超出预定时,调整队列权值,从而在动态调整权值的同时,减少了对队列权值的频繁调整,减少系统资源的消耗。在一个实施例中,以优先级为i的队列为例。优先级i的IPv4和IPv6报文分别进入队列2i-1和队列2i,权值分别是W2i-1和W2i,队列报文速率分别为V2i-1和V2i,优先级i的总权值设为固定值IWi,IWi=W2i-1+W2i=a+b,a和b分别为队列2i-1和队列2i预设置的权值。队列权值可以按照以下算法进行调整:a)当V2i-1=0,V2i=0时,W2i-1=a,W2i=b;b)当V2i-1=0,V2i≠0时,W2i-1=0,W2i=a+b;c)当V2i-1≠0,V2i=0时,W2i-1=a+b,W2i=0;d)若V2i-1≠0,V2i≠0,当V2i-1>Vmin时,W2i-1=a,W2i-1=b;当V2i-1<=Vmin时,W2i-1=a*V2i-1/VminW2i=a*(Vmin-V2i-1)/Vmin+bVmin为队列报文的预定下限速率。其他优先级的IPv4和IPv6队列的权值也做同样的调整。通过这样的方法,当IPv4队列的报文速率大于Vmin时,不对队列权值做调整;当IPv4队列的报文速率小于Vmin时,调整队列权值,从而在动态调整权值的同时,减少了对于队列权值的频繁调整,减少系统资源的消耗。在一个实施例中,本发明的报文调度方法还包括,按照优先级的顺序,分别将IPv4队列和IPv6队列的报文按照各自的队列权值进行调度并输出。当对所有优先级的IPv4队列和IPv6队列完成一个周期的调度后,重新调整每个优先级内的IPv4队列和IPv6队列的权值。由于每个周期IPv4队列和IPv6队列的报文速率可能有很大不同,因此在完成一个周期的调度后进行队列权值的重新调整,能够使IPv4队列和IPv6队列的权值符合该周期的报文速率的需要,使权值分配更加合理和有效。本发明的报文调度装置的一个实施例的示意图如图3所示。其中,301为队列创建模块,将数据包根据优先级和IP协议版本分别分配到对应优先级的IPv4队列和IPv6队列,每个优先级均可以包含一个IPv4队列和一个IPv6队列。302为权值调整模块,权值调整模块302根据IPv4队列和IPv6队列的报文速率的变化,动态调整IPv4队列和IPv6队列的权值,同一优先级的IPv4队列和IPv6队列共享对应优先级的总权值。不同优先级的队列根据权值分配总的带宽资源,同一优先级的IPv4队列和IPv6队列分别按照其权值分配对应优先级的带宽。通过这样的装置,同一优先级的IPv4队列和IPv6队列共享对应优先级的总权值,并根据IPv4队列和IPv6队列的报文速率动态调整两队列的权值,实现对IPv4报文和IPv6报文灵活的差异化调度,从而提高差异化服务能力。本发明的报文调度装置的另一个实施例的示意图如图4所示。其中,401为队列创建模块,用于将数据包根据优先级和IP协议版本分别分配到对应优先级的IPv4队列和IPv6队列,每个优先级均可以包含一个IPv4队列和一个IPv6队列。402为权值分配模块,用于为每个优先级的IPv4队列和IPv6队列分配初始权值,为IPv4队列分配第一预定权值,为IPv6队列分配第二预定权值,第一预定权值与第二预定权值之和为对应优先级的总权值。403为权值调整模块,用于随着IPv4队列和IPv6队列的报文速率的变化,动态调整IPv4队列和IPv6队列的权值,并保持IPv4队列和IPv6队列权值之和为对应优先级的总权值。在一个实施例中,队列调整模块302可以在IPv4队列或IPv6队列的报文速率低于预定下限速率时,对IPv4队列和IPv6队列的权值进行调整。具体包括,降低报文速率低于预定下限速率的队列权值,并提高同一优先级的另一队列的权值,使二者之和为对应优先级的总权值。或者,可以在IPv4队列或IPv6队列的报文速率高于预定上限速率时,对IPv4队列和IPv6队列的权值进行调整。具体包括,提高报文速率高于预定上限速率的队列权值,并降低同一优先级的另一队列的权值,使二者之和为对应优先级的总权值。通过这样的装置,当IPv4队列或IPv6队列的报文速率在预定范围内变化时,不对队列权值做调整;当报文速率的变化范围超出预定时,调整队列权值,从而在动态调整权值的同时,减少了对于队列权值的频繁调整,减少系统资源的消耗。在一个实施例中,权值调整模块302根据IPv4和IPv6队列的报文速率进行权值调整。以优先级i为例,优先级i的IPv4和IPv6报文分别进入队列2i-1和队列2i,权值分别是W2i-1和W2i,队列报文速率分别为V2i-1和V2i,优先级i的权值设为固定值IWi,IWi=W2i-1+W2i=a+b,a和b分别为队列2i-1和2i预设置的权值。队列权值可以按照以下算法进行调整:a)当V2i-1=0,V2i=0时,W2i-1=a,W2i=b;b)当V2i-1=0,V2i≠0时,W2i-1=0,W2i=a+b;c)当V2i-1≠0,V2i=0时,W2i-1=a+b,W2i=0;d)若V2i-1≠0,V2i≠0,当V2i-1>Vmin时,W2i-1=a,W2i-1=b;当V2i-1<=Vmin时,W2i-1=a*V2i-1/VminW2i=a*(Vmin-V2i-1)/Vmin+bVmin为队列报文的预定下限速率。其他优先级的IPv4和IPv6队列的权值也做同样的调整。例如,优先级1的总权值为80。当只有IPv4报文时,队列1的权值调整为80,队列2的权值调整为0;假如优先级1只有IPv6报文,则队列2的权值调整为80,队列1的权值调整为0;假如优先级1有IPv4报文和IPv6报文,队列1的数据报文到达速率的下限设为40,当队列1的报文达到速率为45时,队列1的权值为32,队列2的权值为48,当队列1的报文达到速率为20时,队列1的权值为20/40*32=16,队列2的权值为(40-20)/40*32+48=64。队列1和队列2按照权值分配优先级1的总权值。通过这样的装置,当IPv4队列的报文速率大于Vmin时,不对队列权值做调整;当IPv4队列的报文速率小于Vmin时,调整队列权值,从而在动态调整权值的同时,减少了对于队列权值的频繁调整,减少系统资源的消耗。最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1