CN102594691B - 一种处理报文的方法及装置 - Google Patents
一种处理报文的方法及装置 Download PDFInfo
- Publication number
- CN102594691B CN102594691B CN201210041923.2A CN201210041923A CN102594691B CN 102594691 B CN102594691 B CN 102594691B CN 201210041923 A CN201210041923 A CN 201210041923A CN 102594691 B CN102594691 B CN 102594691B
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- team
- priority
- processing
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种处理报文的方法及装置,该方法包括:接收到的报文后,判断当前缓存是否达到告警门限,若达到所述告警门限,则判断所述报文的类型是否为指定高优先级,若是,则对所述报文进行入队处理,否则丢弃所述报文。通过本发明能有效的在网络拥塞的情况下,优先保证高优先级报文的无丢弃低延迟传输。
Description
技术领域
本发明涉及数据通信领域,尤其涉及一种确保高优先级报文的方法和装置。
背景技术
在数据通信领域,对数据产品QoS(Quality of Service,服务质量)性能的要求越来越高。流量管理芯片最大的带宽处理能力,支持的队列数等硬性指标直接决定了对缓存容量的要求。
在实际的应用中,由于单板设计面积、芯片管脚数量等因素的影响,决定了在芯片设计中不可能无限大地外挂存储芯片。目前最常用的解决方法是缓存共享机制,即整个***内数据包全部存储在以队列为单位的链表结构中,属于同一个队列的包由指针串联为一个链表。在缓存中存储时,不同队列之间不区分优先级,可以在共享缓存范围内任意存储。
图1为现有技术的报文管理示意图,假定有5个数据报文队列,分别是q1、q2、q3、q4和q5,队列的优先级为q1最高,q5最低,即q1>q2>q3>q4>q5。首先,数据报文的入队顺序如101所示为q5、q3、q1、q2、q4,进入***后数据存入共享缓存102,其中共享缓存102所示的Buffer-q1~Buffer-q5表示这5个队列分别占用共享缓存空间容量的大小,不代表在缓存中的实际存储方式和存储位置。调度器103按照队列优先级的高低进行调度出队,最终的报文输出顺序如104所示为q1、q2、q3、q4、q5。比较Buffer-q1和Buffer-q5可以发现,队列占用的存储空间与队列优先级是没有关系的。当网络发生拥塞,即出口流量小于入口流量时,低优先级队列的出队会受到限制,但随着低优先级报文的继续入队,低优先级队列占用的缓存空间会近一步增高,最恶劣情况是低优先级队列抢占完所有缓存空间,导致高优先级报文无法入队而丢弃。以上示例的流量管理模型换成是N个队列(N为大于1以上的任意自然数)均成立。在数据网络中,有些报文是不允许丢弃的,比如协议报文,为方便下文说明,本文统一称此类报文为确保高优先级报文,相应的称其它报文为普通报文。
基于以上分析,在现有的存储结构下,如果队列之间的缓存相互抢占无法避免,则必然会引起网络中的严重丢包现象,如何在这种网络拥塞情况下保证确保高优先级报文的传输,在现有技术中缺乏相应的解决机制。
发明内容
本发明要解决的技术问题是提供一种处理报文的方法及装置,以在队列数目日益增多及缓存抢占日益严重的流量管理***中,发生网络拥塞的情况下能保证确保高优先级报文的无丢失传输。
为了解决上述技术问题,本发明提供了一种处理报文的方法,包括:
接收到的报文后,判断当前缓存是否达到告警门限,若达到所述告警门限,则判断所述报文的类型是否为指定高优先级,若是,则对所述报文进行入队处理,否则丢弃所述报文。
进一步地,上述方法还具有下面特点:
所述告警门限小于最大缓存容量值。
进一步地,上述方法还具有下面特点:
若所述报文携带有高优先级标识,则判定所述报文的类型为指定高优先级。
进一步地,上述方法还具有下面特点:所述对所述报文进行入队处理包括:
判断指定的高优先级队列的缓存深度是否超过预先配置的队列门限,若未超过,则将所述报文入队到所述高优先级队列;若超过,则丢弃所述报文。
进一步地,上述方法还具有下面特点:所述入队处理后,还包括出队处理,在执行出队处理的过程中包括:
判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。
进一步地,上述方法还具有下面特点:所述入队处理后,还包括出队处理,在执行出队处理的过程中包括:
将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。
为了解决上述问题,本发明还提供了一种处理报文的装置,包括:
判断模块,用于接收到的报文后,判断当前缓存是否达到告警门限,判断所述报文的类型是否为指定高优先级;
入队处理模块,用于在所述判断模块判断达到所述告警门限,且所述报文的类型是指定高优先级的情况下,对所述报文进行入队处理;
丢弃处理模块,用于在所述判断模块判断达到所述告警门限,且所述报文的类型为非指定高优先级的情况下,丢弃所述报文。
进一步地,上述装置还具有下面特点:
所述判断模块是通过判断所述报文是否携带有高优先级标识,来判定所述报文的类型是否为指定高优先级的。
进一步地,上述装置还具有下面特点:
所述入队处理模块,具体用于判断指定的高优先级队列的缓存深度是否超过预先配置的队列门限,若未超过,则将所述报文入队到所述高优先级队列;若超过,则丢弃所述报文。
进一步地,上述装置还具有下面特点:还包括:
出队处理模块,用于判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。
进一步地,上述装置还具有下面特点:还包括:
出队处理模块,用于将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。
综上,本发明提供一种处理报文的方法及装置,能有效的在网络拥塞的情况下,优先保证高优先级报文的无丢弃低延迟传输。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为现有技术的报文管理示意图;
图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,用于维护报文队列的缓存深度,以作为准予入队判决的依据。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种处理报文的方法,包括:
配置队列缓存门限和***级缓存门限;
接收到的报文后,读取队列当前缓存深度;
判断所述缓存深度超过所述队列缓存门限时,丢弃报文;
否则,判断报文类型是否是指定高优先级报文;
是则对所述报文进行入队处理;
否则,读取***级缓存深度;
判断所述***级缓存深度超过所述***级缓存门限时,丢弃报文;
否则,对所述报文进行入队处理。
2.如权利要求1所述的方法,其特征在于:
若所述报文携带有高优先级标识,则判定所述报文的类型为指定高优先级。
3.如权利要求1所述的方法,其特征在于:所述入队处理后,还包括出队处理,在执行出队处理的过程中包括:
判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。
4.如权利要求1所述的方法,其特征在于:所述入队处理后,还包括出队处理,在执行出队处理的过程中包括:
将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。
5.一种处理报文的装置,包括:
配置队列缓存门限和***级缓存门限的模块;
接收到的报文后,读取队列当前缓存深度的模块;
判断所述缓存深度超过所述队列缓存门限时,丢弃报文的模块;
判断所述缓存深度未超过所述队列缓存门限时,判断报文类型是否是指定高优先级报文的模块;
判断报文类型是指定高优先级报文时,对所述报文进行入队处理的模块;
判断报文类型不是指定高优先级报文时,读取***级缓存深度的模块;
判断所述***级缓存深度超过所述***级缓存门限的模块;
判断所述***级缓存深度超过所述***级缓存门限时,丢弃报文的模块;
判断所述***级缓存深度未超过所述***级缓存门限时,对所述报文进行入队处理的模块。
6.如权利要求5所述的装置,其特征在于:
通过判断所述报文是否携带有高优先级标识,来判定所述报文的类型是否为指定高优先级的。
7.如权利要求5所述的装置,其特征在于:还包括:
出队处理模块,用于判断是否存在所述高优先级队列,若存在,则优先调度所述高优先级队列中的报文。
8.如权利要求5所述的装置,其特征在于:还包括:
出队处理模块,用于将待出队的队列以高优先级队列和非高优先级队列进行分组,优先调度高优先级队列组中的队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210041923.2A CN102594691B (zh) | 2012-02-23 | 2012-02-23 | 一种处理报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210041923.2A CN102594691B (zh) | 2012-02-23 | 2012-02-23 | 一种处理报文的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102594691A CN102594691A (zh) | 2012-07-18 |
CN102594691B true CN102594691B (zh) | 2019-02-15 |
Family
ID=46482907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210041923.2A Active CN102594691B (zh) | 2012-02-23 | 2012-02-23 | 一种处理报文的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102594691B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014059576A1 (zh) * | 2012-10-15 | 2014-04-24 | 华为技术有限公司 | 请求报文处理方法以及发送方法、节点和*** |
CN106330758A (zh) * | 2015-06-19 | 2017-01-11 | 中兴通讯股份有限公司 | 一种基于多层队列流控反压的传送方法及装置 |
CN105812285A (zh) * | 2016-04-29 | 2016-07-27 | 华为技术有限公司 | 一种端口拥塞管理方法及装置 |
CN107454014A (zh) * | 2016-05-30 | 2017-12-08 | 中兴通讯股份有限公司 | 一种优先级队列调度的方法及装置 |
JP6664495B2 (ja) * | 2016-08-08 | 2020-03-13 | 三菱電機株式会社 | 伝送装置、システム制御装置、列車伝送システムおよび伝送方法 |
CN108632169A (zh) * | 2017-03-21 | 2018-10-09 | 中兴通讯股份有限公司 | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 |
CN107959637A (zh) * | 2017-10-23 | 2018-04-24 | 新华三技术有限公司 | 报文缓存方法及装置 |
CN109729014B (zh) * | 2017-10-31 | 2023-09-12 | 深圳市中兴微电子技术有限公司 | 一种报文存储方法和装置 |
CN108173784B (zh) * | 2017-12-29 | 2021-12-28 | 湖南恒茂高科股份有限公司 | 一种交换机的数据包缓存的老化方法及装置 |
CN111314240B (zh) * | 2018-12-12 | 2023-04-14 | 深圳市中兴微电子技术有限公司 | 拥塞控制方法及装置、网络设备及存储介质 |
CN111355673A (zh) * | 2018-12-24 | 2020-06-30 | 深圳市中兴微电子技术有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN110493145B (zh) * | 2019-08-01 | 2022-06-24 | 新华三大数据技术有限公司 | 一种缓存方法及装置 |
CN113206800B (zh) * | 2021-03-15 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种报文缓存方法、装置以及网络设备 |
CN113923169A (zh) * | 2021-10-11 | 2022-01-11 | 浙江大华技术股份有限公司 | 报文的过滤方法及装置、存储介质、电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616097A (zh) * | 2009-07-31 | 2009-12-30 | 中兴通讯股份有限公司 | 一种网络处理器输出端口队列的管理方法及*** |
CN102025638A (zh) * | 2010-12-21 | 2011-04-20 | 福建星网锐捷网络有限公司 | 基于优先级的数据传输方法、装置及网络设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100512218C (zh) * | 2006-03-10 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种数据报文的发送方法 |
CN101800699A (zh) * | 2010-02-09 | 2010-08-11 | 上海华为技术有限公司 | 一种丢弃报文的方法及装置 |
-
2012
- 2012-02-23 CN CN201210041923.2A patent/CN102594691B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101616097A (zh) * | 2009-07-31 | 2009-12-30 | 中兴通讯股份有限公司 | 一种网络处理器输出端口队列的管理方法及*** |
CN102025638A (zh) * | 2010-12-21 | 2011-04-20 | 福建星网锐捷网络有限公司 | 基于优先级的数据传输方法、装置及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102594691A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102594691B (zh) | 一种处理报文的方法及装置 | |
TWI510030B (zh) | 用於在客戶端裝置上利用封包服務分類執行封包佇列的系統及方法 | |
EP2677703A2 (en) | Method and device for scheduling queue | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
CN101694631B (zh) | 实时作业调度***及方法 | |
CN110493145A (zh) | 一种缓存方法及装置 | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
US9152482B2 (en) | Multi-core processor system | |
US8428076B2 (en) | System and method for priority scheduling of plurality of message types with serialization constraints and dynamic class switching | |
CN106537858B (zh) | 一种队列管理的方法和装置 | |
WO2017000657A1 (zh) | 一种缓存管理的方法、装置和计算机存储介质 | |
CN106612236B (zh) | 众核网络处理器及其微引擎的报文调度方法、*** | |
CN108337188A (zh) | 通信量和负载感知动态队列管理 | |
CN103338157A (zh) | 一种多核***核间数据报文缓存方法及设备 | |
CN113312160A (zh) | 用于任务分配***中的行为配对的技术 | |
CN109660468A (zh) | 一种端口拥塞管理方法、装置和设备 | |
CN109688070A (zh) | 一种数据调度方法、网络设备及转发单元 | |
CN104935636A (zh) | 网络通道加速方法和*** | |
US8018958B1 (en) | System and method for fair shared de-queue and drop arbitration in a buffer | |
WO2016149945A1 (zh) | 一种生命周期事件的处理方法及vnfm | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
US9128771B1 (en) | System, method, and computer program product to distribute workload | |
US9304706B2 (en) | Efficient complex network traffic management in a non-uniform memory system | |
CN117389766A (zh) | 消息的发送方法及装置、存储介质及电子装置 | |
CN102281202A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |