CN101594305A - 一种报文处理方法及装置 - Google Patents
一种报文处理方法及装置 Download PDFInfo
- Publication number
- CN101594305A CN101594305A CNA2009101083710A CN200910108371A CN101594305A CN 101594305 A CN101594305 A CN 101594305A CN A2009101083710 A CNA2009101083710 A CN A2009101083710A CN 200910108371 A CN200910108371 A CN 200910108371A CN 101594305 A CN101594305 A CN 101594305A
- Authority
- CN
- China
- Prior art keywords
- message
- correct
- control information
- reads
- read
- 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
技术领域
本发明涉及数据通信领域,具体的说,涉及一种报文处理方法及装置。
背景技术
在实际应用中,网络设备需要处理大量的报文数据,其中将正确的报文进行正确的转发,而对错误的报文,需要将其丢弃,以免错误的报文占用线路,从而影响线路的性能。
一般来说,对报文的处理流程为:从接口接收报文数据,将数据写入内部缓存区,同时检查报文的正确性,并将错误标志通过标签的方式打在对应的报文数据上。
由于对报文数据正确性的判断发生在数据写入缓存区之后,所以,当发现报文数据错误时,报文的部分数据或者全部数据已经写入缓存区了。因此,错误报文的丢弃操作需要在接收下游的处理模块来完成。由于缓存区一般采用先进先出队列实现,当错误报文进入队列后,下游的处理模块必须将错误报文读出之后,才能得到后续的正确报文的数据。这样,下游的处理模块的处理效率随着错误报文数量的增加而降低。
发明内容
有鉴于此,本发明提供了一种报文处理方法及装置,能够快速丢弃错误报文,提供整个系统的报文处理能力。
为了解决上述技术问题,本发明采用了如下技术方案:
一种报文处理方法,包括如下步骤:
A、网络转发设备获取报文控制信息,所述报文控制信息包含报文错误标志和报文读取地址指示;
B、网络转发设备根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。
在上述报文处理方法一种实施例中,所述报文读取地址指示包括报文长度及报文缓存首地址,所述步骤B中,对正确报文,根据其报文读取地址指示读取所述正确报文按如下方式进行:
B1、设置读取次数计数器;从报文缓存首地址开始读取所述正确报文,每次读取后,读取次数加一;
B2、当读取次数计数等于报文长度时,读取结束。
在上述报文处理方法一种实施例中,还包括:网络转发设备在报文接收过程进行报文检查,根据检查结果,对报文设置错误标志。
在上述报文处理方法一种实施例中,所述报文检查为循环冗余检查。
在上述报文处理方法一种实施例中,所述报文和所述报文控制信息分别位于数据缓存区和控制缓存区;网络转发设备在数据缓存区和控制缓存区都非满时接收报文。
本发明还公开了一种报文处理装置,包括:
控制信息获取模块,用于获取报文控制信息,所述报文控制信息包含报文错误标志和报文读取地址指示;
报文处理模块,用于根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。
在上述报文处理装置一种实施例中,所述报文读取地址指示包括报文长度及报文缓存首地址,所述报文处理模块包括:
计数读取单元,用于设置读取次数计数,从报文缓存首地址开始读取所述正确报文,每次读取后,读取次数加一;
读取结束单元,用于当读取次数计数等于报文长度时,结束读取。
在上述报文处理方法一种实施例中,还包括:报文检查模块,用于在报文接收过程进行报文检查,根据检查结果,对报文设置错误标志。
本发明通过获取报文控制信息,根据报文控制信息中的报文错误标志和报文读取地址指示进行错误报文的丢弃和正确报文的读取,从而能够快速的丢弃错误报文,提高系统的报文处理能力。
附图说明
图1示例性的描述本发明的系统结构;
图2示例性的描述了本发明的报文接收处理流程;
图3示例性的描述了本发明的报文处理流程。
具体实施方式
下面结合附图对本发明的具体实施方式做详细说明。
参见图1,图1示例性的描述一个网络转发设备的系统结构,在本例中的网络设备中,包括接收模块101、控制缓存区102、数据缓存区103、控制信息获取&报文处理模块104。
接收模块101,当控制缓存区和数据缓存区都非满时,该模块接收报文数据。适宜的,接收模块101还可以设置相关的接收处理功能:例如统计报文数据的字节长度;报文数据的错误检查;在将报文数据写入数据缓冲区后,记录报文数据在缓存区中的起始地址;当报文数据全部写入数据缓存区后,将报文控制信息写入控制缓冲区等等。这些接收处理将在下文详细说明。
控制缓存区102,用于存放报文的控制信息,控制信息例如包括报文的错误标志。
数据缓存区103,用于存放报文数据。
控制信息获取&报文处理模块104,当控制缓存区非空时,该模块发起读控制缓存区操作,得到报文控制信息。判断错误标志,有效则直接丢弃报文,继续判断控制缓存区的状态;否则,读取报文数据并处理。当一个报文处理结束后,继续判断控制缓存区的状态。控制信息获取&报文处理模块104可细分为控制信息获取模块1041及报文处理模块1042。
为描述之便,称报文进入网络转发设备之前的过程为网络转发设备的上游;报文从网络转发设备输出之后的过程为网络转发设备的下游。相应的,在本文中,将上游的各种处理设备统称为上游处理模块,下游的各种处理设备统称为下游处理模块。
网络转发设备对报文的处理主要包括:
1、获取报文控制信息,报文控制信息包含报文错误标志和报文读取地址指示;
2、根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取正确报文。
其中,报文控制信息和报文分别从控制缓存区102和数据缓存区103获取。接收模块101从上游处理模块接收报文数据,将接收到的报文数据写入数据缓冲区103中,并根据接收到的报文数据生成该报文的控制信息,将控制信息写入到控制缓存区102。
报文的控制信息,包括但不限于:报文的错误标志和报文的读取地址指示。其中,报文的错误标志用于标志其对应的报文是否正确,以判断报文是丢弃还是进一步处理;而报文的读取地址指示,则用来指示报文处理模块1042正确的从数据缓存区103读取报文数据。
报文读取地址指示,可以包含报文长度和报文的缓存首地址,其中,报文长度,由接收模块101在接收报文数据时对报文长度进行统计而得到,其用于控制控制信息获取&报文处理模块104读取数据缓存区的次数。报文的缓存首地址,则用于决定从数据缓存区103的何处开始读取报文数据。在将报文写入到数据缓存区103时,记录下报文的缓存首地址,即该报文数据在数据缓存区103中缓存的起始地址。
报文在数据缓存区的起始地址,定义为报文开始标志有效的那一拍的数据在数据缓存区的地址。在接收模块101将数据写入数据缓存区时,数据缓存区的控制逻辑会实时的向接收模块101返回数据缓存区的写地址。接收模块101在将报文开始标志有效的那一拍数据写入数据缓存区的时候,并记录这时的数据缓存区地址,这便是报文在数据缓存区的起始地址。
报文的错误标志,可以由上游处理模块给出,也可以由网络转发设备本身生成。对于前一种方式,上游处理模块可以随着数据在传输的过程中给出,比如数据的奇偶校验信号,也可以在报文数据传输的最后一拍给出,用于指示报文错误与否。由此,报文本身已携带其错误标志信号,因而,网络转发设备在接收到报文时可以直接根据上游处理模块给出的错误标志信号生成报文的错误标志。对于后一种方式,则需要网络转发设备的报文检查模块(图1未示出,适宜的,该模块可以设置于接收模块101中)根据报文内容进行错误检查,并根据检查结果产生错误标志,错误检查方式例如可以是循环冗余检查等。
控制信息获取&报文处理模块104,实时监测控制缓存区102的状态,当控制缓存区102非空时,读取控制缓存区102,得到报文的控制信息。根据控制信息中的错误标志决定下一步的操作,当错误标志有效时,说明报文数据在传输过程中出现错误,则不读取数据缓冲区中相应的报文数据,而是直接读取控制缓存区102中的下一个报文控制信息;否则,如果根据错误标志判断是正确报文,则读取数据缓存区103,将该正确报文读出。
如图2所示,本发明一实施例的报文接收流程包括:
步骤201,判断控制缓存区和数据缓存区是否非满。如果二者都非满表示还能缓存报文数据,则执行步骤202,从上游接收报文数据;否则如果控制缓存区和数据缓存区两者中有一个是满状态,表示不能再缓存数据,则不从上游模块接收数据,继续判断。
步骤202,接收报文数据,统计报文长度。如需错误检查,则对报文数据进行错误检查,同时将报文数据写入数据缓存区,记录报文在数据缓存区的起始地址。
步骤203,判断报文是否接收完毕。如果没有完毕,则继续报文接收;否则,执行204。
步骤204,将控制信息写入控制缓存区,控制信息包含报文长度,错误标志,报文在数据缓存区的起始地址。
步骤205,一个报文缓存完毕,继续判断控制缓存区和数据缓存区的状态,开始新一轮的操作。
如图3所示,本发明一实施例的报文处理流程包含如下步骤:
步骤301,判断控制缓存区非空,如果控制缓存区非空,表示至少有一个报文缓存在数据缓存区中等待处理,则执行步骤302,否则继续判断;
步骤302,由于控制缓存区非空,可以发起读操作,得到报文的控制信息。
步骤303,判断错误标志是否有效。有效表明这个报文有错误,需要丢弃,无需进行处理,直接执行301;否则执行304
步骤304,设置读取次数计数器。给出数据缓存区的读地址和读控制信号,读取数据缓存区;
步骤305,判断报文是否读取完毕,当读取次数计数器等于报文长度信息,表示报文的数据已经从数据缓存区中全部读出,则执行步骤307,结束读取操作,否则执行步骤306。
步骤306,当报文数据没有全部读取完毕,则将读地址加‘1’,继续下一次读操作;
步骤307,由于报文数据已经全部读取完毕,则结束该报文的读取操作,等待下一轮操作。
与现有技术相比,本发明利用控制信息中的错误标志判断报文是否正确,对于正确报文,可以根据读取地址指示,准确的得到正确报文在数据缓存区的存取地址而进行正常读取,从而可以跳过数据缓存区中的错误报文,不需要将错误报文从数据缓冲区中读出。这样,当出现错误报文时,可以节省读取错误报文的时间,提高网络转发设备及其下游处理模块的处理性能,保证不会因为错误报文而导致处理性能下降。而且,由于本发明对报文的存取是按一个报文为单位(控制信息中的报文读取地址指示保证了每一报文的存取相互独立),也可以有效的防止,由于前一个报文数据的存取操作错误而使得后续所有的报文存取都出错。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,但这只是为便于理解而举的实例,不应认为本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,可以做出各种可能的等同改变或替换,这些改变或替换都应属于本发明的保护范围。
Claims (9)
1.一种报文处理方法,其特征在于,包括如下步骤:
A、网络转发设备获取报文控制信息,所述报文控制信息包含报文错误标志和报文读取地址指示;
B、网络转发设备根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。
2.如权利要求1所述的报文处理方法,其特征在于,所述报文读取地址指示包括报文长度及报文缓存首地址,所述步骤B中,对正确报文,根据其报文读取地址指示读取所述正确报文按如下方式进行:
B1、设置读取次数计数器;从报文缓存首地址开始读取所述正确报文,每次读取后,读取次数加一;
B2、当读取次数计数等于报文长度时,读取结束。
3.如权利要求1或2所述的报文处理方法,其特征在于,还包括:网络转发设备在报文接收过程进行报文检查,根据检查结果,对报文设置错误标志。
4.如权利要求3所述的报文处理方法,其特征在于,所述报文检查为循环冗余检查。
5.如权利要求1所述的报文处理方法,其特征在于,所述报文和所述报文控制信息分别位于数据缓存区和控制缓存区;网络转发设备在数据缓存区和控制缓存区都非满时接收报文。
6.一种报文处理装置,其特征在于,包括:
控制信息获取模块,用于获取报文控制信息,所述报文控制信息包含报文错误标志和报文读取地址指示;
报文处理模块,用于根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。
7.如权利要求6所述的报文处理装置,其特征在于,所述报文读取地址指示包括报文长度及报文缓存首地址,所述报文处理模块包括:计数读取单元,用于设置读取次数计数,从报文缓存首地址开始读取所述正确报文,每次读取后,读取次数加一;
读取结束单元,用于当读取次数计数等于报文长度时,结束读取。
8.如权利要求6或7所述的报文处理装置,其特征在于,还包括:报文检查模块,用于在报文接收过程进行报文检查,根据检查结果,对报文设置错误标志。
9.如权利要求8所述的报文处理装置,其特征在于,所述报文检查模块的报文检查为循环冗余检查。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101083710A CN101594305B (zh) | 2009-06-22 | 2009-06-22 | 一种报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101083710A CN101594305B (zh) | 2009-06-22 | 2009-06-22 | 一种报文处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101594305A true CN101594305A (zh) | 2009-12-02 |
CN101594305B CN101594305B (zh) | 2013-02-27 |
Family
ID=41408759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101083710A Active CN101594305B (zh) | 2009-06-22 | 2009-06-22 | 一种报文处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101594305B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103534704A (zh) * | 2012-10-31 | 2014-01-22 | 华为技术有限公司 | 一种处理失效报文的方法、网络设备和处理器 |
CN105337898A (zh) * | 2015-12-03 | 2016-02-17 | 北京浩瀚深度信息技术股份有限公司 | 控制信息与数据分离的双缓存报文处理方法 |
CN108366436A (zh) * | 2012-06-29 | 2018-08-03 | 华为技术有限公司 | 信息处理方法、转发面设备和控制面设备 |
CN113726605A (zh) * | 2021-08-30 | 2021-11-30 | 北京计算机技术及应用研究所 | 一种快速丢弃错误报文的装置及方法 |
CN113839859A (zh) * | 2020-06-23 | 2021-12-24 | 华为技术有限公司 | 一种报文通告的方法以及相关装置 |
-
2009
- 2009-06-22 CN CN2009101083710A patent/CN101594305B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108366436A (zh) * | 2012-06-29 | 2018-08-03 | 华为技术有限公司 | 信息处理方法、转发面设备和控制面设备 |
CN108366436B (zh) * | 2012-06-29 | 2023-05-16 | 华为技术有限公司 | 信息处理方法、转发面设备和控制面设备 |
CN103534704A (zh) * | 2012-10-31 | 2014-01-22 | 华为技术有限公司 | 一种处理失效报文的方法、网络设备和处理器 |
WO2014067099A1 (zh) * | 2012-10-31 | 2014-05-08 | 华为技术有限公司 | 一种处理失效报文的方法、网络设备和处理器 |
CN105337898A (zh) * | 2015-12-03 | 2016-02-17 | 北京浩瀚深度信息技术股份有限公司 | 控制信息与数据分离的双缓存报文处理方法 |
CN113839859A (zh) * | 2020-06-23 | 2021-12-24 | 华为技术有限公司 | 一种报文通告的方法以及相关装置 |
CN113839859B (zh) * | 2020-06-23 | 2023-05-23 | 华为技术有限公司 | 一种报文通告的方法以及相关装置 |
CN113726605A (zh) * | 2021-08-30 | 2021-11-30 | 北京计算机技术及应用研究所 | 一种快速丢弃错误报文的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101594305B (zh) | 2013-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866971B (zh) | 传输数据的装置、系统及方法 | |
CN100568203C (zh) | 利于处理环境的输入/输出处理的方法和系统 | |
RU2559727C2 (ru) | Способ и устройство для обеспечения потоков на основе идентификатора через шину pci express | |
CN105376129B (zh) | 一种1394总线事务层-链路层数据包发送电路及方法 | |
CN100596077C (zh) | 通道化逻辑单通道统计的方法和装置 | |
CN101594305A (zh) | 一种报文处理方法及装置 | |
US10649511B2 (en) | Scalable data collection for system management | |
CN103488565B (zh) | 一种分布式实时测试系统测试数据收集方法 | |
CN101482836A (zh) | 处理系统日志的装置与处理系统日志的方法 | |
CN102331981A (zh) | 一种用于fpga中实现数据无冲突实时存取的方法 | |
CN101529404A (zh) | 用于时间戳消息的方法 | |
CN102437952A (zh) | 多变种Modbus协议报文的管理方法 | |
CN110941582A (zh) | 一种bmc芯片的usb总线结构及其通信方法 | |
CN101854259B (zh) | 一种数据包的计数方法及系统 | |
CN100395737C (zh) | 一种在内存和数字信号处理器之间传送数据的方法 | |
CN109902000A (zh) | 变速多通道调试追踪系统、方法、设备及存储介质 | |
CN110460495B (zh) | 一种水位推进方法、装置、计算节点及存储介质 | |
CN104780123A (zh) | 一种网络包收发处理装置及其设计方法 | |
CN102420749A (zh) | 一种网卡发包功能的实现装置和方法 | |
CN101883046A (zh) | 一种应用于epon终端系统的数据缓存架构 | |
CN102403008B (zh) | 音频播放中数据流断点续接的方法和系统、fifo控制器 | |
CN102147786A (zh) | 一种双端口虚拟fifo数据交换的方法 | |
CN101894005A (zh) | 高速接口向低速接口的异步fifo传输方法 | |
US8645597B2 (en) | Memory block reclaiming judging apparatus and memory block managing system | |
CN101867455A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |