CN102882809A - 一种基于报文缓存的网络限速方法及装置 - Google Patents
一种基于报文缓存的网络限速方法及装置 Download PDFInfo
- Publication number
- CN102882809A CN102882809A CN2012104192779A CN201210419277A CN102882809A CN 102882809 A CN102882809 A CN 102882809A CN 2012104192779 A CN2012104192779 A CN 2012104192779A CN 201210419277 A CN201210419277 A CN 201210419277A CN 102882809 A CN102882809 A CN 102882809A
- Authority
- CN
- China
- Prior art keywords
- message
- buffer
- time
- delivery time
- timing
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于报文缓存的网络限速方法及装置。通过将未到达发送时刻的报文进行缓存,然后通过定时触发和报文触发缓存报文,实现网络限速功能。通过本发明,解决了传统令牌桶限速丢包导致的丢包率高,数据包重传概率大,限速后速率值稳定较慢的缺点,有效的提高了网络带宽利用率。
Description
技术领域
本发明涉及数据网络通信领域中的网络限速技术,尤其涉及一种基于报文缓存的网络限速方法和装置。
背景技术
随着网络的不断发展,网络在人们生活中的地位不断提升,用户对网络的需求不断发生变化,要求传输的信息种类越来越多,要求提供的服务质量也越来越高。由于各种新型业务不断涌现,大量的视频点播、流媒体、网络游戏等事实业务以及P2P类型业务广泛应用于宽带网络,这些新业务不仅占用带宽大,而且具有实时性,对网络传输能力和服务质量提出了更高的要求,如何更好的控制网络带宽利用率,就成了日益重要的题目。
目前存在的网络限速技术普遍采用令牌桶算法进行报文的限速。如图1所示,首先,系统按照规定的速率往令牌桶中填充相应的令牌。其次,当数据报文到达时,先从令牌桶中获取相应令牌,如果能获取到足够的令牌,则发送数据报文,同时从令牌桶中减去数据报文长度所对应的令牌数;如果不能获取到足够令牌则丢弃该报文。
由上述分析可知,现有技术的缺点主要表现为:(1)将上述现有方法利用到具有传输特性的具体应用进行限速时,超过限速速率的报文将被系统丢弃,会导致发送失败的报文以原速率进行试探重传,所以限速后用户实际使用的带宽小于限速带宽,网络速度变慢。(2)当报文的流入速率远大于限速速率时,系统中会有大量的报文进行重传操作,从而大大降低了带宽利用率。并且限速策略刚生效时,这种重传操作,使得报文交互速率很难快速的稳定在限速值附近,延长了限速后速率的稳定时间。(3)当报文流入的速率比限速速率大很多时,令牌桶的值会在很短的时间内被消耗完,在回填令牌之前会有大量报文因为没有令牌而被丢包,所以令牌桶限速后报文输出的流量非常不均匀。
发明内容
本发明的目的在于提供一种基于报文缓存的网络限速方法及装置,针对现有的网络限速技术中带宽利用率低且限速后的稳定时间延长等缺陷,提出了一种新的网络限速方法和装置,将未到达发送时刻的报文进行缓存,然后通过定时触发、数据包触发缓存报文输出来实现限速功能。
本发明的技术方案如下:
一种基于报文缓存的网络限速方法,其包括如下步骤:
A、根据网络限定速率值V和已发送的第N-1个报文的长度LN-1,计算第N个报文的可发送时刻TN=T(N-1)S+LN-1/V,N为大于1的自然数;TNS表示第N个报文的发送时刻,其中第一个报文的发送时刻T1为系统赋予的初始值;
B、如果第N个报文的到达时刻TNA大于等于所述的发送时刻TN,则发送该报文并返回步骤A;
C、如果第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN,则将该第N+M个报文缓存,并在TN时刻到达时,发送第N个报文并返回步骤A。
一种基于报文缓存的网络限速装置,其包括以下单元:
计时单元,用于根据网络限定速率值V和已发送的第N-1个报文的长度LN-1,计算第N个报文的可发送时刻TN=T(N-1)S+LN-1/V,N为大于1的自然数;TNS表示第N个报文的发送时刻,其中第一个报文的发送时刻T1为系统赋予的初始值;
报文收发单元,用于,当第N个报文的到达时刻TNA大于等于所述的发送时刻TN时发送该报文;
报文收发单元,用于,当第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN,则将该第N+M个报文缓存,并在TN时刻到达时,发送第N个报文。
本发明和现有技术相比,解决了传统令牌桶限速丢包导致的丢包率高,数据包重传概率大,限速后速率值稳定较慢的缺点,有效的提高了网络带宽利用率。同时,系统对于不同定时时间的统计功能,复用相同的物理资源来实现,能够节省物理资源。
附图说明
图1为现有技术中一种令牌桶限速流量示意图。
图2为本发明中一种基于报文缓存的网络限速装置逻辑流程图。
图3为本发明实施例中一种定时触发机制示意图。
图4为本发明实施例中一种基于缓存的定时触发机实例制示意图。
图5为本发明一种定时触发机制示意图。
图6为本发明中一种基于缓存的定时触发机制实例示意图。
图7为本发明中一种报文缓存触发机制示意图。
具体实施方式
本发明应用于网络设备上,本发明的实现可以基于各种常见硬件架构,通常这样网络设备主要包括CPU、内存、网络接口、非易失性存储器和业务硬件,其中业务硬件包括FPGA、CPLD、ASIC等逻辑器件,甚至可能是各种带有子系统的单板。本发明需要使用各个硬件与现有技术并无特别的要求,本发明不再一一详述。
为了更加清楚和明白地表述本发明,以下结合实施例对本发明技术方案进行详细说明。请参考图2所示的本发明中一种基于报文传输的网络限速装置逻辑结构示意图,所述网络限速装置包括计时单元和报文收发单元。请进一步参照图3以及图4,所述的基于报文缓存的网路限速装置在网络设备上运行时,其执行其对应的方法包括如下步骤:
步骤1、在同一种应用报文交互比较频繁时,以第一个报文的到来时刻作为初始值,记为T1a,其发送时刻为报文发送的初始值T1,由于系统中第一个报文到达时立即发送,故可以认为T1a=T1,计时单元根据网络限定速率值V和第一个报文的长度L1,计算第2个报文的可发送时刻T2=T1S+L1/V,系统刷新定时器的时间为L1/V,并以报文的可发送时刻T2为地址存储缓存地址,并在定时器超时时确定T2的到达;本步骤由所述计时单元执行。
举例而言,在一种实施例中当一种具体应用的网络限速值为1Mb/s时,发送一个128B的小包需要消耗977us,在同一种应用报文交互比较频繁的时间段内,以第一个报文到来的时刻作为时间轴的初始值0,由计时单元计算第二个报文的可发送时间T2=0+128B/(1Mb/s)=977us,系统刷新定时器的时间为977us,并在定时器超时时确定可以发送第二个报文。
步骤2、如果第二个报文在T2或T2时刻之后到达报文收发单元,则报文收发单元输出第二个报文,然后返回步骤1,由计时单元计算第三个报文的可发送时刻T3;
例如在步骤1中,如图3所示,如果第二个报文在977us或大于977us时到达报文收发单元,则报文收发单元输出第二个报文,且计时单元计算第三个报文的可发送时间T3。
步骤3、如果第二个报文及其后续的M(M为大于等于0的整数)个报文在T2时刻之前到达报文收发单元,判断缓存队列是否有缓存空间,若有,则缓存报文,若否,则将报文做丢弃处理,并在T2时刻到达时触发第二个报文输出,并计算第三个报文的可发送时刻T3;前述步骤2以及步骤3由报文收发单元执行。
例如:在步骤1实施例中,如图4所示,考虑到用户有可能会在短时间内发送大量报文的情况,因此需要考虑缓存可能溢出的处理。在优选的实施方式中,如果第二个及其后续报文在977us之前到达报文收发单元,也就是说此时需要缓存报文,在缓存报文之前系统先判断缓存队列是否有缓存空间,若有,则缓存报文,若否,则将报文做丢弃处理,977us到达时触发输出第二个报文,计时单元计算第三个报文的可发送时刻T3,之后以此类推。
请参考图5以及图6,本发明将上述网络限速方法步骤抽象归纳为:
步骤A、当第N-1个报文发送时,计时单元根据网络限定速率值V和已发送的第N-1个报文的长度LN-1,计算第N个报文的可发送时刻TN=T(N-1)S+LN-1/V,N为大于1的自然数;TNS表示第N个报文的发送时刻,其中第一个报文的发送时刻T1为系统赋予的初始值,在计算出TN时刷新定时器的定时时间,所述定时时间为LN-1/V,并在定时器超时时确定所述TN时刻到达;本步骤有计时单元执行。
步骤B、报文收发单元接收报文并判断输出,如果第N个报文的到达时刻TNA大于等于所述的发送时刻TN,报文收发单元发送该报文并返回步骤A。
步骤C、报文收发单元接收报文并判断输出,如果第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN,判断缓存队列是否有缓存空间,若有,则缓存报文,若无,则报文做丢弃处理,并在TN时刻到达时,报文收发单元发送第N个报文并返回步骤A;所述步骤B和步骤C由报文收发单元完成。
在优选的实施方式中,报文收发单元可以根据第N个报文的可发送时间来确定缓存地址在内存中的存放位置,这样可以大大提高从缓存中读取报文的速度。还是基于上述的例子而言,报文收发单元可以在缓存第二个报文时将其缓存到缓存中的某个地址,然后将该缓存地址的值保存在内存中,而内存的地址恰好与第二个报文的可发送时间T2是对应的,在一种简单的实施方式中,完全可以使用977这一数值作为内存的地址。这样一来,当定时器超时的时候,也就是需要发送第二个报文的时候,系统可以快速地通过977来寻找到内存中缓存地址,再根据缓存地址读出第二个报文然后发送出去。在优选的方式中,上述所指的缓存队列对应到具有交互性的应用,不同的应用对应于不同的缓存队列,或者所述缓存队列对应到不同用户的应用,每个缓存队列对应于特定用户的一个特定应用。
在以上定时触发实施方式的基础上,本发明还提供另一种优化实施方式,该实施方式可以与以上定时触发的实施方式结合使用,主要是防止定时器精度不够造成报文发送不及时的问题。
请参考图7,本发明中当限定速率达到百兆级别时,报文发送时间则相应到达ns级别,此时对定时器的精度要求很高,考虑系统调用定时器需要耗费一定的时间,采用定时触发可能会产生误差。本实施方式中系统会自动采用报文缓存触发机制。当第N+Q(Q为大于等于1的自然数)个报文的到达时间T(N+Q)A大于可发送时刻TN时,这说明此时定时器由于前述精度与调用时间的原因没有及时触发第N个报文发送,此时系统发现T(N+Q)A大于可发送时刻TN,则可以缓存当前的新报文并触发缓存队列中第一个报文(也就是第N个报文)的输出;当限定速率达到百兆级别时,在同样的限速策略下报文进入系统的速率可以很好的得到保证,可以有效的执行网络限速技术,减少丢包个数和报文重传数。需要说明的是,本步骤的执行是对定时触发机制的一个补充,定时触发机制一般已经可以满足现有的限速要求,且本步骤的执行与系统装置和定时器的精度配置有关。如果一个系统的定时精度较高,而限速的级别又不是非常高的时候,其完全可以只采取定时触发的机制,这是因为如果定时触发机制总是能够及时触发缓存中的报文输出,也就是说T(N+Q)A大于可发送时刻TN这个条件绝大部分情况都无法被满足,那么报文触发机制会一直无法生效。
本发明利用对同一种网络应用超出限时速率的报文先进行缓存,到达发送时刻时再进行发送,降低了现有技术中由于令牌数目不够导致报文被丢弃后报文重传的概率,能够有效地提高了带宽的利用率,并有效的提高限速后速率值的稳定性。本发明系统对于不同的定时时间采用相同的物理资源来实现,能够有效的节省物理资源。本发明中,为了避免硬件定时触发在高速率级别限速的情况下产生时间精度误差,采用了报文缓存触发机制,能够有效的减少硬件实现的压力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种基于报文缓存的网络限速方法,其特征在于,包括步骤:
A、根据网络限定速率值V和已发送的第N-1个报文的长度LN-1,计算第N个报文的可发送时刻TN=T(N-1)S+LN-1/V,其中N为大于1的自然数;TNS表示第N个报文的发送时刻,其中第一个报文的发送时刻T1为系统赋予的初始值;
B、如果第N个报文的到达时刻TNA大于等于所述的可发送时刻TN,则发送该报文,返回步骤A处理第N+1个报文;
C、如果第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN,则将该第N+M个报文缓存,并在TN时刻到达时,发送第N个报文并返回步骤A处理第N+1个报文。
2.根据权利要求1所述的方法,其特征在于,当第N+Q(Q为大于等于1的自然数)个报文的到达时间T(N+M)A大于可发送时刻TN时,缓存新报文并触发缓存队列中第一个报文输出。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
D、在计算出TN时刷新定时器的定时时间,所述定时时间为LN-1/V,并在定时器超时时确定所述TN时刻到达。
4.根据权利要求3所述的方法,其特征在于,其中步骤C所述将报文缓存具体包括:将该报文的缓存地址保存在内存中,其中保存该缓存地址的内存地址与所述定时时间对应;所述从缓存中读取第N个报文包括:根据定时时间对内存寻址并从内存中获得缓存地址,然后读取缓存地址中保存的第N个报文。
5.根据权利要求4所述的方法,其特征在于,所述缓存队列对应到具有交互性的应用,其中不同的应用对应于不同的缓存队列,或者所述缓存队列对应到不同用户的特定应用。
6.一种基于报文缓存的网络限速装置,其特征在于,包括:
计时单元,用于根据网络限定速率值V和已发送的第N-1个报文的长度LN-1,计算第N个报文的可发送时刻TN=T(N-1)S+LN-1/V,N为大于1的自然数;TNS表示第N个报文的发送时刻,其中第一个报文的发送时刻T1为系统赋予的初始值;
报文收发单元,用于在第N个报文的到达时刻TNA大于等于所述的发送时刻TN时发送该报文,返回计时单元处理第N+1个报文;
报文收发单元,进一步用于在第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN时,将该第N+M个报文缓存,并在TN时刻到达时发送第N个报文,返回计时单元处理第N+1个报文。
7.根据权利要求6所述的装置,其特征在于,所述报文收发单元进一步用于在第N+Q(Q为大于等于1的自然数)个报文的到达时间T(N+M)A大于可发送时刻TN时,缓存新报文并触发缓存队列中第一个报文输出。
8.根据权利要求7所述的装置,其特征在于,所述计时单元进一步用于:在计算出TN时刷新定时器的定时时间,所述定时时间为LN-1/V,并在定时器超时时确定所述TN时刻到达。
9.根据权利要求8所述的装置,其特征在于,报文收发单元进一步用于在将报文缓存到缓存中的时候,将该报文的缓存地址保存在内存中,其中保存该缓存地址的内存地址与所述定时时间对应;从缓存中读取第N个报文时根据定时时间对内存寻址并从内存中获得缓存地址,然后读取缓存地址中保存的第N个报文。
10.根据权利要求9所述的装置,其特征在于,所述缓存队列对应到具有交互性的应用,不同的应用对应于不同的缓存队列,或者所述缓存队列对应到不同用户的特定应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210419277.9A CN102882809B (zh) | 2012-10-26 | 2012-10-26 | 一种基于报文缓存的网络限速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210419277.9A CN102882809B (zh) | 2012-10-26 | 2012-10-26 | 一种基于报文缓存的网络限速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102882809A true CN102882809A (zh) | 2013-01-16 |
CN102882809B CN102882809B (zh) | 2015-07-15 |
Family
ID=47483959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210419277.9A Active CN102882809B (zh) | 2012-10-26 | 2012-10-26 | 一种基于报文缓存的网络限速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102882809B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104917690A (zh) * | 2015-04-15 | 2015-09-16 | 联动优势科技有限公司 | 一种控制报文发送的方法及装置 |
CN105006127A (zh) * | 2015-07-16 | 2015-10-28 | 国家电网公司 | 电量远程采集系统 |
WO2015161552A1 (zh) * | 2014-04-21 | 2015-10-29 | 中兴通讯股份有限公司 | 基于令牌桶的流量监管方法及装置 |
CN103731370B (zh) * | 2013-12-30 | 2016-07-13 | 浙江大学 | 有效降低域内重构过程中网络丢包率的交换机缓存方法 |
CN113098580A (zh) * | 2021-02-25 | 2021-07-09 | 深圳震有科技股份有限公司 | 卫星空口报文缓存与限速处理方法、装置、设备及介质 |
CN114826974A (zh) * | 2022-04-29 | 2022-07-29 | 东风电驱动系统有限公司 | Can报文超时计算方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725732A (zh) * | 2005-06-08 | 2006-01-25 | 杭州华为三康技术有限公司 | 一种报文限速方法 |
US20080089364A1 (en) * | 2006-08-22 | 2008-04-17 | Brilliant Telecommunications, Inc. | Apparatus and method of controlled delay packet forwarding |
CN102223306A (zh) * | 2011-06-17 | 2011-10-19 | 中兴通讯股份有限公司 | 一种报文传输方法及装置 |
CN102710502A (zh) * | 2012-05-12 | 2012-10-03 | 杭州迪普科技有限公司 | 一种基于消耗时间的网络限速方法及装置 |
CN102811176A (zh) * | 2012-08-28 | 2012-12-05 | 迈普通信技术股份有限公司 | 一种数据流量控制方法和装置 |
-
2012
- 2012-10-26 CN CN201210419277.9A patent/CN102882809B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725732A (zh) * | 2005-06-08 | 2006-01-25 | 杭州华为三康技术有限公司 | 一种报文限速方法 |
US20080089364A1 (en) * | 2006-08-22 | 2008-04-17 | Brilliant Telecommunications, Inc. | Apparatus and method of controlled delay packet forwarding |
CN102223306A (zh) * | 2011-06-17 | 2011-10-19 | 中兴通讯股份有限公司 | 一种报文传输方法及装置 |
CN102710502A (zh) * | 2012-05-12 | 2012-10-03 | 杭州迪普科技有限公司 | 一种基于消耗时间的网络限速方法及装置 |
CN102811176A (zh) * | 2012-08-28 | 2012-12-05 | 迈普通信技术股份有限公司 | 一种数据流量控制方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731370B (zh) * | 2013-12-30 | 2016-07-13 | 浙江大学 | 有效降低域内重构过程中网络丢包率的交换机缓存方法 |
WO2015161552A1 (zh) * | 2014-04-21 | 2015-10-29 | 中兴通讯股份有限公司 | 基于令牌桶的流量监管方法及装置 |
CN105024932A (zh) * | 2014-04-21 | 2015-11-04 | 中兴通讯股份有限公司 | 基于令牌桶的流量监管方法及装置 |
CN104917690A (zh) * | 2015-04-15 | 2015-09-16 | 联动优势科技有限公司 | 一种控制报文发送的方法及装置 |
CN105006127A (zh) * | 2015-07-16 | 2015-10-28 | 国家电网公司 | 电量远程采集系统 |
CN113098580A (zh) * | 2021-02-25 | 2021-07-09 | 深圳震有科技股份有限公司 | 卫星空口报文缓存与限速处理方法、装置、设备及介质 |
CN114826974A (zh) * | 2022-04-29 | 2022-07-29 | 东风电驱动系统有限公司 | Can报文超时计算方法、装置、设备及可读存储介质 |
CN114826974B (zh) * | 2022-04-29 | 2024-09-10 | 东风电驱动系统有限公司 | Can报文超时计算方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102882809B (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936510B (zh) | 多路径rdma传输 | |
CN106533970B (zh) | 面向云计算数据中心网络的差分流传输控制方法及装置 | |
US20200280518A1 (en) | Congestion management techniques | |
CN102882809B (zh) | 一种基于报文缓存的网络限速方法及装置 | |
CN108616458B (zh) | 客户端设备上调度分组传输的系统和方法 | |
CN113728595A (zh) | 促进通过网络接口控制器(nic)进行高效主机存储器访问的系统和方法 | |
CN109039936B (zh) | 传输速率控制方法、装置、发送设备和接收设备 | |
CN107948103B (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
US7643420B2 (en) | Method and system for transmission control protocol (TCP) traffic smoothing | |
EP2466824A1 (en) | Service scheduling method and device | |
CN109327288A (zh) | 数据传输加速方法、装置及系统 | |
EP2540042A2 (en) | Communication transport optimized for data center environment | |
CN105812287A (zh) | 分组交换网络中的有效电路 | |
KR20130136558A (ko) | 계층적 프로파일 스케줄링 및 쉐이핑 | |
WO2004036381A2 (en) | System and method for receive queue provisioning | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
CN103841046A (zh) | 基于信誉的链路级流控制的系统和方法 | |
CN103888377A (zh) | 报文缓存方法及装置 | |
JP2019106697A (ja) | 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス | |
CN104052676A (zh) | 一种发送通路及发送通路的数据处理方法 | |
CN103617132B (zh) | 一种基于共享存储的以太网终端发送实现方法及终端装置 | |
CN107846328B (zh) | 基于并发无锁环形队列的网络速率实时统计方法 | |
CN102340442A (zh) | 调整接口接收队列长度的方法及装置 | |
WO2011054224A1 (zh) | 客户端接口机、服务端接口机及其消息处理方法、系统 | |
Liu et al. | PayDebt: Reduce buffer occupancy under bursty traffic on large clusters |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 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 310051 No. 68 in the 6 storey building Patentee before: Hangzhou Dipu Technology Co., Ltd. |