一种QOS流量控制方法、系统、设备及存储介质与流程

文档序号:23551101发布日期:2021-01-05 21:09阅读:139来源:国知局
一种QOS流量控制方法、系统、设备及存储介质与流程

本发明涉及通信技术领域,尤其涉及一种qos流量控制方法、系统、设备及存储介质。



背景技术:

目前绝大多数的qos(服务质量)流量限速是基于硬件实现的,但是有的硬件平台如cavium硬件等不支持qos流量限速,需要通过软件实现qos流量限速。

现有的软件实现的qos流量限速主流方案是采用htb令牌桶算法,都是在报文入队列前就直接根据令牌数丢包。htb令牌桶算法的qos每个ip限速实现是每秒更新一次令牌桶,相对tcp拥塞控制机制而言更新频率太慢,会出现每秒前期发送速率超过限速值,数据传输的tcp滑动窗口迅速张开,传输中的数据量变大的问题;而且当每秒的前期把令牌用光后期无令牌可用,会导致完全丢包,滑动窗口迅速收缩。

因此,现有的qos流量限速方法会导致tcp流量的滑动窗口变动频繁,使得速率抖动幅度大并且达不到限速值。



技术实现要素:

有鉴于此,有必要提供一种qos流量控制方法、系统、设备及存储介质,用以解决现有技术中tcp流量的滑动窗口变动频繁、速度抖动幅度大并且达不到限速值的问题。

第一方面,本发明提供一种qos流量控制方法,包括如下步骤:

接收待转发报文,计算处理所述报文需要消耗的时间令牌值;

计算当前周期内的已消耗时间令牌和处理所述报文需要消耗的时间令牌值之和,并记做和值后,比较所述和值与当前周期下当前时刻的时间令牌桶的大小;

根据比较结果判断是否转发报文,并在判断需要转发报文时更新当前周期内的已消耗时间令牌。

优选的,所述的qos流量控制方法中,所述处理所述报文需要消耗的时间令牌值的计算方法为:

tp=l/b,

其中,tp为处理所述报文需要消耗的时间令牌值,l为所述报文的长度,b为带宽。

优选的,所述的qos流量控制方法中,每个周期的初始已消耗时间令牌的大小为周期初始系统时间。

优选的,所述的qos流量控制方法中,每个周期内任意时刻的时间令牌桶的大小为该时刻的系统时间。

优选的,所述的qos流量控制方法中,所述周期长度为1秒。

优选的,所述的qos流量控制方法中,所述根据比较结果判断是否转发报文,并在判断需要转发报文时更新当前周期内的已消耗时间令牌的步骤具体包括:

当所述和值不超过当前周期下当前时刻的时间令牌桶时,转发报文,并更新当前周期内的已消耗时间令牌;

当所述和值超过当前周期下当前时刻的时间令牌桶时,丢弃所述报文。

优选的,所述的qos流量控制方法中,当前周期内的已消耗时间令牌的更新方法为:

以所述和值作为新的当前周期内的已消耗时间令牌。

第二方面,本发明还提供一种qos流量控制系统,包括:

报文接收模块,用于接收待转发报文,计算处理所述报文需要消耗的时间令牌值;

比较模块,用于计算当前周期内的已消耗时间令牌和处理所述报文需要消耗的时间令牌值之和,并记做和值后,比较所述和值与当前周期下当前时刻的时间令牌桶的大小;

报文转发判断模块,用于根据比较结果判断是否转发报文,并在判断需要转发报文时更新当前周期内的已消耗时间令牌。

第三方面,本发明还提供一种qos流量控制设备,包括:处理器和存储器;

所述存储器上存储有可被所述处理器执行的计算机可读程序;

所述处理器执行所述计算机可读程序时实现如上所述的qos流量控制方法中的步骤。

第四方面,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的qos流量控制方法中的步骤。

【有益效果】

本发明提供的qos流量控制方法、系统、设备及存储介质,通过设置时间令牌和时间令牌桶两个变量,在进行报文接收时,根据已消耗时间令牌和时间令牌桶的大小情况,来确定是否转发报文,使时间令牌桶随着时间的增长逐渐被释放出来,进而可以避免tcp流量的滑动窗口变动频繁,避免速率抖动幅度过大并且达不到限速值,达到完全准确平滑的限速效果。

附图说明

图1为本发明提供的qos流量控制方法的一较佳实施例的流程图;

图2为本发明提供的qos流量控制系统的一较佳实施例的功能模块图;

图3为本发明qos流量控制程序的较佳实施例的运行环境示意图。

具体实施方式

下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。

请参阅图1,本发明实施例提供的qos流量控制方法,包括如下步骤:

s100、接收待转发报文,计算处理所述报文需要消耗的时间令牌值。

具体来说,现有技术中htb令牌桶算法在进行qos流量控制的具体原理为:交换机在接收每个帧时都将添加一个令牌到令牌桶中,但这个令牌桶底部有一个孔,不断地按指定作为平均通信速率(单位为b/s)的速度领出令牌(也就是从桶中删除令牌的意思)。在每次向令牌桶中添加新的令牌包时,交换机都会检查令牌桶中是否有足够容量,如果没有足够的空间,包将被标记为不符规定的包,这时在包上将发生指定监管器中规定的行为(丢弃或标记)。换而言之,现有的令牌桶算法在前期tcp滑动窗口迅速张开,传输中的数据量很大,甚至会出现每个周期前期的发送速率超过限速值的问题,而后期令牌桶中容量不够时,会迅速收缩滑动窗口,使得速度抖动的幅度很大并且达不到限速值。

本实施例中,通过逐渐累加接收的报文消耗的时间令牌值来判断是否转发报文。换而言之,当接收到报文时,计算处理报文需要消耗的时间令牌值,而一个周期内的时间令牌桶的大小是逐渐变化的,当消耗的时间令牌值累加超过时间令牌桶的大小时,则不接收此报文。故由于每次都是按照固定的速率来计算消耗的时间令牌,所以可以使得一个报文在被转发时都是被限制在固定的速率下,可以避免速率抖动幅度过大并且达不到限速值,达到完全准确平滑的限速效果。

优选的,所述处理所述报文需要消耗的时间令牌值的计算方法为:

tp=l/b,

其中,tp为处理所述报文需要消耗的时间令牌值,l为所述报文的长度,b为带宽。

具体来说,在固定的带宽下,一个周期内可以通过的总的报文长度一定,反过来说,当速率稳定时,一个报文在固定的带宽下通过的时间一定,所以可通过判断累积时间是否超过该周期长度来决定是否转发报文,具体可以通过计算固定带宽下待转发报文消耗的时间令牌值,来进行累加决定是否转发报文。处理所述报文需要消耗的时间令牌值的计算方式如上所述。举例来说,1m带宽下1个512字节的报文消耗的时间为0.5kbyte/1mbyte*秒,计算出消耗的时间令牌为0.5ms。

s200、计算当前周期内的已消耗时间令牌和处理所述报文需要消耗的时间令牌值之和,并记做和值后,比较所述和值与当前周期下当前时刻的时间令牌桶的大小。

s300、根据比较结果判断是否转发报文,并在判断需要转发报文时更新当前周期内的已消耗时间令牌。

本实施例中,通过累加当前周期内消耗的时间令牌值来判断是否转发报文。具体的,每个周期的初始已消耗时间令牌的大小为周期初始系统时间,换而言之,每经过一个周期,对已消耗时间令牌进行更新,将已消耗时间令牌更新为周期初始系统时间,每个周期内任意时刻的时间令牌桶的大小为该时刻的系统时间,换而言之,在一个周期内,所述时间令牌桶的大小是逐渐递增,使得时间令牌桶的大小是随着时间的变化而逐渐被释放出来,每个时刻都具有新的时间令牌桶供报文转发,进而实现完全准确平滑的限速;优选的实施例中,每个周期长度为1秒。

优选的实施例中,所述步骤s300具体包括:

当所述和值不超过当前周期下当前时刻的时间令牌桶时,转发报文,并更新当前周期内的已消耗时间令牌;

当所述和值超过当前周期下当前时刻的时间令牌桶时,丢弃所述报文。

举例来说,本发明实施例在一个周期初始阶段,首先重置已消耗时间令牌和时间令牌桶,例如当前时间为12时0分0秒,则当前周期的初始已消耗时间令牌为12时0分0秒,当前周期的时间令牌桶为12时0分0秒,然后随着时间的变化,如果没有接收报文,当前周期的时间令牌桶的大小变化为12时0分1毫秒,当前周期的已消耗时间令牌没有变化,此时接收第一个报文,若当前的带宽为1m,第一个报文的长度为512字节,则计算出第一个报文消耗的时间令牌值为0.5ms,此时将初始已消耗时间令牌与第一个报文消耗的时间令牌值相加得到和值为12时0分0.5毫秒,小于当前的时间令牌桶为12时0分1毫秒,故可以转发报文,并更新当前周期内的已消耗时间令牌为12时0分0.5毫秒,且此报文通过的速率为1mbyte/s。之后再接收第二个报文,继续按照上述方法判断第二个报文是否可以转发,如果可以则更新当前周期内的已消耗时间令牌,依次类推,当当前周期内的已消耗时间令牌加上处理当前报文需要消耗的时间令牌值大于当前时刻的时间令牌桶时,则不转发此报文,处理下一个报文,直至当前周期结束后开始下一个周期,并重置已消耗时间令牌。需要说明的是,本实施例中,时间令牌和时间令牌桶的大小均为时刻值,具体可采用24小时计时制。

由于本发明中都是按照固定带宽来计算时间令牌消耗值,所以报文通过的速率也固定,而且时间令牌桶是随着时间变化逐渐释放,所以可以实现完全准确平滑的限速,可以避免tcp流量的滑动窗口变动频繁,避免速率抖动幅度过大并且达不到限速值。

请参阅图2,基于上述qos流量控制方法,本发明还相应的提供一种qos流量控制系统,包括:

报文接收模块21,用于接收待转发报文,计算处理所述报文需要消耗的时间令牌值;

比较模块22,用于计算当前周期内的已消耗时间令牌和处理所述报文需要消耗的时间令牌值之和,并记做和值后,比较所述和值与当前周期下当前时刻的时间令牌桶的大小;

报文转发判断模块23,用于根据比较结果判断是否转发报文,并在判断需要转发报文时更新当前周期内的已消耗时间令牌。

由于上文已对qos流量控制方法进行详细描述,在此不再对qos流量控制系统赘述。

如图3所示,基于上述qos流量控制方法,本发明还相应提供了一种qos流量控制设备,所述qos流量控制设备可以是移动终端、桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该qos流量控制设备包括处理器10、存储器20及显示器30。图3仅示出了qos流量控制设备的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述qos流量控制设备的内部存储单元,例如qos流量控制设备的硬盘或内存。所述存储器20在另一些实施例中也可以是所述qos流量控制设备的外部存储设备,例如所述qos流量控制设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器20还可以既包括qos流量控制设备的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述qos流量控制设备的应用软件及各类数据,例如所述安装qos流量控制设备的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有qos流量控制程序40,该qos流量控制程序40可被处理器10所执行,从而实现本申请各实施例的qos流量控制方法。

所述处理器10在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述qos流量控制方法等。

所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器30用于显示在所述qos流量控制设备的信息以及用于显示可视化的用户界面。所述qos流量控制设备的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中qos流量控制程序40时实现如上述实施例所述的qos流量控制方法,由于上文已对qos流量控制方法进行详细描述,在此不再赘述。

综上所述,本发明提供的qos流量控制方法、系统、设备及存储介质,通过设置时间令牌和时间令牌桶两个变量,在进行报文接收时,根据已消耗时间令牌和时间令牌桶的大小情况,来确定是否转发报文,使时间令牌桶随着时间的增长逐渐被释放出来,进而可以避免tcp流量的滑动窗口变动频繁,避免速率抖动幅度过大并且达不到限速值,达到完全准确平滑的限速效果。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

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