一种数据流随机公平分享带宽的方法及装置转让专利

申请号 : CN201410212370.1

文献号 : CN103997467B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周明明

申请人 : 深圳市共进电子股份有限公司

摘要 :

本发明适用于流量控制技术领域,提供了一种数据流随机公平分享带宽的方法及装置,包括:在指定时间段内,当当前数据包所需消耗的令牌数小于或等于所述连接跟踪令牌桶内的剩余令牌数时,通过所述当前数据包,所述指定时间段为奇数次时间段或者偶数次时间段;在所述奇数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数,且所述当前数据包所需消耗的令牌数小于或等于所述总令牌桶内的剩余令牌数时,通过所述当前数据包。本发明提供了一种不基于队列的限速方式来实现数据流随机公平分享带宽,相比于传统的实现方式,大大降低了实现难度。

权利要求 :

1.一种数据流随机公平分享带宽的方法,其特征在于,所述方法包括:

在指定时间段内,当当前数据包所需消耗的令牌数小于或等于连接跟踪令牌桶内的剩余令牌数时,通过所述当前数据包,所述指定时间段为奇数次时间段或者偶数次时间段;

在所述奇数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数,且所述当前数据包所需消耗的令牌数小于或等于总令牌桶内的剩余令牌数时,通过所述当前数据包;

在所述偶数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数时,丢弃所述当前数据包;

当由所述偶数次时间段切换到所述奇数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值和叠加值重置所述总令牌桶内的剩余令牌数,所述叠加值为经过上一个偶数次时间段后所述总令牌桶内的剩余令牌数。

2.如权利要求1所述的方法,其特征在于,所述方法还包括:

在所述指定时间段内,当所述当前数据包所需消耗的令牌数大于所述总令牌桶内的剩余令牌数时,丢弃所述当前数据包。

3.如权利要求1所述的方法,其特征在于,所述方法还包括:

当由所述奇数次时间段切换到所述偶数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值重置所述总令牌桶内的剩余令牌数。

4.一种数据流随机公平分享带宽的装置,其特征在于,所述装置包括:

指定时间段数据包通过模块,用于在指定时间段内,当当前数据包所需消耗的令牌数小于或等于连接跟踪令牌桶内的剩余令牌数时,通过所述当前数据包,所述指定时间段为奇数次时间段或者偶数次时间段;

总令牌桶借用模块,用于在所述奇数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数,且所述当前数据包所需消耗的令牌数小于或等于总令牌桶内的剩余令牌数时,通过所述当前数据包;

偶数次时间段数据包丢弃模块,用于在所述偶数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数时,丢弃所述当前数据包;

奇数次时间段状态重置模块,用于当由所述偶数次时间段切换到所述奇数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值和叠加值重置所述总令牌桶内的剩余令牌数,所述叠加值为经过上一个偶数次时间段后所述总令牌桶内的剩余令牌数。

5.如权利要求4所述的装置,其特征在于,所述装置还包括:

数据包丢弃模块,用于在所述指定时间段内,当所述当前数据包所需消耗的令牌数大于所述总令牌桶内的剩余令牌数时,丢弃所述当前数据包。

6.如权利要求4所述的装置,其特征在于,所述装置还包括:

偶数次时间段状态重置模块,用于当由所述奇数次时间段切换到所述偶数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值重置所述总令牌桶内的剩余令牌数。

说明书 :

一种数据流随机公平分享带宽的方法及装置

技术领域

[0001] 本发明属于流量控制技术领域,尤其涉及一种数据流随机公平分享带宽的方法及装置。

背景技术

[0002] 随着网络技术的飞速发展,网络终端设备越来越多,用户对网络的需求也越来越大。网络运营商虽然每年都在提高上行带宽,但其上行带宽的提高速度远不及广大用户对网速的增长需求。假设某网络中间设备的带宽为10Mb/s,用户A使用BitTorrent(又称比特洪流或BT)、视频传输或其他需要大流量的数据传输功能时,10Mb/s的上行带宽会被用户A占去大部分甚至全部,导致其他用户网络服务质量很差甚至无法获得网络服务。
[0003] 因此,针对多用户上网,对于有限的带宽,如何保证每个用户的每种业务的网络需求都能公平地发起与处理,是一项重要的工作。
[0004] 现有技术中,为了实现数据流随机公平分享带宽,采用Linux自带的QoS(Quality of Service)中的流量监管(Traffic Policing)机制。该机制是基于QDisc(Queuing Discipline,排队规则)的,所涉及的队列和过滤器种类繁多,且需要结合应用层TC(Traffic Control,流量控制)配置工具,实现难度高。

