一种处理报文的方法及装置的制作方法

文档序号:7890044阅读:159来源:国知局
专利名称:一种处理报文的方法及装置的制作方法
技术领域
本发明涉及数据通信领域,尤其涉及一种确保高优先级报文的方法和装置。
背景技术
在数据通信领域,对数据产品QoS(Quality of Service,服务质量)性能的要求越来越高。流量管理芯片最大的带宽处理能力,支持的队列数等硬性指标直接决定了对缓存容量的要求。在实际的应用中,由于单板设计面积、芯片管脚数量等因素的影响,决定了在芯片设计中不可能无限大地外挂存储芯片。目前最常用的解决方法是缓存共享机制,即整个系统内数据包全部存储在以队列为单位的链表结构中,属于同一个队列的包由指针串联为一个链表。在缓存中存储时,不同队列之间不区分优先级,可以在共享缓存范围内任意存储。图I为现有技术的报文管理示意图,假定有5个数据报文队列,分别是ql、q2、q3、 q4和q5,队列的优先级为ql最高,q5最低,即ql > q2 > q3 > q4 > q5。首先,数据报文的入队顺序如101所示为q5、q3、ql、q2、q4,进入系统后数据存入共享缓存102,其中共享缓存 102所示的Buffer-ql Buffer_q5表示这5个队列分别占用共享缓存空间容量的大小,不代表在缓存中的实际存储方式和存储位置。调度器103按照队列优先级的高低进行调度出队,最终的报文输出顺序如104所示为ql、q2、q3、q4、q5。比较Buffer-ql和Buffer_q5可以发现,队列占用的存储空间与队列优先级是没有关系的。当网络发生拥塞,即出口流量小于入口流量时,低优先级队列的出队会受到限制,但随着低优先级报文的继续入队,低优先级队列占用的缓存空间会近一步增高,最恶劣情况是低优先级队列抢占完所有缓存空间, 导致高优先级报文无法入队而丢弃。以上示例的流量管理模型换成是N个队列(N为大于I 以上的任意自然数)均成立。在数据网络中,有些报文是不允许丢弃的,比如协议报文,为方便下文说明,本文统一称此类报文为确保高优先级报文,相应的称其它报文为普通报文。基于以上分析,在现有的存储结构下,如果队列之间的缓存相互抢占无法避免,则必然会引起网络中的严重丢包现象,如何在这种网络拥塞情况下保证确保高优先级报文的传输,在现有技术中缺乏相应的解决机制。

