CN102710502B - 一种基于消耗时间的网络限速方法及装置 - Google Patents
一种基于消耗时间的网络限速方法及装置 Download PDFInfo
- Publication number
- CN102710502B CN102710502B CN201210148153.1A CN201210148153A CN102710502B CN 102710502 B CN102710502 B CN 102710502B CN 201210148153 A CN201210148153 A CN 201210148153A CN 102710502 B CN102710502 B CN 102710502B
- Authority
- CN
- China
- Prior art keywords
- message
- time
- advent
- current
- speed limit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于消耗时间的网络限速方法,当新的报文到达时,如果当前时间与突发容忍时间之和小于借由上一个报文计算得到的下一个报文可发送时刻,则丢弃该报文;反之,则发送该报文,并进一步计算该新的报文对应的下一个报文可发送时刻。相比较现有网络限速技术中广泛使用的令牌桶算法,本发明采用自然时间轴上的报文触发来实现限速功能,利用硬件的高速处理能力,将所消耗的时间控制在纳秒级别,使网络限速具有相当高的精确度,并使得网络流量突发尽可能均匀。另外,本发明也提供了一种应用上述方法对应的装置。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种在网络系统中对数据报文传送进行限速的方法及其对应的装置。
背景技术
随着网络技术的不断发展,网络系统中的数据通信量越来越大,但计算机网络中的带宽不是无限的,如何合理、有效地分配带宽资源,以期对有限的带宽资源进行最大化的合理使用,不仅仅是终端用户关心的问题,更是网络服务提供商最关心的问题之一。
由于网络带宽是一种有限的稀缺资源,而所有的网络用户都希望最大程度的获取网络带宽。如果一个用户不受限制地使用带宽,就会导致其他用户无法获取到必要的网络带宽,进而影响到其他用户的使用和体验。同时,网络运营商也希望通过对不同级别的用户分配不同的带宽资源,以达到根据不同级别使用者的付费来分配带宽资源的目的。此外,网络系统也经常受到第三方的攻击,如果对网络系统中的带宽资源不受任何限制,网络系统在受到攻击时,就有可能因带宽资源在短时间内耗尽而导致整个网络瘫痪。因此,限速技术就是一种有效的灵活分配带宽、有效防止非法攻击的一种网络资源调控技术。
目前,在网络的限速技术中,最常用的一种技术方案就是用令牌桶算法来控制网络系统中数据报文发送的数目。
采用令牌桶算法控制数据报文发送的数目的基本思想主要是:
网络中按规定的速率往令牌桶中添加相应的令牌。
网络设备收到数据报文,先从令牌桶总获取相应令牌,如果能获取到足够令牌则数据报文可以转发,如果不能获取到足够令牌则丢弃该报文。
因为回填令牌桶的速率是一定的,这就限制了发送报文的速率只能小于等于令牌回填的速率,从而达到限速的效果。
进一步地,回填令牌桶的方法可以分为两类:
按照系统时间周期添加令牌,其中添加令牌在后台处理与数据报文处理流程无关;
由报文触发添加令牌,根据报文到来时间差,计算该报文与前一报文到来的时间间隔,向令牌桶内注入的令牌值。
然而,对于网络限速技术,网络限速的精度是影响客户满意度的最重要的因素之一。影响令牌桶精度的一个最重要的方面就是对令牌桶中令牌的管理。然而上述两种回填令牌的方法都不能做到高精度。
周期添加令牌的方法虽然不消耗报文处理周期,但是需要在后台定时轮询令牌桶,当令牌桶个数成倍增加时,定时轮询的代价也相应增加,而且该方法受到定时轮询周期的影响,精度无法做到很高。
由报文触发添加令牌的方法虽然不受令牌桶个数影响,但是计算并维护令牌值需要较大的代价,而且需要消耗报文处理周期。另外,在此情况下,当前的令牌桶技术也无法对突发数据流量进行很好地控制,比如:设定的令牌桶回填时间周期是10ms,网络要求限速速率为1G,当有1G的流量过来时,在前1ms时间内,由于令牌桶中有令牌,而且令牌数足够,1G的突发流量就会全部通过,但是后9ms的时间内由于没有令牌数,网络数据就会被丢弃,网络流量为0。这样看来,虽然10ms内通过的总流量是1G,但是流量非常不均匀。当回填时间周期越大时,这种不准确的现象会越严重。
发明内容
针对上述问题,相比较现有网络限速技术中广泛使用的令牌桶算法,本发明提供了一种新的网络限速方法,采用自然时间轴上的报文触发来实现限速功能,利用硬件的高速处理能力,将所消耗的时间控制在纳秒级别,使网络限速具有相当高的精确度,并使得网络流量突发尽可能均匀。
具体来说,本发明基于消耗时间的限速方法,包括以下步骤:
步骤1:预先设置报文发送的限速速率值和突发容忍时间;
步骤2:记录当前报文的到达时间和发送该报文所需消耗的时间,并计算当前报文对应的下一个报文发送时刻,同时发送当前报文;
步骤3:如果新的报文到达时间与报文突发容忍时间之和大于/等于步骤2记录的下一个报文发送时刻,则转步骤2,否则执行步骤4;
步骤4:丢弃该报文。
本发明应用于上述方法的网络限速装置,包括:
配置模块,用于预先设置报文发送的限速速率值和突发容忍时间;
记录模块,用于记录当前报文的到达时间和当前报文对应的下一个报文发送时刻;
处理模块,用于当新的报文到达时间与报文突发容忍时间之和大于或等于所述记录装置中记录的下一个报文发送时刻,则发送该报文,同时计算该新的报文对应的下一个报文可发送的时刻并替代前述记录模块中的下一个报文发送时刻,当新的报文到达时间与报文突发容忍时间之和小于所述记录装置中记录的下一个报文发送时刻,则丢弃该报文。
相比较现有网络限速技术中广泛使用的令牌桶算法,本发明采用自然时间轴上的报文触发来实现限速功能,利用硬件的高速处理能力,将所消耗的时间控制在纳秒级别,使网络限速具有相当高的精确度,并使得网络流量突发尽可能均匀。
附图说明
图1是本发明基于消耗时间的网络限速方法的流程图。
图2是本发明某应用场景下基于消耗时间的网络限速方法发送数据报文的示意图。
图3是应用本发明方法对应的装置示意图。
具体实施方式
下面结合图1和图2对本发明的技术方案进行详细说明。
图1是本发明基于时间消耗的网络限速方法的流程图。本发明方法具体如下:
步骤1、预先设置报文发送的限速速率值和突发容忍时间。
具体地,在本发明中需要把限速速率值转换成每字节消耗时间,比如:用户配置1M字节每秒,则每字节消耗时间为1秒/1M,(约等于7629纳秒时间)。突发容忍时间为网络设备可以容忍的突发报文的提前到达时间,比如1000纳秒则说明报文可按预先设置的速率提前1000纳秒到达。
步骤2:记录当前报文的到达时间和发送该报文所需消耗的时间,并计算当前报文对应的下一个报文发送时刻,同时发送该当前报文。
当前报文到来时,网络设备首先获得该报文的到达时间以及该报文的大小,利用报文大小乘以每字节消耗时间,计算出按预先设置的发送报文限速速率值该报文发送需要消耗的时间。当前时间加上当前报文消耗的时间之和即为下次可发送时刻,并记录该值,同时发送当前报文。
步骤3:判断新的报文到达时间与报文突发容忍时间之和大于/等于步骤2记录的下一个报文发送时刻,如果是,则转步骤2,否则执行步骤4。
当新的报文到达时间与报文突发容忍时间之和大于/等于步骤2记录的下一个报文发送时刻,表明该新的报文达时间位于突发容忍时间之内,可以随上一个数据报文一同发送;反之,如果新的报文到达时间与报文突发容忍时间之和小于步骤2记录的下一个报文发送时刻,则表明该新的报文位于突发容忍时间之外,无法随上一个数据报文一同发送。
步骤4:丢弃该报文。
图2是本发明某应用场景下基于消耗时间的网络限速方法发送数据报文的示意图。如图2所示,在自然时间轴t上,第一圆圈所在的A1为可发送报文的时间,在此之前没有报文发送。B1为第一个报文1到达的时间。如果用户事先在网络设备上设定数据报文的发送速率是r(字节/秒),则发送第一个报文预计需要的时间为s1/r,其中s1是报文1的大小(size),由此可以计算出发送新的报文的时间,即下一个圆圈A2所在的位置是A2=B1+s1/r。
如果用户设定突发容忍时间是T,则系统容许报文提前一定的时间T到达,在A2-T与A2之间到达的报文系统就不被丢弃,而是被网络设备当前报文发送周期内发送。如在图2中所示,假设在B2时刻到达报文2,B3时刻到达报文3,B2、B3距离可发送时刻A2的时间长度分别为t0,t1,在该应用场景下,进一步假定突发容忍时间T介于t1和t0之间,即t1<T<t0,此时,由于报文2的到达时间位于容忍时间之外,依据本发明,报文2被丢弃,报文3的到达时间位于容忍时间之内,因而被网络设备随当前报文一同发送。进一步,由被发送的报文3来计算新的报文可发送时刻A3=B3+s3/r,其中s3是报文3的大小。
进一步地,假如报文4在A2时刻到达,即B4=A2,由于A2(即B4)与可发送时刻A3之间的时间差大于T,因此报文4被丢弃。报文5到达的时刻B5与A3之间的时间差t2小于容忍突发时间T,因此,报文5可被网络设备缓存起来发送,同时,将当前时间加上报文5的消耗时间,即B5+s5/r作为新的报文可发送时刻A4。以此类推,B6时刻到达的报文6将被发送,得出新的可发送时刻A5;B7时刻到达的报文7亦将被发送等等。
由于本发明采用系统时间自然递延来替代令牌回填的方法,基于事先设定的报文发送速率,预计报文发送所需的消耗时间,使得网络限速具有相当高的精确度。相对于令牌桶算法,本发明的技术方案能够灵活控制网络流量突发,使得突发流量尽可能均匀。
基于上述方法,图3给出了本发明应用上述方法的对应装置示意图。该装置具体包括:
配置模块,用于预先设置报文发送的限速速率值和突发容忍时间,具体为网络设备可以容忍的突发报文的提前到达时间。
记录模块,用于记录当前报文的到达时间和当前报文对应的下一个报文发送时刻,具体为当前报文的到达时间和发送该报文所需消耗的时间之和。所述发送报文所需消耗的时间为基于预先设置报文发送的限速速率值,获得传输每字节消耗时间,获得所述报文的大小,利用报文大小乘以每字节消耗时间,计算出所述报文发送需要消耗的时间。
处理模块,用于当新的报文到达时间与报文突发容忍时间之和大于或等于所述记录装置中记录的下一个报文发送时刻,则所述该新的报文随前述记录模块中的上一个报文一同发送,同时计算该新的报文对应的下一个报文可发送的时刻替代前述记录模块中记录的下一个报文发送时刻,当新的报文到达时间与报文突发容忍时间之和小于所述记录装置中记录的下一个报文发送时刻,则表时该新的报文无法随同记录模块中的前一报文一同发送出去,此时直接丢弃该报文。
以上所描述的仅仅是本发明较佳的实现方式,并不用以限定本发明的保护范围,任何等同的变化和修改皆应涵盖在本发明的保护范围之内。
Claims (5)
1.一种基于消耗时间的网络限速方法,其特征在于,包括以下步骤:
步骤1:预先设置报文发送的限速速率值和突发容忍时间;
步骤2:记录当前报文的到达时间和发送该报文所需消耗的时间,并计算当前报文对应的下一个报文发送时刻,同时发送当前报文;
步骤3:如果新的报文到达时间与报文突发容忍时间之和大于/等于步骤2记录的下一个报文发送时刻,则转步骤2,否则执行步骤4;
步骤4:丢弃该报文;其中,步骤2中所述发送当前报文所需消耗的时间为:
基于预先设置报文发送的限速速率值,获得传输每字节消耗时间,获得所述当前报文的大小,利用当前报文大小乘以每字节消耗时间,计算出所述当前报文发送需要消耗的时间。
2.根据权利要求1所述的方法,其特征在于,所述突发容忍时间具体为网络设备可以容忍的突发报文的提前到达时间。
3.一种网络限速装置,其特征在于,该装置包括:
配置模块,用于预先设置报文发送的限速速率值和突发容忍时间;
记录模块,用于记录当前报文的到达时间和当前报文对应的下一个报文发送时刻;
处理模块,用于当新的报文到达时间与报文突发容忍时间之和大于或等于所述记录装置中记录的下一个报文发送时刻,则发送该报文,同时计算该新的报文对应的下一个报文可发送的时刻并替代前述记录模块中的下一个报文发送时刻,当新的报文到达时间与报文突发容忍时间之和小于所述记录装置中记录的下一个报文发送时刻,则丢弃该报文;
其中,所述发送报文所需消耗的时间为基于预先设置报文发送的限速速率值,获得传输每字节消耗时间,获得所述报文的大小,利用报文大小乘以每字节消耗时间,计算出所述报文发送需要消耗的时间。
4.根据权利要求3所述的装置,其特征在于,所述记录模块记录的当前报文对应的下一个报文发送时刻,具体为当前报文的到达时间和发送该报文所需消耗的时间之和。
5.根据权利要求3所述的装置,其特征在于,所述突发容忍时间具体为网络设备可以容忍的突发报文的提前到达时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148153.1A CN102710502B (zh) | 2012-05-12 | 2012-05-12 | 一种基于消耗时间的网络限速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210148153.1A CN102710502B (zh) | 2012-05-12 | 2012-05-12 | 一种基于消耗时间的网络限速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102710502A CN102710502A (zh) | 2012-10-03 |
CN102710502B true CN102710502B (zh) | 2015-01-07 |
Family
ID=46903071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210148153.1A Active CN102710502B (zh) | 2012-05-12 | 2012-05-12 | 一种基于消耗时间的网络限速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102710502B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882809B (zh) * | 2012-10-26 | 2015-07-15 | 杭州迪普科技有限公司 | 一种基于报文缓存的网络限速方法及装置 |
CN103501278B (zh) * | 2013-09-30 | 2016-11-23 | 珠海市君天电子科技有限公司 | 一种平滑的流量控制方法及装置 |
CN107222358A (zh) * | 2016-03-21 | 2017-09-29 | 深圳市中兴微电子技术有限公司 | 包每秒流量监管方法及装置 |
CN108038048A (zh) * | 2017-12-05 | 2018-05-15 | 郑州云海信息技术有限公司 | 单个数据包收发耗时的统计方法、装置及可读存储介质 |
CN112751774B (zh) * | 2019-10-30 | 2023-07-11 | 华为技术有限公司 | 一种数据包处理方法、装置及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725732A (zh) * | 2005-06-08 | 2006-01-25 | 杭州华为三康技术有限公司 | 一种报文限速方法 |
-
2012
- 2012-05-12 CN CN201210148153.1A patent/CN102710502B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725732A (zh) * | 2005-06-08 | 2006-01-25 | 杭州华为三康技术有限公司 | 一种报文限速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102710502A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102710502B (zh) | 一种基于消耗时间的网络限速方法及装置 | |
US10447594B2 (en) | Ensuring predictable and quantifiable networking performance | |
US8934338B2 (en) | Policing usage of data networks | |
FI106420B (fi) | Palvelun ohjaus tietoliikenneverkossa | |
US7310309B1 (en) | Dynamic rate limiting adjustment | |
Zeng et al. | Congestion control for cross-datacenter networks | |
CN101478539B (zh) | 一种防止网络攻击的方法和网络设备 | |
CN101917646B (zh) | 报文发送方法及装置 | |
US9699103B2 (en) | Method and system for flow controlling | |
US20170289066A1 (en) | Facilitating communication of data packets using credit-based flow control | |
US20070058651A1 (en) | Method, system and program product for setting a transmission rate in a network | |
CN104052676B (zh) | 一种发送通路装置及发送通路的数据处理方法 | |
EP3560152B1 (en) | Determining the bandwidth of a communication link | |
US7966661B2 (en) | Network amplification attack mitigation | |
CN103312631B (zh) | 一种带宽控制方法及路由器 | |
Yildirim et al. | Dynamically tuning level of parallelism in wide area data transfers | |
CN109587075B (zh) | 一种业务处理方法、装置、设备及存储介质 | |
CN112350954B (zh) | 过载保护方法、系统、计算机可读存储介质及电子设备 | |
Zheng et al. | An effective approach to preventing TCP incast throughput collapse for data center networks | |
CN104104597B (zh) | 一种数据传输方法、装置及系统 | |
US7478158B1 (en) | Bandwidth management system | |
Doyle et al. | " Fair-Share" for Fair Bandwidth Allocation in Cloud Computing | |
CN102316025A (zh) | 网络流量控制方法、装置、系统及服务器 | |
CN101478408A (zh) | 实现上送速率动态联动的方法、装置和系统 | |
CN106254266A (zh) | 一种报文处理方法及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310000 No. 68 in the 6 storey building Patentee after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310000 No. 68 in the 6 storey building Patentee before: Hangzhou Dipu Technology Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |