一种清除缓存拥塞的方法与装置制造方法及图纸

技术编号:21612277 阅读:11 留言:0更新日期:2019-07-13 20:41
一种清除缓存拥塞的方法与装置,通过设置回收门限,并在报文入队过程中根据入队顺序生成排序链表,在缓存使用量达到回收门限后,触发地址快速回收机制。本发明专利技术所提供的地址快速回收机制通过查找排序链表,从最老(即在缓存中最久)的报文开始,快速把占用缓存最长时间的地址先行回收,从而保证非拥塞队列的QoS性能。在回收地址时,以同一队列号下若干报文所组成的缓存分区chunk为单位进行丢弃,可迅速清除占据缓存空间的无用报文,从而进一步保障正常报文的入队与出队秩序。

A Method and Device for Clearing Cache Congestion

【技术实现步骤摘要】
一种清除缓存拥塞的方法与装置
本专利技术涉及数据通信领域,尤其涉及一种针对报文队列的缓存方法与装置。
技术介绍
持续增长的因特网业务,让数据通信领域对数据产品的QoS性能提出了越来越高的要求。目前,各数据产品的缓存容量有限,缓存很容易被拥塞队列堆满,导致QoS性能不达标。当前针对缓存,普遍采用的管理方式是:在报文进入缓存时,根据拥塞等级(高低优先级)以及队列号入队,当报文入队后,等待令牌,在分发令牌时优先满足高优先级报文的需求。这样,缓存中的高优先级报文在获得令牌后,就可以快速出队。但是,这种管理机制下,如果高优先级一直有报文,令牌就会一直分配给高优先级。这样导致的结果是:低优先级进入缓存后,由于高优先级始终占用令牌,而低优先级报文始终缺少令牌,因而低优先级报文始终不能出队,需要一直在缓存中占用缓存空间。长时间下去,低优先级占用的缓存越来越大,这样会导致缓存爆掉或者高优先级也不能入队,影响高优先级的流量,导致QoS性能不足。针对该问题,目前通常的解决方式是:对一直在缓存中始终未出队的报文进行老化或清空,即,将该队列的报文全部丢弃。老化和清空这两种方式都可以将占据在缓存中的报文出队,但这两种方式存在的劣势在于:老化和清空均需要该队列的缓存达到一定的门限后才能进行老化或清空,每次老化或清空一个报文,缓存回收的速度比较慢。为了解决上述问题,目前急需一种能够及时回收缓存的方法,能够快速把长时间占用缓存的地址回收,从而保证非拥塞队列的QoS性能。
技术实现思路
为了解决现有技术存在的不足,本专利技术的目的在于提供一种清除缓存拥塞的方法及装置。首先,为实现上述目的,提出一种清除缓存拥塞的方法,包括以下步骤:第一步,接收报文,并依据报文的队列号或优先级调用对应的缓存分区存储所述报文;以排序链表存储调用所述各个缓存分区的先后顺序;第二步,在缓存的深度大于回收门限时,按照所述排序链表中存储的调用所述各个缓存分区的先后顺序查找出队异常的缓存分区,清空出队异常的所述缓存分区,删除所述排序链表中存储的对应缓存分区;第三步,依次循环所述第一步至所述第二步,直至无新报文入队。进一步,上述的方法在所述第二步中判断所述缓存分区发生出队异常的依据包括:所述缓存分区无队列号或无优先级,或,所述缓存分区所对应的队列号或优先级无授权,或,所述缓存分区所对应的报文未进入出队链表。进一步,上述的方法在所述第二步中出队步骤具体包括:在缓存的深度不大于所述回收门限时,按照所述排序链表的顺序将缓存分区移入出队链表,并在获得授权后,将所述出队链中对应的报文出队。具体的,上述的方法在所述第一步中,存储所述报文的步骤具体包括:依据所述报文的队列号或优先级调用对应的缓存分区;若报文所属队列号或优先级下的缓存分区未填满,则将所述报文顺序存储至未填满的所述缓存分区;若报文所属队列号或优先级下的缓存分区已填满,则建立新的缓存分区存储顺序所述报文。具体而言,上述的方法中的所述排序链表采用双链表结构。其次,为实现上述目的,还提出一种清除缓存拥塞的装置,包括依次连接的入队模块、缓存模块以及出队模块,其特征在于,还包括链表管理模块:所述链表管理模块的输入端同时连接所述入队模块和所述缓存模块,所述链表管理模块的控制端连接所述出队模块;所述链表管理模块用于:根据所述入队模块中报文的队列号或优先级调用所述缓存模块中的缓存分区存储所述报文,并按照入队的顺序更新排序链表;按照所述排序链表的顺序,查找所述出队模块中所述缓存分区的状态,控制所述缓存模块释放出队异常的所述缓存分区并删除所述排序链表中对应的节点。进一步,上述装置中,所述链表管理模块中的排序链表为双链表结构,新入队报文的所对应的缓存分区更新至所述排序链表的尾部。具体的,上述装置中,所述缓存模块以固定大小分为多组存储单元;所述每个缓存分区均包含有地址连续的N组存储单元,N≥1,每个缓存分区至少可存储一个报文;每个队列号或优先级均对应至少一个所述缓存分区。进一步,上述装置中,所述出队模块包括丢弃链表和出队链表;所述出队链表用于存储所述排序链表中最接近链表头且获得授权的所述缓存分区,提取所述缓存模块中该缓存分区所对应的报文并出队;所述丢弃链表用于在所述缓存模块的深度达到回收门限时,存储所述排序链表中最接近链表头而出队异常的缓存分区,提取所述缓存模块中该缓存分区所对应的报文并丢弃。有益效果本专利技术,通过设置回收门限,当缓存使用量达到回收门限后,触发地址快速回收机制:首先通过查找排序链表,从最老(即在缓存中最久)的一组报文(即通过队列号、优先级区分的一类存储于同一块缓存分区内的若干报文)开始回收,保证快速把占用缓存最长时间的地址先行回收,从而保证非拥塞队列的QoS性能。进一步,为保证缓存利用率的均衡性,本专利技术在到达回收门限时,可通过查找出队链表的方式,保证出队速率与入队速率一致,即报文一个一个入队,获得权限的报文一个一个出队。但对于需要丢弃长期占用缓存资源的报文时,本专利技术这是通过查找报文所对应的队列号或优先级,直接舍弃该队列号或优先级下整个缓存分区中的全部报文。因此,可迅速丢弃无用报文,有效保证缓存的利用率。同时,本专利技术在分配缓存分区的阶段,会预先判断报文所述队列号或优先级号下的缓存分区是否已满,仅在一个缓存分区完全填满报文的情况下,才会再分配新的缓存分区。通过这样的方式减少报文入队时申请缓存的频率,进一步提高缓存的利用率。再进一步,本专利技术中的排序链表采用的是双链表的结构,这样直接删除中间节点后依旧能够迅速确定后续节点所对应的先后顺序。排序链表中,将新入队报文的缓存分区更新至排序链表的尾部,由此,直接通过排序链表就可方便地获得占用缓存资源最久的报文,将其舍弃。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,并与本专利技术的实施例一起,用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为根据本专利技术的减少缓存拥塞的方法的流程图;图2为根据本专利技术的减少缓存拥塞的装置的框图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。图1为根据本专利技术的一种清除缓存拥塞的方法,包括以下步骤:第一步,接收报文,并依据报文的队列号或优先级调用对应的缓存分区存储所述报文;同时,以排序链表存储调用所述各个缓存分区的先后顺序;(这步为后面实现地址快速回收机制的基础);第二步,在缓存的深度大于回收门限时,通过丢弃链表执行地址快速回收机制:按照所述排序链表的顺序(即,所述排序链表中存储的各个缓存分区的顺序)查找出队异常的缓存分区移入丢弃链表,清空出队异常的所述缓存分区,同时删除所述排序链表中存储的对应缓存分区;(这样,以删除长期出队异常的一组报文后可实现对缓存深度的更新,后面的报文可及时进入并使用缓存资源);同时,在缓存的深度不大于回收门限时,执行出队步骤:按照所述排序链表的顺序将缓存分区移入出队链表,并在获得授权后,将所述出队链中对应的报文按照RR规则或SP规则出队,同时删除所述排序链表中存储的对应缓存分区;第三步,依次循环所述第一步至所述第二步,直至无新报文入队本文档来自技高网...

