一种基于定时器的端口队列调度方法及电子设备技术

技术编号:31918821 阅读:21 留言:0更新日期:2022-01-15 13:01
本发明专利技术公开了一种基于定时器的端口队列调度方法及电子设备,方法包括向端口发送报文,基于优先权分配,确认报文进入队列的类型;根据上一次运行定时器机制的瞬间值,初始化定时器;基于队列类型的顺序,通过定时器调度端口队列补充令牌;基于报文的队列类型和调度的令牌,安排报文入队和出队;在出队过程中,循环调度队列链表中的节点,并使队列根据权重比出队,完成端口队列调度。本发明专利技术为各个端口提供不同类别的排队机制,从而实现更精确的出队和入队的调度,以及补充令牌的调度,能够提升网络设备的服务质量调度性能;通过定时器和多种队列的配合,保障汇聚网络所需的流量混合方面的需求。的需求。的需求。

【技术实现步骤摘要】
一种基于定时器的端口队列调度方法及电子设备


[0001]本专利技术涉及数据网络通信
,具体涉及一种基于定时器的端口队列调度方法及电子设备。

技术介绍

[0002]在QoS工具集的所有机制中,拥塞管理工具在应用服务级别提供了最重要的作用。拥塞管理工具,即排队工具。在出接口发送流量拥塞期间,使用拥塞管理功能,积累在某一个接口的数据包就会排队等候,基于分配给数据包的优先权以及为这个接口配置的排队机制,这些数据包能够按照排定的顺序发送出去。
[0003]单个的排队机制,在处理汇聚网络所需的流量混合方面都存在严重的缺陷,它们要么就公平地处理数据,要么就优先处理诸如语音的实时应用程序,没有有效地处理两种类型的流量。拥塞管理QoS功能提供了PQ、WFQ及LPQ几种类型的排队协议,每一种都可以指定创建数目不等的队列,能在一定程度上提供流量以及流量的发送顺序的差异性,但无法保障汇聚网络所需的流量混合方面的需求。

技术实现思路

[0004]针对现有技术中的上述不足,本专利技术提供的一种基于定时器的端口队列调度方法及电子设备解决了已有技术无法保障汇聚网络所需的流量混合方面的需求的问题。
[0005]为了达到上述专利技术目的,本专利技术采用的技术方案为:
[0006]提供一种基于定时器的端口队列调度方法,其包括以下步骤:
[0007]S1、向端口发送报文,基于优先权分配,确认报文进入队列的类型;
[0008]S2、基于根据上一次运行定时器机制的瞬间值,初始化定时器;
[0009]S3、基于队列类型的顺序,通过定时器调度端口队列补充令牌;
[0010]S4、基于报文的队列类型和调度的令牌,安排报文入队和出队;
[0011]S5、在出队过程中,循环调度队列链表中的节点,并使队列根据权重比出队,完成端口队列调度。
[0012]进一步地,步骤S2的具体方法为:
[0013]S2

1、将定时器分为五个等级,第一级按照1个时间单位,分配256个令牌桶,第二级到第五级均分配64个令牌桶;
[0014]S2

2、根据上一次运行定时器机制的瞬间值二进制低8位对应的令牌桶位置,将定时器挂接到第一级的定时器链表上,得到第一级定时器链表;
[0015]根据上一次运行定时器机制的瞬间值二进制第9位到第14位对应的令牌桶位置,将定时器挂接到第二级的定时器链表上,得到第二级定时器链表;
[0016]根据上一次运行定时器机制的瞬间值二进制第15位到第20位对应的令牌桶位置,将定时器挂接到第三级的定时器链表上,得到第三级定时器链表;
[0017]根据上一次运行定时器机制的瞬间值二进制第21位到第26位对应的令牌桶位置,
将定时器挂接到第四级的定时器链表上,得到第四级定时器链表;
[0018]根据上一次运行定时器机制的瞬间值二进制第27位到第32位对应的令牌桶位置,将定时器挂接到第五级的定时器链表上,得到第五级定时器链表,完成初始化。
[0019]进一步地,步骤S3的具体方法为:
[0020]S3

1、当定时器调度到从属于某端口的令牌桶时,更新PQ队列的PIR需求;
[0021]S3

2、获取PQ队列的整形速率,并计算更新间隔,通过更新间隔计算PQ队列每次更新的令牌数;
[0022]S3

3、根据端口的最大传输单元计算PQ队列的令牌桶深度;其中PQ队列的令牌桶深度不少于一次更新令牌数的2倍;
[0023]S3

4、判断PQ队列中令牌数是否小于PQ队列的令牌桶深度,若是则计算两者差值作为PQ队列需要补充的令牌,并进入步骤S3

5;否则不补充令牌,并进入步骤S3

6;
[0024]S3

5、判断需要补充的令牌数是否大于端口此次更新的剩余令牌数,若是则将剩余令牌全部用于PQ队列的补充,并结束此次端口队列的调度,等待定时器下一次的调度;否则将PQ队列令牌补充完,将端口此次更新的剩余令牌减去此次补充的数量,并进入步骤S3

6;
[0025]S3

6、判断是否有剩余令牌,若是则统计需要添加令牌的WFQ队列的数量和总权重,并进入步骤S3

7;否则等待定时器下一次的令牌调度;
[0026]S3

7、计算当前WFQ队列的令牌桶深度,判断当前WFQ队列中令牌数是否小于WFQ队列的令牌桶深度,若是则计算两者差值作为当前WFQ队列需要补充的令牌,并进入步骤S3

8;否则不补充令牌,并进入步骤S3

9;
[0027]S3

8、判断当前WFQ队列是否需要更新令牌,若是则根据当前WFQ队列的权重值与当前总权重值之比与剩余令牌数相乘得到当前WFQ队列此次更新补充的令牌数,并将当前总权重减去当前WFQ队列的权重得到新的总权重值,将剩余令牌数减去当前WFQ队列补充的令牌数;否则进入步骤S3

9;
[0028]S3

9、判断是否继续更新WFQ队列令牌,若是则根据新的总权重值重新计算并补充WFQ队列令牌,直到完成所有WFQ队列的令牌调度,并进入步骤S3

10;否则直接进入步骤S3

10;
[0029]S3

10、判断是否有剩余令牌,若是则统计LPQ队列的数量,并将端口当前剩余令牌数平均分配给LPQ队列,完成定时器对LPQ队列的令牌调度;否则等待定时器下一次的令牌调度。
[0030]进一步地,步骤S3

2中通过更新间隔计算PQ队列每次更新的令牌数的具体方法为:
[0031]S3
‑2‑
1、判断整形速率是否大于1Gbps,若是则更新间隔为1;否则进入步骤S3
‑2‑
2;
[0032]S3
‑2‑
2、判断整形速率是否大于等于51.2Mbps且小于等于1Gbps,若是则更新间隔为2;否则进入步骤S3
‑2‑
3;
[0033]S3
‑2‑
3、获取每次最小添加令牌字节和每秒调度次数,并将两者相乘,将相乘后的值除以整形速率,得到更新间隔;
[0034]S3
‑2‑
4、根据公式:
[0035][0036]得到PQ队列每次更新的令牌数Tok。
[0037]进一步地,步骤S3

3的具体方法为:
[0038]根据公式:
[0039]MBS=MTU
×8×210
[0040]得到PQ队列的令牌桶深度MBS;其中MTU为最大传输单元。
[0041]进一步地,在步骤S3中定时器调度端口队列补充令牌时进行定本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于定时器的端口队列调度方法,其特征在于,包括以下步骤:S1、向端口发送报文,基于优先权分配,确认报文进入队列的类型;S2、基于根据上一次运行定时器机制的瞬间值,初始化定时器;S3、基于队列类型的顺序,通过定时器调度端口队列补充令牌;S4、基于报文的队列类型和调度的令牌,安排报文入队和出队;S5、在出队过程中,循环调度队列链表中的节点,并使队列根据权重比出队,完成端口队列调度。2.根据权利要求1所述的基于定时器的端口队列调度方法,其特征在于,步骤S2的具体方法为:S2

1、将定时器分为五个等级,第一级按照1个时间单位,分配256个令牌桶,第二级到第五级均分配64个令牌桶;S2

2、根据上一次运行定时器机制的瞬间值二进制低8位对应的令牌桶位置,将定时器挂接到第一级的定时器链表上,得到第一级定时器链表;根据上一次运行定时器机制的瞬间值二进制第9位到第14位对应的令牌桶位置,将定时器挂接到第二级的定时器链表上,得到第二级定时器链表;根据上一次运行定时器机制的瞬间值二进制第15位到第20位对应的令牌桶位置,将定时器挂接到第三级的定时器链表上,得到第三级定时器链表;根据上一次运行定时器机制的瞬间值二进制第21位到第26位对应的令牌桶位置,将定时器挂接到第四级的定时器链表上,得到第四级定时器链表;根据上一次运行定时器机制的瞬间值二进制第27位到第32位对应的令牌桶位置,将定时器挂接到第五级的定时器链表上,得到第五级定时器链表,完成初始化。3.根据权利要求1所述的基于定时器的端口队列调度方法,其特征在于,步骤S3的具体方法为:S3

1、当定时器调度到从属于某端口的令牌桶时,更新PQ队列的PIR需求;S3

2、获取PQ队列的整形速率,并计算更新间隔,通过更新间隔计算PQ队列每次更新的令牌数;S3

3、根据端口的最大传输单元计算PQ队列的令牌桶深度;其中PQ队列的令牌桶深度不少于一次更新令牌数的2倍;S3

4、判断PQ队列中令牌数是否小于PQ队列的令牌桶深度,若是则计算两者差值作为PQ队列需要补充的令牌,并进入步骤S3

5;否则不补充令牌,并进入步骤S3

6;S3

5、判断需要补充的令牌数是否大于端口此次更新的剩余令牌数,若是则将剩余令牌全部用于PQ队列的补充,并结束此次端口队列的调度,等待定时器下一次的调度;否则将PQ队列令牌补充完,将端口此次更新的剩余令牌减去此次补充的数量,并进入步骤S3

6;S3

6、判断是否有剩余令牌,若是则统计需要添加令牌的WFQ队列的数量和总权重,并进入步骤S3

7;否则等待定时器下一次的令牌调度;S3

7、计算当前WFQ队列的令牌桶深度,判断当前WFQ队列中令牌数是否小于WFQ队列的令牌桶深度,若是则计算两者差值作为当前WFQ队列需要补充的令牌,并进入步骤S3

8;否则不补充令牌,并进入步骤S3

9;S3

8、判断当前WFQ队列是否需要更新令牌,若是则根据当前WFQ队列的权重...

【专利技术属性】
技术研发人员:詹晋川张磊郭杨平周志远
申请(专利权)人:深圳市风云实业有限公司
类型:发明
国别省市:

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

1
相关领域技术
  • 暂无相关专利