一种基于用户数据流优先级的队列调度方法与系统技术方案

技术编号:33964705 阅读:43 留言:0更新日期:2022-06-30 01:13
本发明专利技术提供了一种基于用户数据流优先级的队列调度方法,根据用户上网业务的数据流的优先级动态调整数据包的发送顺序,令高优先级的业务数据流优先出队,低优先级业务数据流后出队。本发明专利技术还提供了一种基于用户数据流优先级的队列调度系统。本发明专利技术的有益效果是:采用基于用户数据流优先级的调度方案,在网络发生拥堵的情况下,可有效提升整体网络的服务质量,能令高优先级的业务数据流优先发送。能令高优先级的业务数据流优先发送。能令高优先级的业务数据流优先发送。

【技术实现步骤摘要】
一种基于用户数据流优先级的队列调度方法与系统


[0001]本专利技术涉及通信技术,尤其涉及一种基于用户数据流优先级的队列调度方法与系统。

技术介绍

[0002]随着网络技术的不断进步,网络应用多元化也随之而生,视频、语音、上网、游戏、下载等越来越多的业务呈现爆发式增长。当各种业务流量都充斥着网络时,就会造成网络拥堵,数据包转发延时增大,严重时还造成数据包丢失,最终导致各种业务服务质量急剧下降,严重影响用户的上网体验。
[0003]现有的提升网络服务质量主要有如下方案:
[0004]1、升级带宽,增加链路带宽。
[0005]2、基于设备的IP或MAC地址进行流量限速。
[0006]3、利用开源tc工具进行部署,策略性选择数据包优先通过。
[0007]上述方案的缺陷如下:
[0008]1、升级带宽,则意味着成本增加,这是不得以而为之,是终端用户最不愿意接受的。
[0009]2、在带宽不变的条件下,使用高实时性的业务的设备端给予分配更高带宽,使用低实时性的业务的设备端分配低带宽,在一起程度上,确本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于用户数据流优先级的队列调度方法,其特征在于:根据用户上网业务的数据流的优先级动态调整数据包的发送顺序,令高优先级的业务数据流优先出队,低优先级业务数据流后出队。2.根据权利要求1所述的基于用户数据流优先级的队列调度方法,其特征在于:所述队列调度方法包括以下步骤:S1、模块初始化;S2、数据包入队过程;S3、数据包出队过程;S4、定时器调度。3.根据权利要求2所述的基于用户数据流优先级的队列调度方法,其特征在于:步骤S1包括以下子步骤:S1.1、首先,内核启动时,通过insmod命令加载网络服务质量模块,并初始化令牌桶和优先级队列,建立定时器,用户链表,并在协议栈发送数据包的入口函数dev_queue_xmit内设立钩子函数,用于接管所有数据包;S1.2、所述的令牌桶用于表示WAN口带宽的度量,包含上行带宽、下行带宽,令牌以时间滴答数为单位,令牌桶数据结构至少包含4个成员变量,分别为检测时间、令牌激活时间、当前令牌数量、速率表,其中,检测时间、令牌激活时间初始值为当前系统运行时间的滴答数,当前令牌数量初始值为一秒内的滴答数,速率表为包含多个元素的数组,每个元素的值的含义为发送某个区间大小的数据包所需要消耗的令牌,速率表计算公式为:t(i)=(C1*(i+1)*C2/W)*C3;其中,C1为常量,表示一秒内的微妙数,i表示数组某个元素的下标值,C2为常量,表示每个元素值的区间范围的大小,W表示带宽,单位为一秒内的字节数,C3为常量,表示一微妙内的滴答数,t(i)值为发送某个区间字节大小的数据包时所需要的令牌数量;S1.3、计算数据包满足发送条件所消耗的令牌数;S1.4、所述优先级队列是一个二维数组,第一纬包含用于表示方向,第二纬用于表示优先级大小,每个优先级队列都包含用户关联链表,用于表示是否有用户的相应优先级的数据流与之关联;S1.5、所述定时器的定时时间到后,开始遍历优先级队列,取出队列上的某个用户的相应优先级的数据流链表上的数据包进行发送。4.根据权利要求3所述的基于用户数据流优先级的队列调度方法,其特征在于:在步骤S1.2中,速率表为包含100个元素的数组,i表示数组某个元素的下标值,从0到99,C2为常量16,表示每个元素值的区间范围的大小为16,则速率表覆盖范围为从0到1600,W表示带宽,单位为一秒内的字节数,初始值为1Gbps,该值在模块加载完成后通过应用层下发配置修改之,C3为常量,表示一微妙内的滴答数,所以t(i)值为发送i*16到(i+1)*16之间字节大小的数据包时所需要的令牌数量;在步骤S1.3中,通过将数据包大小/16,得到该数据包消耗的令牌数落入哪个区间k,当k<=100时,此时的t(k)值则为发送此数据包的令牌数,如果k大于速率表大小100,则发送此数据包的令牌数,为t(99)*(k/100)+t(k%100);在步骤S1.4中,所述优先级队列是一个二维数组,第一纬包含2个元素用于表示方向,0和1分别表示上行方向与下行方向,第二纬包含7个元素用于表示优先级大小,数字越小,优
先级越高,0到6分别表示最高,较高,高,中,低,较低,最低优先级;在步骤S1.5中,所述定时器使用了内核定时器struct timer_list,该定时器是以jiffies为单位的定时值,定时间隔10毫秒。5.根据权利要求2所述的基于用户数据流优先级的队列调度方法,其特征在于:步骤S2包括以下子步骤:S2.1、协议栈转发的数据包执行到所设立的钩子函数时,开始进入数据包入队处理过程,首先,判断数据包是否已建立链接跟踪,如果未建立,则不对数据包做任何处理,直接返回,如果建立,则继续;S2.2获取数据包方向,方向为上行或下行,获取数据包的优先级,如果数据包方向获取失败或者数据包优先级获取失败,直接返回,如果成功获取,则继续;S2.3查询链接跟踪是否已关联用户,如果未关联用户,则对用户基本信息和用户调度信息初始化;S2.4完成链接跟踪关联用户后,继续查询链接跟踪是否已关联数据流,如果未关联数据流,则对数据流的基本信息进行初始化;S2.5链接跟踪的用户信息与数据流信息都建立后,开始将优先级队列,用户信息,数据流信息,数据包之间的关系关联起来,首先,数据包插入到当前方向的数据流的数据包缓存链表,并且将当前方向的数据流的关联节点插入到用户的当前优先级数据流链表,然后,用户的当前优先级关联节点插入到当前优先级的优先级...

【专利技术属性】
技术研发人员:庞信友
申请(专利权)人:深圳市吉祥腾达科技有限公司
类型:发明
国别省市:

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

1