【技术保护点】
1.一种清除缓存拥塞的方法,其特征在于,步骤包括:第一步,接收报文,并依据报文的队列号或优先级调用对应的缓存分区存储所述报文;以排序链表存储调用所述各个缓存分区的先后顺序;第二步,在缓存的深度大于回收门限时,按照所述排序链表中存储的调用所述各个缓存分区的先后顺序查找出队异常的缓存分区,清空出队异常的所述缓存分区,删除所述排序链表中存储的对应缓存分区;第三步,依次循环所述第一步至所述第二步,直至无新报文入队。

【技术特征摘要】
1.一种清除缓存拥塞的方法,其特征在于,步骤包括:第一步,接收报文,并依据报文的队列号或优先级调用对应的缓存分区存储所述报文;以排序链表存储调用所述各个缓存分区的先后顺序;第二步,在缓存的深度大于回收门限时,按照所述排序链表中存储的调用所述各个缓存分区的先后顺序查找出队异常的缓存分区,清空出队异常的所述缓存分区,删除所述排序链表中存储的对应缓存分区;第三步,依次循环所述第一步至所述第二步,直至无新报文入队。2.如权利要求1所述的清除缓存拥塞的方法,其特征在于,所述第二步中,判断所述缓存分区发生出队异常的依据包括:所述缓存分区无队列号或无优先级,或,所述缓存分区所对应的队列号或优先级无授权,或,所述缓存分区所对应的报文未进入出队链表。3.如权利要求1所述的清除缓存拥塞的方法,其特征在于,所述第二步中的出队步骤包括:按照所述排序链表的顺序将缓存分区移入出队链表,并在获得授权后,将所述出队链中对应的报文出队。4.如权利要求1所述的清除缓存拥塞的方法,其特征在于,所述第一步中,存储所述报文的步骤包括:依据所述报文的队列号或优先级调用对应的缓存分区;若报文所属队列号或优先级下的缓存分区未填满,则将所述报文顺序存储至未填满的所述缓存分区;若报文所属队列号或优先级下的缓存分区已填满,则建立新的缓存分区存储顺序所述报文。5.如权利要求1至4任一所述的清除缓存拥塞的方法,其特征在于,所述排序链...

【专利技术属性】
技术研发人员:张颖颖李浩郑利
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1