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

文档序号:7704499阅读:110来源:国知局
专利名称:一种报文处理方法及装置的制作方法
技术领域
本发明涉及数据通信领域,具体的说,涉及一种报文处理方法及装置。
背景技术
在实际应用中,网络设备需要处理大量的报文数据,其中将正确的报 文进行正确的转发,而对错误的报文,需要将其丢弃,以免错误的报文占 用线路,从而影响线路的性能。
一般来说,对报文的处理流程为从接口接收报文数据,将数据写入 内部緩存区,同时4全查报文的正确性,并将错误标志通过标签的方式打在 对应的报文数据上。
由于对报文数据正确性的判断发生在数据写入緩存区之后,所以,当 发现报文数据错误时,报文的部分数据或者全部数据已经写入緩存区了 。 因此,错误报文的丢弃操作需要在接收下游的处理模块来完成。由于緩存 区一般采用先进先出队列实现,当错误报文进入队列后,下游的处理模块 必须将错误报文读出之后,才能得到后续的正确报文的数据。这样,下游 的处理模块的处理效率随着错误报文数量的增加而降低。

发明内容
有鉴于此,本发明提供了一种报文处理方法及装置,能够快速丢弃错 误报文,提供整个系统的报文处理能力。
为了解决上述技术问题,本发明采用了如下技术方案
一种报文处理方法,包括如下步骤
A、 网络转发设备获取报文控制信息,所述报文控制信息包含报文错误 标志和报文读耳又地址指示;
B、 网络转发设备根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。
在上述报文处理方法一种实施例中,所述报文读取地址指示包括报文 长度及报文緩存首地址,所述步骤B中,对正确报文,根据其报文读取地
址指示读取所述正确报文按如下方式进行
Bl、设置读取次数计数器;从报文緩存首地址开始读取所述正确报文, 每次读耳又后,读耳又次凄史加一;
B2、当读取次数计数等于报文长度时,读取结束。
在上述才艮文处理方法一种实施例中,还包括网络转发设备在报文接 收过程进行报文检查,根据检查结果,对报文设置错误标志。
在上述报文处理方法一种实施例中,所述报文检查为循环冗余检查。
在上述报文处理方法一种实施例中,所述报文和所述报文控制信息分 别位于数据緩存区和控制緩存区;网络转发设备在数据緩存区和控制緩存 区都非满时接收报文。
本发明还公开了一种报文处理装置,包括
控制信息获取模块,用于获取报文控制信息,所述报文控制信息包含 报文错误标志和报文读取地址指示;
报文处理模块,用于根据报文错误标志判断报文是否正确,对错误报 文直接丟弃,对正确报文,根据其报文读取地址指示读取所述正确报文。
在上述报文处理装置一种实施例中,所述报文读取地址指示包括报文 长度及报文緩存首地址,所述报文处理模块包括
计数读取单元,用于设置读取次数计数,从报文緩存首地址开始读取 所述正确纟艮文,每次读耳又后,读取次数加一;
读取结束单元,用于当读取次数计数等于报文长度时,结束读取。
在上述报文处理方法一种实施例中,还包括报文检查模块,用于在 报文接收过程进行报文检查,根据检查结果,对报文设置错误标志。
本发明通过获取报文控制信息,根据报文控制信息中的报文错误标志 和报文读取地址指示进行错误报文的丢弃和正确报文的读取,从而能够快 速的丢弃错误报文,提高系统的报文处理能力。


图1示例性的描述本发明的系统结构;
图2示例性的描述了本发明的报文接收处理流程;
图3示例性的描述了本发明的报文处理流程。
具体实施例方式
下面结合附图对本发明的具体实施方式
做详细说明。
参见图1,图1示例性的描述一个网络转发设备的系统结构,在本例 中的网络设备中,包括接收模块101、控制緩存区102、数据緩存区103、 控制信息获取&报文处理模块104。
接收模块101,当控制緩存区和数据緩存区都非满时,该模块接收报 文数据。适宜的,接收模块101还可以设置相关的接收处理功能例如统 计报文数据的字节长度;报文数据的错误检查;在将报文数据写入数据緩 冲区后,记录报文数据在緩存区中的起始地址;当报文数据全部写入数据 緩存区后,将报文控制信息写入控制緩沖区等等。这些接收处理将在下文 详细说明。
控制緩存区102,用于存放报文的控制信息,控制信息例如包括报文 的4晉"i吴才示志。
数据緩存区10 3,用于存放报文数据。
控制信息获取&报文处理模块104,当控制緩存区非空时,该模块发起 读控制緩存区操作,得到报文控制信息。判断错误标志,有效则直接丟弃 报文,继续判断控制緩存区的状态;否则,读取"^艮文数据并处理。当一个 报文处理结束后,继续判断控制緩存区的状态。控制信息获取&报文处理模 块104可细分为控制信息获取模块1041及报文处理模块1042。
为描述之便,称报文进入网络转发设备之前的过程为网络转发设备的
的,在本文中,将上游的各种处理设备统称为上游处理^t块,下游的各种 处理设备统称为下游处理;漢块。
网络转发设备对报文的处理主要包括
1、获取报文控制信息,报文控制信息包含报文错误标志和报文读取地址指示;
2、根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正 确报文,根据其报文读取地址指示读取正确报文。
其中,报文控制信息和报文分别从控制緩存区102和数据緩存区103 获取。接收模块101从上游处理模块接收报文数据,将接收到的报文数据 写入数据緩冲区103中,并根据接收到的报文数据生成该报文的控制信息, 将控制信息写入到控制緩存区102。
报文的控制信息,包括但不限于报文的错误标志和报文的读取地址 指示。其中,报文的错误标志用于标志其对应的报文是否正确,以判断报 文是丢弃还是进一步处理;而报文的读取地址指示,则用来指示报文处理 模块1042正确的从数据緩存区103读取报文数据。
报文读取地址指示,可以包含报文长度和报文的緩存首地址,其中, 报文长度,由接收模块101在接收报文数据时对报文长度进行统计而得到, 其用于控制控制信息获取&报文处理模块104读取数据緩存区的次数。报文 的緩存首地址,则用于决定从数据緩存区103的何处开始读取报文数据。 在将报文写入到数据緩存区103时,记录下报文的緩存首地址,即该报文 数据在数据緩存区103中緩存的起始地址。
报文在数据緩存区的起始地址,定义为报文开始标志有效的那一拍的 数据在数据緩存区的地址。在接收模块101将数据写入数据緩存区时,数 据緩存区的控制逻辑会实时的向接收模块101返回数据緩存区的写地址。 接收模块101在将报文开始标志有效的那一拍数据写入数据緩存区的时 候,并记录这时的数据緩存区地址,这便是报文在数据緩存区的起始地址。
报文的错误标志,可以由上游处理模块给出,也可以由网络转发设备 本身生成。对于前一种方式,上游处理^t块可以随着数据在传输的过程中 给出,比如数据的奇偶校验信号,也可以在报文数据传输的最后一拍给出, 用于指示报文错误与否。由此,报文本身已携带其错误标志信号,因而, 网络转发设备在接收到报文时可以直接根据上游处理模块给出的错误标志 信号生成报文的错误标志。对于后一种方式,则需要网络转发设备的报文 检查模块(图1未示出,适宜的,该模块可以设置于接收模块101中)根 据报文内容进行错误检查,并根据检查结果产生错误标志,错误检查方式 例如可以是循环冗余检查等。控制信息获取&报文处理模块104,实时监测控制緩存区102的状态, 当控制緩存区102非空时,读取控制緩存区102,得到报文的控制信息。 根据控制信息中的错误标志决定下一步的操作,当错误标志有效时,说明 报文数据在传输过程中出现错误,则不读取数据緩冲区中相应的报文数据, 而是直接读取控制緩存区102中的下一个报文控制信息;否则,如果根据 错误标志判断是正确报文,则读取数据缓存区103,将该正确报文读出。
如图2所示,本发明一实施例的报文接收流程包括
步骤201,判断控制緩存区和数据緩存区是否非满。如果二者都非满 表示还能緩存报文数据,则执行步骤202,从上游接收报文数据;否则如 果控制缓存区和数据緩存区两者中有 一个是满状态,表示不能再緩存数据, 则不从上游模块接收数据,继续判断。
步骤202,接收报文数据,统计报文长度。如需错误检查,则对报文 数据进行错误检查,同时将报文数据写入数据緩存区,记录报文在数据緩 存区的起始地址。
步骤203,判断报文是否接收完毕。如果没有完毕,则继续报文接收; 否则,执行204。
步骤204,将控制信息写入控制緩存区,控制信息包含报文长度,错 误标志,报文在数据緩存区的起始地址。
步骤205, 一个4艮文緩存完毕,继续判断控制緩存区和数据緩存区的 状态,开始新一轮的操作。
如图3所示,本发明一实施例的报文处理流程包含如下步骤
步骤301,判断控制緩存区非空,如果控制緩存区非空,表示至少有 一个报文緩存在数据緩存区中等待处理,则执行步骤302,否则继续判断;
步骤302,由于控制缓存区非空,可以发起读操作,得到报文的控制
4吕息。
步骤303,判断错误标志是否有效。有效表明这个报文有错误,需要 丢弃,无需进行处理,直接执行301;否则执行304
步骤304,设置读取次数计数器。给出数据緩存区的读地址和读控制 信号,读取数据緩存区;
步骤305,判断报文是否读取完毕,当读取次数计数器等于报文长度
8信息,表示报文的数据已经从数据缓存区中全部读出,则执行步骤307, 结束读取操作,否则执行步骤306。
步骤306,当才艮文数据没有全部读取完毕,则将读地址加T,继续 下一次读^^喿作;
步骤307,由于报文数据已经全部读取完毕,则结束该报文的读取操 作,等待下一轮操作。
与现有技术相比,本发明利用控制信息中的错误标志判断报文是否正 确,对于正确报文,可以根据读取地址指示,准确的得到正确报文在数据 緩存区的存取地址而进行正常读取,从而可以跳过数据緩存区中的错误报 文,不需要将错误报文从数据緩冲区中读出。这样,当出现错误报文时, 可以节省读取错误才艮文的时间,提高网络转发设备及其下游处理模块的处 理性能,保证不会因为错误报文而导致处理性能下降。而且,由于本发明 对报文的存取是按一个报文为单位(控制信息中的报文读取地址指示保证 了每一报文的存取相互独立),也可以有效的防止,由于前一个报文数据的 存取操作错误而使得后续所有的报文存取都出错。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,但这只是为便于理解而举的实例,不应认为本发明的具体实施只局限 于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本 发明构思的前提下,可以做出各种可能的等同改变或替换,这些改变或替 换都应属于本发明的保护范围。
权利要求
1.一种报文处理方法,其特征在于,包括如下步骤A、网络转发设备获取报文控制信息,所述报文控制信息包含报文错误标志和报文读取地址指示;B、网络转发设备根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。
2. 如权利要求1所述的报文处理方法,其特征在于,所述报文读取地 址指示包括报文长度及报文緩存首地址,所述步骤B中,对正确报 文,根据其报文读取地址指示读取所述正确报文按如下方式进行 Bl、设置读取次数计数器;从报文緩存首地址开始读取所述正确报 文,每次读耳又后,读耳又次数加一;B2、当读取次数计数等于报文长度时,读取结束。
3. 如权利要求1或2所述的报文处理方法,其特征在于,还包括网 络转发设备在报文接收过程进行报文检查,根据检查结果,对报文 设置错误标志。
4. 如权利要求3所述的报文处理方法,其特征在于,所述报文检查为 循环冗余4企查。
5. 如权利要求1所述的报文处理方法,其特征在于,所述报文和所述 报文控制信息分别位于数据緩存区和控制緩存区;网络转发设备在 数据緩存区和控制緩存区都非满时接收报文。
6. —种报文处理装置,其特征在于,包括 控制信息获取模块,用于获取报文控制信息,所述报文控制信息包 含报文错误标志和报文读取地址指示;报文处理模块,用于根据报文错误标志判断报文是否正确,对错误 报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正 确才艮文。
7. 如权利要求6所述的报文处理装置,其特征在于,所述报文读取地 址指示包括报文长度及报文緩存首地址,所述报文处理模块包括计数读取单元,用于设置读取次数计数,从报文緩存首地址开始读取所述正确纟艮文,每次读耳又后,读耳又次^:加一;读取结束单元,用于当读取次数计数等于报文长度时,结束读取。
8. 如权利要求6或7所述的报文处理装置,其特征在于,还包括报 文检查模块,用于在报文接收过程进行报文检查,根据检查结果, 对报文设置错误标志。
9. 如权利要求8所述的报文处理装置,其特征在于,所述报文检查模 块的报文检查为循环冗余检查。
全文摘要
本发明公开了一种报文处理方法及装置,所述方法包括如下步骤网络转发设备获取报文控制信息,所述报文控制信息包含报文错误标志和报文读取地址指示;网络转发设备根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。所述装置,包括控制信息获取模块,用于获取报文控制信息,所述报文控制信息包含报文错误标志和报文读取地址指示;报文处理模块,用于根据报文错误标志判断报文是否正确,对错误报文直接丢弃,对正确报文,根据其报文读取地址指示读取所述正确报文。本发明能够快速的丢弃错误报文,提高系统的报文处理能力。
文档编号H04L12/56GK101594305SQ20091010837
公开日2009年12月2日 申请日期2009年6月22日 优先权日2009年6月22日
发明者邱圣斌 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1