发明内容

[0005] 本发明实施例的目的在于提供一种数据流随机公平分享带宽的方法,以降低数据流随机公平分享带宽的实现难度。
[0006] 本发明实施例是这样实现的,一种数据流随机公平分享带宽的方法,包括:
[0007] 在指定时间段内,当当前数据包所需消耗的令牌数小于或等于所述连接跟踪令牌桶内的剩余令牌数时,通过所述当前数据包,所述指定时间段为奇数次时间段或者偶数次时间段;
[0008] 在所述奇数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数,且所述当前数据包所需消耗的令牌数小于或等于所述总令牌桶内的剩余令牌数时,通过所述当前数据包。
[0009] 本发明实施例的另一目的在于提供一种数据流随机公平分享带宽的装置,包括:
[0010] 指定时间段数据包通过模块,用于在指定时间段内,当当前数据包所需消耗的令牌数小于或等于所述连接跟踪令牌桶内的剩余令牌数时,通过所述当前数据包,所述指定时间段为奇数次时间段或者偶数次时间段;
[0011] 总令牌桶借用模块,用于在所述奇数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数,且所述当前数据包所需消耗的令牌数小于或等于所述总令牌桶内的剩余令牌数时,通过所述当前数据包。
[0012] 本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过连接跟踪令牌桶来对业务数据流进行流量控制,通过总令牌桶来对总数据流进行流量控制,并根据时间段次数条件,借用总令牌桶内的剩余令牌给业务数据流,从而在网络拥塞的情况下提高上行带宽的利用率,且大大降低了数据流随机公平分享带宽的的实现难度。

附图说明

[0013] 图1是本发明实施例提供的数据流随机公平分享带宽的方法的实现流程图;
[0014] 图2是本发明实施例提供的数据流随机公平分享带宽的方法中的奇数次时间段和偶数次时间段的示意图;
[0015] 图3是本发明实施例提供的数据流随机公平分享带宽的方法中采用双层令牌桶的示意图;
[0016] 图4是本发明另一实施例提供的数据流随机公平分享带宽的方法的实现流程图;
[0017] 图5是本发明实施例提供的数据流随机公平分享带宽的装置的结构框图。

具体实施方式

[0018] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0019] 本发明实施例通过连接跟踪令牌桶来对业务数据流进行流量控制,通过总令牌桶来对总数据流进行流量控制,并根据时间段次数条件,借用总令牌桶内的剩余令牌给业务数据流,从而在网络拥塞的情况下提高上行带宽的利用率,且大大降低了数据流随机公平分享带宽的的实现难度。
[0020] 本实施例中的令牌桶包括总令牌桶和至少一个连接跟踪令牌桶。可以认为,每个用户的每种网络业务对应于一条业务数据流,共享同一带宽的所有用户的所有网络业务对应于总数据流。为了保证每个用户的每种业务的网络需求能够公平地发起与处理,可以以相同的速率向每个连接跟踪令牌桶中放入令牌,且每个令牌允许发送相同的比特数,从而实现对业务数据流进行流量控制,以使每条业务数据流随机公平地分享带宽。
[0021] 图1示出了本发明实施例提供的数据流随机公平分享带宽的方法的实现流程图,详述如下:
[0022] 在S101中,在指定时间段内,当当前数据包所需消耗的令牌数小于或等于所述连接跟踪令牌桶内的剩余令牌数时,通过所述当前数据包,所述指定时间段为奇数次时间段或者偶数次时间段。
[0023] 图2示出了本发明实施例提供的数据流随机公平分享带宽的方法中的奇数次时间段和偶数次时间段的示意图。在本发明实施例中,将时间段分为奇数次时间段和偶数次时间段。
[0024] 需要说明的是,本实施例提供的数据流随机公平分享带宽的方法是不基于队列的,也就是说,没有队列对到来的数据包进行缓存,每个数据包的到来都是即时的。在指定时间段(奇数次时间段或者偶数次时间段)内,若到来的当前数据包所需消耗的令牌数小于或等于连接跟踪令牌桶内的剩余令牌数,则当前数据包获取对应个数的令牌,以通过当前数据包。在这里,通过当前数据包指的是,允许连接跟踪令牌桶对应的业务数据流发送当前数据包。
[0025] 在S102中,在所述奇数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数,且所述当前数据包所需消耗的令牌数小于或等于所述总令牌桶内的剩余令牌数时,通过所述当前数据包。
[0026] 图3示出了本发明实施例提供的数据流随机公平分享带宽的方法中采用双层令牌桶的示意图。参照图3,在指定时间段内,当前数据包到来后,首先采用连接跟踪令牌桶对当前数据包进行处理,通过连接跟踪令牌桶判断当前数据包所需消耗的令牌数是否大于连接跟踪令牌桶内的剩余令牌数,若是,则进一步判断当前时间段次数条件是否满足总令牌桶的借用条件,若满足,则判断当前数据包所需消耗的令牌数是否小于或等于总令牌桶内的剩余令牌数,若是,则当前数据包获取对应个数的令牌,以通过当前数据包。其中,当当前时间段次数为奇数次时间段时,满足总令牌桶的借用条件。
[0027] 进一步的,所述方法还包括:
[0028] 在所述偶数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数时,丢弃所述当前数据包。
[0029] 作为本发明的一个实施例,采用奇偶时间段次数错开处理的方式,在时间段次数为偶数的情况下,不允许当前数据包借用总令牌桶内的令牌;在时间段次数为奇数的情况下允许当前数据包借用总令牌桶内的令牌,以保证上行带宽的利用率达到最大值。需要说明的是,也可以规定在时间段次数为奇数的情况下,不允许当前数据包借用总令牌桶内的令牌;在时间段次数为偶数的情况下允许当前数据包借用总令牌桶内的令牌。为了便于说明,本实施例只说明允许在奇数次时间段内借用总令牌桶内令牌的情况。
[0030] 在本实施例中,若当前时间段为奇数次时间段,则采用连接跟踪令牌桶和总令牌桶的双层令牌桶处理方式来对当前数据包进行处理。若当前时间段为偶数次时间段,则只采用连接跟踪令牌桶来对当前数据包进行处理,当当前数据包所需消耗的令牌数大于连接跟踪令牌桶内的剩余令牌数时,直接丢弃当前数据包。
[0031] 进一步的,所述方法还包括:
[0032] 在所述指定时间段内,当所述当前数据包所需消耗的令牌数大于所述总令牌桶内的剩余令牌数时,丢弃所述当前数据包。
[0033] 在本发明实施例中,在奇数次时间段内,当当前数据包所需消耗的令牌数大于连接跟踪令牌桶内的剩余令牌数时,将当前数据包交给总令牌桶处理。若此时总令牌桶内的剩余令牌数不足以通过当前数据包,则丢弃当前数据包。
[0034] 在偶数次时间段内,当当前数据包所需消耗的令牌数大于总令牌桶内的剩余令牌数时,该当前数据包所需消耗的令牌数必然大于连接跟踪令牌桶内的剩余令牌数,因此丢弃当前数据包。
[0035] 图4示出了本发明另一实施例提供的数据流随机公平分享带宽的方法的实现流程图,为了便于说明,仅示出了与本实施例相关的部分。参照图4:
[0036] a:判断当前数据包所需消耗的令牌数是否大于连接跟踪令牌桶内的剩余令牌数?若否,则执行b;若是,则执行c;
[0037] b:通过当前数据包;
[0038] c:判断时间段次数是否为奇数?若否,则执行d;若是,则执行e;
[0039] d:丢弃当前数据包;
[0040] e:判断当前数据包所需消耗的令牌数是否小于或等于总令牌桶内的剩余令牌数?若是,则执行b;若否,则执行d。
[0041] 进一步的,所述方法还包括:
[0042] 当由所述偶数次时间段切换到所述奇数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值和叠加值重置所述总令牌桶内的剩余令牌数,所述叠加值为经过上一个偶数次时间段后所述总令牌桶内的剩余令牌数。
[0043] 在本发明实施例中,在指定时间段由偶数次时间段切换到奇数次时间段时,对连接跟踪令牌桶和总令牌桶进行状态重置处理。根据预设值重置连接跟踪令牌桶内的剩余令牌数,根据上行带宽值和叠加值重置总令牌桶内的剩余令牌数。优选的,所有连接跟踪令牌桶的预设值之和等于上行带宽值。例如,预设值为x比特每秒,上行带宽值为y比特每秒,连接跟踪令牌桶的个数为N,则y=N×x。
[0044] 由于采用奇偶时间段处理的方式,导致在偶数次时间段内存在一定的带宽流失,因此,本实施例在奇数次时间段的状态重置处理中,将经过上一个偶数次时间段后总令牌桶内的剩余令牌数添加到本次奇数次时间段的总令牌桶内,也就是将偶数次时间段的剩余总带宽延续到奇数次时间段内,从而保证在拥塞的情况下上行带宽的利用率达到最大。
[0045] 进一步的,所述方法还包括:
[0046] 当由所述奇数次时间段切换到所述偶数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值重置所述总令牌桶内的剩余令牌数。
[0047] 在本发明实施例中,当指定时间段由奇数次时间段切换到偶数次时间段时,根据预设值重置连接跟踪令牌桶内的剩余令牌数,根据上行带宽值重置总令牌桶内的剩余令牌数。
[0048] 本发明实施例通过连接跟踪令牌桶来对业务数据流进行流量控制,通过总令牌桶来对总数据流进行流量控制,并根据时间段次数条件,借用总令牌桶内的剩余令牌给业务数据流,从而在网络拥塞的情况下提高上行带宽的利用率,且大大降低了数据流随机公平分享带宽的的实现难度。
[0049] 图5示出了本发明实施例提供的数据流随机公平分享带宽的装置的结构框图,该装置可以用于运行图1至图4所述的数据流随机公平分享带宽的方法。为了便于说明,仅示出了与本实施例相关的部分。
[0050] 参照图5,该装置包括:
[0051] 指定时间段数据包通过模块51,在指定时间段内,当当前数据包所需消耗的令牌数小于或等于所述连接跟踪令牌桶内的剩余令牌数时,通过所述当前数据包,所述指定时间段为奇数次时间段或者偶数次时间段。
[0052] 总令牌桶借用模块52,在所述奇数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数,且所述当前数据包所需消耗的令牌数小于或等于所述总令牌桶内的剩余令牌数时,通过所述当前数据包。
[0053] 进一步的,所述装置还包括:
[0054] 偶数次时间段数据包丢弃模块,在所述偶数次时间段内,当所述当前数据包所需消耗的令牌数大于所述连接跟踪令牌桶内的剩余令牌数时,丢弃所述当前数据包。
[0055] 进一步的,所述装置还包括:
[0056] 数据包丢弃模块,在所述指定时间段内,当所述当前数据包所需消耗的令牌数大于所述总令牌桶内的剩余令牌数时,丢弃所述当前数据包。
[0057] 进一步的,所述装置还包括:
[0058] 奇数次时间段状态重置模块,当由所述偶数次时间段切换到所述奇数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值和叠加值重置所述总令牌桶内的剩余令牌数,所述叠加值为经过上一个偶数次时间段后所述总令牌桶内的剩余令牌数。
[0059] 进一步的,所述装置还包括:
[0060] 偶数次时间段状态重置模块,当由所述奇数次时间段切换到所述偶数次时间段时,根据预设值重置所述连接跟踪令牌桶内的剩余令牌数,并根据上行带宽值重置所述总令牌桶内的剩余令牌数。
[0061] 本发明实施例通过连接跟踪令牌桶来对业务数据流进行流量控制,通过总令牌桶来对总数据流进行流量控制,并根据时间段次数条件,借用总令牌桶内的剩余令牌给业务数据流,从而在网络拥塞的情况下提高上行带宽的利用率,且大大降低了数据流随机公平分享带宽的的实现难度。
[0062] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。