著录项信息
| 专利名称 | 一种基于报文缓存的网络限速方法及装置 |
| 申请号 | CN201210419277.9 | 申请日期 | 2012-10-26 |
| 法律状态 | 暂无 | 申报国家 | 中国 |
| 公开/公告日 | 2013-01-16 | 公开/公告号 | CN102882809A |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | H04L12/861 | IPC分类号 | H;0;4;L;1;2;/;8;6;1查看分类表>
|
| 申请人 | 杭州迪普科技有限公司 | 申请人地址 | 浙江省杭州市滨江区通和路68号中财大厦6层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 杭州迪普科技股份有限公司 | 当前权利人 | 杭州迪普科技股份有限公司 |
| 发明人 | 刘彦静 |
| 代理机构 | 北京博思佳知识产权代理有限公司 | 代理人 | 林祥 |
摘要
本发明公开了一种基于报文缓存的网络限速方法及装置。通过将未到达发送时刻的报文进行缓存,然后通过定时触发和报文触发缓存报文,实现网络限速功能。通过本发明,解决了传统令牌桶限速丢包导致的丢包率高,数据包重传概率大,限速后速率值稳定较慢的缺点,有效的提高了网络带宽利用率。
一种基于报文缓存的网络限速方法及装置\n技术领域\n[0001] 本发明涉及数据网络通信领域中的网络限速技术,尤其涉及一种基于报文缓存的网络限速方法和装置。\n背景技术\n[0002] 随着网络的不断发展,网络在人们生活中的地位不断提升,用户对网络的需求不断发生变化,要求传输的信息种类越来越多,要求提供的服务质量也越来越高。由于各种新型业务不断涌现,大量的视频点播、流媒体、网络游戏等事实业务以及P2P类型业务广泛应用于宽带网络,这些新业务不仅占用带宽大,而且具有实时性,对网络传输能力和服务质量提出了更高的要求,如何更好的控制网络带宽利用率,就成了日益重要的题目。\n[0003] 目前存在的网络限速技术普遍采用令牌桶算法进行报文的限速。如图1所示,首先,系统按照规定的速率往令牌桶中填充相应的令牌。其次,当数据报文到达时,先从令牌桶中获取相应令牌,如果能获取到足够的令牌,则发送数据报文,同时从令牌桶中减去数据报文长度所对应的令牌数;如果不能获取到足够令牌则丢弃该报文。\n[0004] 由上述分析可知,现有技术的缺点主要表现为:(1)将上述现有方法利用到具有传输特性的具体应用进行限速时,超过限速速率的报文将被系统丢弃,会导致发送失败的报文以原速率进行试探重传,所以限速后用户实际使用的带宽小于限速带宽,网络速度变慢。(2)当报文的流入速率远大于限速速率时,系统中会有大量的报文进行重传操作,从而大大降低了带宽利用率。并且限速策略刚生效时,这种重传操作,使得报文交互速率很难快速的稳定在限速值附近,延长了限速后速率的稳定时间。(3)当报文流入的速率比限速速率大很多时,令牌桶的值会在很短的时间内被消耗完,在回填令牌之前会有大量报文因为没有令牌而被丢包,所以令牌桶限速后报文输出的流量非常不均匀。\n发明内容\n[0005] 本发明的目的在于提供一种基于报文缓存的网络限速方法及装置,针对现有的网络限速技术中带宽利用率低且限速后的稳定时间延长等缺陷,提出了一种新的网络限速方法和装置,将未到达发送时刻的报文进行缓存,然后通过定时触发、数据包触发缓存报文输出来实现限速功能。\n[0006] 本发明的技术方案如下:\n[0007] 一种基于报文缓存的网络限速方法,其包括如下步骤:\n[0008] A、根据网络限定速率值V和已发送的第N-1个报文的长度LN-1,计算第N个报文的可发送时刻TN=T(N-1)S+LN-1/V,N为大于1的自然数;TNS表示第N个报文的发送时刻,其中第一个报文的发送时刻T1为系统赋予的初始值;\n[0009] B、如果第N个报文的到达时刻TNA大于等于所述的发送时刻TN,则发送该报文并返回步骤A;\n[0010] C、如果第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN,则将该第N+M个报文缓存,并在TN时刻到达时,发送第N个报文并返回步骤A。\n[0011] 一种基于报文缓存的网络限速装置,其包括以下单元:\n[0012] 计时单元,用于根据网络限定速率值V和已发送的第N-1个报文的长度LN-1,计算第N个报文的可发送时刻TN=T(N-1)S+LN-1/V,N为大于1的自然数;TNS表示第N个报文的发送时刻,其中第一个报文的发送时刻T1为系统赋予的初始值;\n[0013] 报文收发单元,用于,当第N个报文的到达时刻TNA大于等于所述的发送时刻TN时发送该报文;\n[0014] 报文收发单元,用于,当第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN,则将该第N+M个报文缓存,并在TN时刻到达时,发送第N个报文。\n[0015] 本发明和现有技术相比,解决了传统令牌桶限速丢包导致的丢包率高,数据包重传概率大,限速后速率值稳定较慢的缺点,有效的提高了网络带宽利用率。同时,系统对于不同定时时间的统计功能,复用相同的物理资源来实现,能够节省物理资源。\n附图说明\n[0016] 图1为现有技术中一种令牌桶限速流量示意图。\n[0017] 图2为本发明中一种基于报文缓存的网络限速装置逻辑流程图。\n[0018] 图3为本发明实施例中一种定时触发机制示意图。\n[0019] 图4为本发明实施例中一种基于缓存的定时触发机实例制示意图。\n[0020] 图5为本发明一种定时触发机制示意图。\n[0021] 图6为本发明中一种基于缓存的定时触发机制实例示意图。\n[0022] 图7为本发明中一种报文缓存触发机制示意图。\n具体实施方式\n[0023] 本发明应用于网络设备上,本发明的实现可以基于各种常见硬件架构,通常这样网络设备主要包括CPU、内存、网络接口、非易失性存储器和业务硬件,其中业务硬件包括FPGA、CPLD、ASIC等逻辑器件,甚至可能是各种带有子系统的单板。本发明需要使用各个硬件与现有技术并无特别的要求,本发明不再一一详述。\n[0024] 为了更加清楚和明白地表述本发明,以下结合实施例对本发明技术方案进行详细说明。请参考图2所示的本发明中一种基于报文传输的网络限速装置逻辑结构示意图,所述网络限速装置包括计时单元和报文收发单元。请进一步参照图3以及图4,所述的基于报文缓存的网路限速装置在网络设备上运行时,其执行其对应的方法包括如下步骤:\n[0025] 步骤1、在同一种应用报文交互比较频繁时,以第一个报文的到来时刻作为初始值,记为T1a,其发送时刻为报文发送的初始值T1,由于系统中第一个报文到达时立即发送,故可以认为T1a=T1,计时单元根据网络限定速率值V和第一个报文的长度L1,计算第2个报文的可发送时刻T2=T1S+L1/V,系统刷新定时器的时间为L1/V,并以报文的可发送时刻T2为地址存储缓存地址,并在定时器超时时确定T2的到达;本步骤由所述计时单元执行。\n[0026] 举例而言,在一种实施例中当一种具体应用的网络限速值为1Mb/s时,发送一个\n128B的小包需要消耗977us,在同一种应用报文交互比较频繁的时间段内,以第一个报文到来的时刻作为时间轴的初始值0,由计时单元计算第二个报文的可发送时间T2=0+128B/(1Mb/s)=977us,系统刷新定时器的时间为977us,并在定时器超时时确定可以发送第二个报文。\n[0027] 步骤2、如果第二个报文在T2或T2时刻之后到达报文收发单元,则报文收发单元输出第二个报文,然后返回步骤1,由计时单元计算第三个报文的可发送时刻T3;\n[0028] 例如在步骤1中,如图3所示,如果第二个报文在977us或大于977us时到达报文收发单元,则报文收发单元输出第二个报文,且计时单元计算第三个报文的可发送时间T3。\n[0029] 步骤3、如果第二个报文及其后续的M(M为大于等于0的整数)个报文在T2时刻之前到达报文收发单元,判断缓存队列是否有缓存空间,若有,则缓存报文,若否,则将报文做丢弃处理,并在T2时刻到达时触发第二个报文输出,并计算第三个报文的可发送时刻T3;\n前述步骤2以及步骤3由报文收发单元执行。\n[0030] 例如:在步骤1实施例中,如图4所示,考虑到用户有可能会在短时间内发送大量报文的情况,因此需要考虑缓存可能溢出的处理。在优选的实施方式中,如果第二个及其后续报文在977us之前到达报文收发单元,也就是说此时需要缓存报文,在缓存报文之前系统先判断缓存队列是否有缓存空间,若有,则缓存报文,若否,则将报文做丢弃处理,977us到达时触发输出第二个报文,计时单元计算第三个报文的可发送时刻T3,之后以此类推。\n[0031] 请参考图5以及图6,本发明将上述网络限速方法步骤抽象归纳为:\n[0032] 步骤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时刻到达;本步骤有计时单元执行。\n[0033] 步骤B、报文收发单元接收报文并判断输出,如果第N个报文的到达时刻TNA大于等于所述的发送时刻TN,报文收发单元发送该报文并返回步骤A。\n[0034] 步骤C、报文收发单元接收报文并判断输出,如果第N+M(M为大于等于0的整数)个报文的到达时刻T(N+M)A小于所述可发送时刻TN,判断缓存队列是否有缓存空间,若有,则缓存报文,若无,则报文做丢弃处理,并在TN时刻到达时,报文收发单元发送第N个报文并返回步骤A;所述步骤B和步骤C由报文收发单元完成。\n[0035] 在优选的实施方式中,报文收发单元可以根据第N个报文的可发送时间来确定缓存地址在内存中的存放位置,这样可以大大提高从缓存中读取报文的速度。还是基于上述的例子而言,报文收发单元可以在缓存第二个报文时将其缓存到缓存中的某个地址,然后将该缓存地址的值保存在内存中,而内存的地址恰好与第二个报文的可发送时间T2是对应的,在一种简单的实施方式中,完全可以使用977这一数值作为内存的地址。这样一来,当定时器超时的时候,也就是需要发送第二个报文的时候,系统可以快速地通过977来寻找到内存中缓存地址,再根据缓存地址读出第二个报文然后发送出去。在优选的方式中,上述所指的缓存队列对应到具有交互性的应用,不同的应用对应于不同的缓存队列,或者所述缓存队列对应到不同用户的应用,每个缓存队列对应于特定用户的一个特定应用。\n[0036] 在以上定时触发实施方式的基础上,本发明还提供另一种优化实施方式,该实施方式可以与以上定时触发的实施方式结合使用,主要是防止定时器精度不够造成报文发送不及时的问题。\n[0037] 请参考图7,本发明中当限定速率达到百兆级别时,报文发送时间则相应到达ns级别,此时对定时器的精度要求很高,考虑系统调用定时器需要耗费一定的时间,采用定时触发可能会产生误差。本实施方式中系统会自动采用报文缓存触发机制。当第N+Q(Q为大于等于1的自然数)个报文的到达时间T(N+Q)A大于可发送时刻TN时,这说明此时定时器由于前述精度与调用时间的原因没有及时触发第N个报文发送,此时系统发现T(N+Q)A大于可发送时刻TN,则可以缓存当前的新报文并触发缓存队列中第一个报文(也就是第N个报文)的输出;当限定速率达到百兆级别时,在同样的限速策略下报文进入系统的速率可以很好的得到保证,可以有效的执行网络限速技术,减少丢包个数和报文重传数。需要说明的是,本步骤的执行是对定时触发机制的一个补充,定时触发机制一般已经可以满足现有的限速要求,且本步骤的执行与系统装置和定时器的精度配置有关。如果一个系统的定时精度较高,而限速的级别又不是非常高的时候,其完全可以只采取定时触发的机制,这是因为如果定时触发机制总是能够及时触发缓存中的报文输出,也就是说T(N+Q)A大于可发送时刻TN这个条件绝大部分情况都无法被满足,那么报文触发机制会一直无法生效。\n[0038] 本发明利用对同一种网络应用超出限时速率的报文先进行缓存,到达发送时刻时再进行发送,降低了现有技术中由于令牌数目不够导致报文被丢弃后报文重传的概率,能够有效地提高了带宽的利用率,并有效的提高限速后速率值的稳定性。本发明系统对于不同的定时时间采用相同的物理资源来实现,能够有效的节省物理资源。本发明中,为了避免硬件定时触发在高速率级别限速的情况下产生时间精度误差,采用了报文缓存触发机制,能够有效的减少硬件实现的压力。\n[0039] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
法律信息
- 2017-03-01
专利权人的姓名或者名称、地址的变更
专利权人由杭州迪普科技有限公司变更为杭州迪普科技股份有限公司
地址由310051 浙江省杭州市滨江区通和路68号中财大厦6层变更为310051 浙江省杭州市滨江区通和路68号中财大厦6层
- 2015-07-15
- 2013-02-27
实质审查的生效
IPC(主分类): H04L 12/861
专利申请号: 201210419277.9
申请日: 2012.10.26
- 2013-01-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-10-03
|
2012-05-12
| | |
2
| |
2011-10-19
|
2011-06-17
| | |
3
| |
2006-01-25
|
2005-06-08
| | |
4
| |
2012-12-05
|
2012-08-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |