一种网络流量IP限速方法及装置与流程

文档序号:37478852发布日期:2024-04-01 13:48阅读:9来源:国知局
一种网络流量IP限速方法及装置与流程

本申请涉及网络流量领域,尤其涉及一种网络流量ip限速方法及装置。


背景技术:

1、随着网络信息技术的不断发展,网络信息技术已与人们的生活密不可分,在此过程中,用户对网络的需求不断发生变化,诸如视频/语音通话、视频点播以及网络游戏等,网络流量也呈日益增长趋势,但也因此对网络传输能力和服务质量提出了更高的要求,随之出现的,就是对传输网络数据的报文进行限速的技术手段。

2、目前存在的网络限速技术普遍采用令牌桶算法进行报文的限速。一种是直接通过令牌桶进行限速丢包,当流量速率超过限速值后,直接丢弃超速流量,但因为丢包会导致业务中断或报文重传,例如直接丢包会导致udp音视频业务卡顿或tcp文件传输速率无法达到设定值,现已逐步取缔;另一种是先将流量缓存再基于令牌桶进行限速,即流量报文先基于匹配策略被缓存到不同队列中,报文发送时基于队列进行逐个调度,通过每ip的令牌桶进行限速判断是否可以发包,可以解决丢包导致业务异常的问题。

3、然而,第二种方法在缓存队列数量较多时,遍历全部队列逐个调度需要消耗性能,并且当队列被调度时若令牌桶中令牌仍不足,无法发包属于无用的性能花费,若当前调度队列令牌充足但其他队列均在发送报文,那当前调度队列的发包延迟也会很大。


技术实现思路

1、本申请实施例提供了一种网络流量ip限速方法及装置,通过计算接收到的报文的发包时刻和预设的时间精度选定发包缓存队列,并根据当前时间和时间精度选定当前发包队列,无需遍历全部队列,且通过分配队列的方式,也能够避免当前发包队列令牌不足以及发包延迟的问题。

2、本申请实施例提供一种网络流量ip限速方法,包括:

3、根据预设的时间精度和预设的缓存报文时长,计算缓存队列数n,并创建n个缓存队列,其中,n≥1,所述时间精度根据ip数量和报文流量预先设置;

4、接收报文后,根据接收到的报文对应ip预设的限速值,计算所述接收到的报文的发包用时;

5、根据所述发包用时和所述接收到的报文对应ip的上次发包时刻,计算所述接收到的报文的发包时刻;

6、根据所述发包时刻和所述时间精度,在n个缓存队列中确定发包缓存队列,将所述接收到的报文插入所述发包缓存队列;

7、根据当前时间和所述时间精度,在n个缓存队列中确定当前发包队列,发送所述当前发包队列中的报文,所述当前发包队列是指在所述时间精度下与所述当前时间对应的发包缓存队列。

8、在一种可行的实现方式中,所述计算所述接收到的报文的发包时刻,包括:

9、根据所述发包用时和所述接收到的报文对应ip的上次发包时刻,计算所述接收到的报文的可发包时刻;

10、若所述可发包时刻早于当前时刻,则所述发包时刻为当前时刻;

11、若所述可发包时刻晚于或等于当前时刻,则所述发包时刻为所述可发包时刻。

12、在一种可行的实现方式中,所述在n个缓存队列中确定发包缓存队列,包括:

13、计算所述发包时刻与所述当前发包队列的起始时刻的差值;

14、若所述差值小于所述时间精度,则所述发包缓存队列为所述当前发包队列;

15、若所述差值大于所述时间精度,则根据所述差值、所述时间精度和所述当前发包队列确定所述发包缓存队列。

16、在一种可行的实现方式中,若所述差值大于所述时间精度,计算所述差值与所述时间精度的商值,将n个缓存队列进行排序,将所述商值与所述当前发包队列的序号的和值对应的缓存队列作为所述发包缓存队列。

17、在一种可行的实现方式中,在n个缓存队列中确定发包缓存队列之前,若n个缓存队列中已缓存报文的总量达到第一预设值,则随机确定是否丢弃所述接收到的报文;

18、若不丢弃所述接收到的报文,则根据所述发包时刻和所述时间精度,在n个缓存队列中确定发包缓存队列,将所述接收到的报文插入所述发包缓存队列。

19、在一种可行的实现方式中,若n个缓存队列中已缓存报文的总量达到第二预设值,则丢弃所述接收到的报文,其中,所述第一预设值小于所述第二预设值。

20、在一种可行的实现方式中,在计算所述接收到的报文的发包时刻之后,将所述上次发包时刻更新为所述发包时刻。

21、本申请实施例还提供一种网络流量ip限速装置,包括:

