一种优先级调度方法、装置和防火墙制造方法及图纸

技术编号:20451620 阅读:22 留言:0更新日期:2019-02-27 04:32
本申请提供了一种优先级调度方法、装置及防火墙,该方法包括:对接收到的数据包依据多级Qos到单级Qos的映射方式,计算所述数据包的优先级;从单链表中查找与所述数据包的优先级对应的优先级位置,所述单链表包括多个优先级位置,每个优先级位置对应至少一个数据流队列;将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。采用本申请实施例,这样就可以一次性实现对数据包的多级调度,并且保证了多级Qos的性能。并且,在后续发送数据包的时候,也按照高优先级的数据包先发送的原则,以及同优先级之间发送相同的数据包的方式,保证了高优先级的数据包得到优先发送以及同优先级的数据之间发送的公平性。

【技术实现步骤摘要】
一种优先级调度方法、装置和防火墙
本申请涉及Qos
,特别涉及一种优先级调度方法、优先级调度装置和防火墙。
技术介绍
QoS(QualityofService,服务质量)是指当网络发生拥塞时,网络设备(例如防火墙)把数据包划分为不同的优先级,并按照优先级的不同分别提交给不同的优先级队列,之后通过队列调度算法,对不同数据包进行处理。单级QoS指的是根据数据包的各属性中的一个属性进行调度,如果要从多个属性对数据包进行综合的优先级调度,例如,对多个用户、多种业务、多种流量等进行统一管理和分层调度,就需要采用多级QoS队列调度算法。专利技术人在研究过程中发现,现有技术中的多级QoS队列调度算法,由于要对数据包进行与维度的个数相同的多次区分调度,所以使得调度性能对比单级QoS有所下降。
技术实现思路
基于此,本申请提供了一种优先级调度方法,用以采用将多级Qos映射为单级Qos的方式以及按照单级Qos的优先级来调度数据包,即将数据包一次性的插入其所属的数据流队列,这样就可以一次性实现对数据包的多级调度,并且保证了多级Qos的性能。并且,在后续发送数据包的时候,也按照高优先级的数据包先发送的原则,以及同优先级之间的数据流队列发送相同个数的数据包的方式,保证了高优先级的数据包得到优先发送以及同优先级的数据包之间发送的公平性。本申请还提供了一种优先级调度装置以及一种防火墙,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请公开了一种优选级调度方法,该方法包括:对接收到的数据包依据多级Qos到单级Qos的映射方式,计算所述数据包的优先级;从单链表中查找与所述数据包的优先级对应的优先级位置,所述单链表包括多个优先级位置,每个优先级位置对应至少一个数据流队列;将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。其中,所述对接收到的数据包依据多级Qos到单级Qos的映射方式,计算所述数据包的优先级包括:获取所述数据包在所述多级Qos中各级Qos下的优先级配置值;对所述数据包在各级Qos下的优先级配置值进行累加,并加上预置数值得到所述数据包的优先级。其中,所述将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中之前,所述方法还包括:判断所述数据包的优先级是否为预置数值;如果是,则将该数据包直接插入至所述单链表内预置数值的优先级位置下的数据流队列中;如果否,则将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。其中,所述将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中包括:判断所述单链表中与所述数据包对应的优先级位置下,是否存在所述数据包所属数据流对应的数据流队列;如果存在,则将所述数据包插入所述数据包所属数据流的数据流队列中;如果不存在,则在所述数据包对应的优先级位置下创建新的数据流队列,并将所述数据包插入新创建的数据流队列中。其中,该方法还包括:按照所述数据包的优先级从大到小的顺序,分别发送每个数据流队列中的数据包。其中,所述按照所述数据包的优先级从大到小的顺序,分别发送每个数据流队列中的数据包包括:获取数值最大的优先级对应的优先级位置作为当前位置,以及,将所述当前位置下的每个数据流队列,发送与所述数值最大的优先级个数相同的数据包;获取数值次大的优先级对应的优先级位置作为当前位置,并将所述当前位置下的每个数据流队列,发送与所述数值次大的优先级个数相同的数据包;在不存在数值次大的优先级的情况下,返回所述获取数值最大的优先级对应的优先级位置作为当前位置的步骤。本申请实施例还提供了一种优选级调度装置,该装置包括:计算单元,用于对接收到的数据包依据多级Qos到单级Qos的映射方式,计算所述数据包的优先级;查找单元,用于从单链表中查找与所述数据包的优先级对应的优先级位置,所述单链表包括多个优先级位置,每个优先级位置对应至少一个数据流队列;插入单元,用于将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。其中,所述计算单元包括:优先级获取子单元,用于获取所述数据包在所述多级Qos中各级Qos下的优先级配置值;优先级计算子单元,用于对所述数据包在各级Qos下的优先级配置值进行累加,并加上预置数值得到所述数据包的优先级。其中,所述插入单元包括:第一判断子单元,用于判断所述数据包的优先级是否为预置数值;第一插入子单元,用于在所述第一判断子单元的结果为是的情况下,将该数据包直接插入至所述单链表内预置数值的优先级位置下的数据流队列中;第二插入子单元,用于在所述第一判断子单元的结果为否的情况下,将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。其中,所述方法还包括:第二判断子单元,用于判断所述单链表中与所述数据包对应的优先级位置下,是否存在所述数据包所属数据流对应的数据流队列;触发子单元,用于在所述第二判断子单元的结果为是的情况下,触发所述第二插入子单元;创建子单元,用于在所述第二判断子单元的结果为否的情况下,在所述数据包对应的优先级位置下创建新的数据流队列,并触发所述第二插入子单元。其中,所述装置还包括:发送单元,用于按照所述数据包的优先级从大到小的顺序,分别发送每个数据流队列中的数据包。其中,所述发送单元包括:第一获取子单元,用于获取数值最大的优先级对应的优先级位置作为当前位置;第一发送子单元,用于将所述当前位置下的每个数据流队列,发送与所述数值最大的优先级个数相同的数据包;第二发送子单元,用于获取数值次大的优先级对应的优先级位置作为当前位置,将所述当前位置下的每个数据流队列,发送与所述数值次大的优先级个数相同的数据包;触发子单元,用于在不存在数值次大的优先级的情况下,触发所述第一获取子单元。本申请实施例还提供了一种防火墙,所述防火墙包括前述的优先级调度装置。与现有技术相比,本申请实施例包括以下优点:在本申请实施例中,对接收到的数据包依据多级Qos到单级Qos的映射方式,先计算数据包的优先级,再从单链表中查找与优先级对应的优先级位置,在每个优先级位置下对应有至少一个数据流队列,然后就可以将数据包按照所属数据流插入对应的优先级位置下的某个数据流队列中。可见,按照预先将多级QoS映射为单级QoS,并按照计算得到的数据包的优先级来查找数据包的位置和插入数据流队列,这种调度数据包的方式,可以一次性实现对数据包的多级调度,不会影响数据包的调度性能。当然,实施本申请实施例的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的优先级调度方法实施例的示例性流程图;图2是本申请的从多级Qos的N*8矩阵映射为单链表的示例性示意图;图3是本申请的单链表的示例性示意图;图4是本申请的优先级调度方法在实际应用中的示例性场景示意图;图5是本申请的优先级调度装置的示例性结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清本文档来自技高网...

【技术保护点】
1.一种优选级调度方法,其特征在于,该方法包括:对接收到的数据包依据多级Qos到单级Qos的映射方式,计算所述数据包的优先级;从单链表中查找与所述数据包的优先级对应的优先级位置,所述单链表包括多个优先级位置,每个优先级位置对应至少一个数据流队列;将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。

【技术特征摘要】
1.一种优选级调度方法,其特征在于,该方法包括:对接收到的数据包依据多级Qos到单级Qos的映射方式,计算所述数据包的优先级;从单链表中查找与所述数据包的优先级对应的优先级位置,所述单链表包括多个优先级位置,每个优先级位置对应至少一个数据流队列;将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。2.根据权利要求1所述的方法,其特征在于,所述对接收到的数据包依据多级Qos到单级Qos的映射方式,计算所述数据包的优先级包括:获取所述数据包在所述多级Qos中各级Qos下的优先级配置值;对所述数据包在各级Qos下的优先级配置值进行累加,并加上预置数值得到所述数据包的优先级。3.根据权利要求2所述的方法,其特征在于,所述将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中之前,所述方法还包括:判断所述数据包的优先级是否为预置数值;如果是,则将该数据包直接插入至所述单链表内预置数值的优先级位置下的数据流队列中;如果否,则将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中。4.根据权利要求1或3所述的方法,其特征在于,所述将所述数据包按照所属数据流插入所述单链表内对应的优先级位置下的数据流队列中包括:判断所述单链表中与所述数据包对应的优先级位置下,是否存在所述数据包所属数据流对应的数据流队列;如果存在,则将所述数据包插入所述数据包所属数据流的数据流队列中;如果不存在,则在所述数据包对应的优先级位置下创建新的数据流队列,并将所述数据包插入新创建的数据流队列中。5.根据权利要求1所述的方法,其特征在于,还包括:按照所述数据包的优先级从大到小的顺序,分别发送每个数据流队列中的数据包。6.根据权利要求5所述的方法,其特征在于,所述按照所述...

【专利技术属性】
技术研发人员:刘芳宁李拓
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1