发明内容
本发明要解决的技术问题是提供一种处理报文的方法及装置,以在队列数目日益增多及缓存抢占日益严重的流量管理系统中,发生网络拥塞的情况下能保证确保高优先级报文的无丢失传输。为了解决上述技术问题,本发明提供了一种处理报文的方法,包括接收到的报文后,判断当前缓存是否达到告警门限,若达到所述告警门限,则判断所述报文的类型是否为指定高优先级,若是,则对所述报文进行入队处理,否则丢弃所述报文。进一步地,上述方法还具有下面特点
所述告警门限小于最大缓存容量值。进一步地,上述方法还具有下面特点若所述报文携带有高优先级标识,则判定所述报文的类型为指定高优先级。进一步地,上述方法还具有下面特点所述对所述报文进行入队处理包括判断指定的高优先级队列的缓存深度是否超过预先配置的队列门限,若未超过, 则将所述报文入队到所述高优先级队列;若超过,则丢弃所述报文。进一步地,上述方法还具有下面特点所述入队处理后,还包括出队处理,在执行出队处理的过程中包括判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。进一步地,上述方法还具有下面特点所述入队处理后,还包括出队处理,在执行出队处理的过程中包括将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。为了解决上述问题,本发明还提供了一种处理报文的装置,包括判断模块,用于接收到的报文后,判断当前缓存是否达到告警门限,判断所述报文的类型是否为指定高优先级;入队处理模块,用于在所述判断模块判断达到所述告警门限,且所述报文的类型是指定高优先级的情况下,对所述报文进行入队处理;丢弃处理模块,用于在所述判断模块判断达到所述告警门限,且所述报文的类型为非指定高优先级的情况下,丢弃所述报文。进一步地,上述装置还具有下面特点所述判断模块是通过判断所述报文是否携带有高优先级标识,来判定所述报文的类型是否为指定高优先级的。进一步地,上述装置还具有下面特点所述入队处理模块,具体用于判断指定的高优先级队列的缓存深度是否超过预先配置的队列门限,若未超过,则将所述报文入队到所述高优先级队列;若超过,则丢弃所述报文。进一步地,上述装置还具有下面特点还包括出队处理模块,用于判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。进一步地,上述装置还具有下面特点还包括出队处理模块,用于将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。综上,本发明提供一种处理报文的方法及装置,能有效的在网络拥塞的情况下,优先保证高优先级报文的无丢弃低延迟传输。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。图I为现有技术的报文管理示意图;图2为本发明实施例的一种处理报文的方法的流程图;图3是本发明一应用示例的处理报文的方法的流程图;图4为本实施例的缓存门限配置的示意图;图5为本发明实施例提供的一种处理报文的装置的示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。图2为本发明实施例的一种处理报文的方法的流程图,如图2所示,本实施例的方法包括下面步骤S11、接收到的报文后,判断当前缓存是否达到告警门限,若达到所述告警门限,则执行步骤S12 ;若未达到所述告警门限,则正常处理报文;S12、判断所述报文的类型是否为指定高优先级,若是,则执行步骤S13,否则丢弃所述报文;S13、对所述报文进行入队处理。图3是本发明一应用示例的处理报文的方法的流程图,如图3所示,包括下面步骤步骤S201,配置队列缓存门限,包含普通队列和确保高优先级队列;队列缓存门限是指队列分配的允许最多占用的缓存深度,每个队列根据实际的系统需求允许配置不同的门限值。高优先级队列、普通队列的门限执行的是第一级判断,第一级判决为允许时执行第二级判断如果达到最大缓存门限那么不管是高优先级还是普通队列都要丢包,如果达到系统级门限普通队列报文必须丢包,高优先级队列则不参与系统级门限判断步骤S202,配置系统级缓存门限;系统级缓存门限,需要根据整个系统中设置的最大缓存容量设置一个小于最大缓存容量的值。图4为本实施例的缓存门限配置的示意图,系统级缓存门限配置值需小于最大缓存容量,整个缓存空间被系统级缓存门限分成两部分低于系统级缓存门限的部分为通用缓存空间21,普通报文队列和确保高优先级报文队列均可占用;高于系统级缓存门限的部分为确保高优先级报文的独有缓存空间22。确保高优先级报文是指进入系统时自身携带高优先级标识的报文,通过此标识来区分是确保高优先级报文与普通报文。在系统中的缓存余量充裕时,高优先级报文与普通报文均能按照各自配置的队列深度执行入队或者丢弃,当系统Buffer中的缓存达到告警门限(即系统级缓存门限)时, 高优先级报文确保机制功能启动,实行普通报文的预判丢弃来优先满足高优先级报文的缓存占用需求。
步骤S203,系统接收报文,读取队列当前缓存深度;步骤S204,判断队列缓存深度,超过配置门限执行S208,否则执行步骤S205 ;步骤S205,判断报文类型是否是高优先级报文,若是,则执行S209,若不是高优先级报文,是普通报文,则执行S206 ;步骤S206,读取系统级缓存深度;步骤S207,判断系统级缓存深度,超过配置的系统级缓存门限,判决该报文不满足入队条件,则执行S208,否则判决该报文满足入队条件,执行步骤S209 ;步骤S208,丢弃报文;步骤S209,进入缓存Buffer存储;步骤S210,根据报文长度维护队列深度;步骤S211,维护系统深度;步骤S212,执行入队处理,申请空闲的缓存空间,将报文存入缓存Buffer,所有满足出队条件的队列排队进入出队处理流程;步骤S213,执行出队调度;将需要出队的队列分为两个组确保高优先级队列组和普通队列组,优先调度确保高优先级队列组中的队列。只有当确保高优先级队列组中的报文全部调度完成才允许调度普通队列组中的报文。所有被允许出队的报文根据出队报文的信息从缓存Buffer中读取该报文输出,释放队列缓存并更新该队列的队列深度。实行高优先级报文与普通报文分组出队是确保高优先级报文无丢包、低时延的一种补充机制,在高优先级报文组中的队列实行RR(时间片轮转法)调度机制,在普通报文组中的队列实行RR调度,两组之间实现优先级调度。步骤S214,释放系统缓存;步骤S215,释放队列缓存。图5为本发明实施例提供的一种处理报文的装置的示意图,如图5所示,本实施例的装置包括判断模块301,用于接收到的报文后,判断当前缓存是否达到告警门限,判断所述报文的类型是否为指定高优先级;入队处理模块303,用于在所述判断模块判断达到所述告警门限,且所述报文的类型是指定高优先级的情况下,对所述报文进行入队处理;丢弃处理模块302,用于在所述判断模块判断达到所述告警门限,且所述报文的类型为非指定高优先级的情况下,丢弃所述报文。 本实施例的装置还可以包括出队处理模块304,用于判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。出队处理模块304用于完成报文的出队调度,根据报文队列的优先级属性,执行高优先级先调度出队、低优先级后调度出队的调度规则,确保高优先级报文完全出队,无丢弃。其中,所述判断模块301是通过判断所述报文是否携带有高优先级标识,来判定所述报文的类型是否为指定高优先级的。
其中,所述入队处理模块303,具体用于判断指定的高优先级队列的缓存深度是否超过预先配置的队列门限,若未超过,则将所述报文入队到所述高优先级队列;若超过,则丢弃所述报文。本实施例的装置还可以包括缓存模块306,用于存储入队的报文数据;缓存深度维护模块305,用于维护报文队列的缓存深度,以作为准予入队判决的依据。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种处理报文的方法,包括接收到的报文后,判断当前缓存是否达到告警门限,若达到所述告警门限,则判断所述报文的类型是否为指定高优先级,若是,则对所述报文进行入队处理,否则丢弃所述报文。
2.如权利要求I所述的方法,其特征在于所述告警门限小于最大缓存容量值。
3.如权利要求I所述的方法,其特征在于若所述报文携带有高优先级标识,则判定所述报文的类型为指定高优先级。
4.如权利要求1-3任一项所述的方法,其特征在于所述对所述报文进行入队处理包括判断指定的高优先级队列的缓存深度是否超过预先配置的队列门限,若未超过,则将所述报文入队到所述高优先级队列;若超过,则丢弃所述报文。
5.如权利要求4所述的方法,其特征在于所述入队处理后,还包括出队处理,在执行出队处理的过程中包括判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。
6.如权利要求4所述的方法,其特征在于所述入队处理后,还包括出队处理,在执行出队处理的过程中包括将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。
7.一种处理报文的装置,包括判断模块,用于接收到的报文后,判断当前缓存是否达到告警门限,判断所述报文的类型是否为指定高优先级;入队处理模块,用于在所述判断模块判断达到所述告警门限,且所述报文的类型是指定高优先级的情况下,对所述报文进行入队处理;丢弃处理模块,用于在所述判断模块判断达到所述告警门限,且所述报文的类型为非指定高优先级的情况下,丢弃所述报文。
8.如权利要求7所述的装置,其特征在于所述判断模块是通过判断所述报文是否携带有高优先级标识,来判定所述报文的类型是否为指定高优先级的。
9.如权利要求7所述的装置,其特征在于所述入队处理模块,具体用于判断指定的高优先级队列的缓存深度是否超过预先配置的队列门限,若未超过,则将所述报文入队到所述高优先级队列;若超过,则丢弃所述报文。
10.如权利要求7-9任一项所述的装置,其特征在于还包括出队处理模块,用于判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。
11.如权利要求7-9任一项所述的装置,其特征在于还包括出队处理模块,用于将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。
全文摘要
本发明提供一种处理报文的方法及装置,该方法包括接收到的报文后,判断当前缓存是否达到告警门限,若达到所述告警门限,则判断所述报文的类型是否为指定高优先级,若是,则对所述报文进行入队处理,否则丢弃所述报文。通过本发明能有效的在网络拥塞的情况下,优先保证高优先级报文的无丢弃低延迟传输。
文档编号H04L12/56GK102594691SQ20121004192
公开日2012年7月18日 申请日期2012年2月23日 优先权日2012年2月23日
发明者刘建立, 曾敏, 杨洁伟, 王晓明 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1