22、收包限速模块,被配置为根据接收到的报文对应ip预设的限速值,计算所述接收到的报文的发包用时,以及,根据所述发包用时和所述接收到的报文对应ip的上次发包时刻,计算所述接收到的报文的发包时刻;

23、缓存模块,被配置为根据预设的时间精度和预设的缓存报文时长,计算缓存队列数n,并创建n个缓存队列,以及,根据所述发包时刻和所述时间精度,在n个缓存队列中确定发包缓存队列,将所述接收到的报文插入所述发包缓存队列,其中,n≥1,所述时间精度根据ip数量和报文流量预先设置;

24、发包模块,被配置为根据当前时间和所述时间精度,在n个缓存队列中确定当前发包队列,发送所述当前发包队列中的报文,其中,所述当前发包队列是指在所述时间精度下与所述当前时间对应的发包缓存队列。

25、在一种可行的实现方式中,所述收包限速模块包括发包时刻模块,所述发包时刻模块在计算所述接收到的报文的发包时刻时,被配置为:

26、根据所述发包用时和所述接收到的报文对应ip的上次发包时刻,计算所述接收到的报文的可发包时刻;

27、若所述可发包时刻早于当前时刻,则所述发包时刻为当前时刻;

28、若所述可发包时刻晚于或等于当前时刻,则所述发包时刻为所述可发包时刻。

29、在一种可行的实现方式中,所述缓存模块包括发包缓存队列模块,所述发包缓存队列模块在n个缓存队列中确定发包缓存队列时,被配置为:

30、计算所述发包时刻与所述当前发包队列的起始时刻的差值;

31、若所述差值小于所述时间精度,则所述发包缓存队列为所述当前发包队列;

32、若所述差值大于所述时间精度,则根据所述差值、所述时间精度和所述当前发包队列确定所述发包缓存队列。

33、本申请实施例提供的一种网络流量ip限速方法及装置,根据时间精度和缓存报文时长计算缓存队列数,根据限速值计算接收到的报文的发包用时,通过发包用时确定报文的发包时刻,选定发包缓存队列后将接收到的报文插入其中,再选定当前发包队列后发送其中的报文,无需遍历全部队列,能够减少性能消耗,且通过分配队列的方式,能够避免出现当前发包队列令牌不足以及发包延迟的问题。



技术特征:

1.一种网络流量ip限速方法,其特征在于,包括:

2.根据权利要求1所述的网络流量ip限速方法,其特征在于,所述计算所述接收到的报文的发包时刻,包括:

3.根据权利要求1或2所述的网络流量ip限速方法,其特征在于,所述在n个缓存队列中确定发包缓存队列,包括:

4.根据权利要求3所述的网络流量ip限速方法,其特征在于,若所述差值大于所述时间精度,计算所述差值与所述时间精度的商值,将n个缓存队列进行排序,将所述商值与所述当前发包队列的序号的和值对应的缓存队列作为所述发包缓存队列。

5.根据权利要求1或2所述的网络流量ip限速方法,在n个缓存队列中确定发包缓存队列之前,其特征在于,若n个缓存队列中已缓存报文的总量达到第一预设值,则随机确定是否丢弃所述接收到的报文;

6.根据权利要求5所述的网络流量ip限速方法,其特征在于,若n个缓存队列中已缓存报文的总量达到第二预设值,则丢弃所述接收到的报文,其中,所述第一预设值小于所述第二预设值。

7.根据权利要求1所述的网络流量ip限速方法,在计算所述接收到的报文的发包时刻之后,其特征在于,将所述上次发包时刻更新为所述发包时刻。

8.一种网络流量ip限速装置,其特征在于,包括:

9.根据权利要求8所述的网络流量ip限速装置,其特征在于,所述收包限速模块包括发包时刻模块,所述发包时刻模块在计算所述接收到的报文的发包时刻时,被配置为:

10.根据权利要求8或9所述的网络流量ip限速装置,其特征在于,所述缓存模块包括发包缓存队列模块,所述发包缓存队列模块在n个缓存队列中确定发包缓存队列时,被配置为:


技术总结
本申请实施例提供一种网络流量IP限速方法及装置,根据时间精度和缓存报文时长计算缓存队列数,根据限速值计算接收到的报文的发包用时,通过发包用时确定报文的发包时刻,选定发包缓存队列后将接收到的报文插入其中,再选定当前发包队列后发送其中的报文,无需遍历全部队列,能够减少性能消耗,且通过分配队列的方式,能够避免出现当前发包队列令牌不足以及发包延迟的问题。

技术研发人员:李萌
受保护的技术使用者:北京安博通科技股份有限公司
技术研发日:
技术公布日:2024/3/31
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1