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

文档序号:7853190阅读:231来源:国知局
专利名称:一种报文复制方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及的是一种报文复制方法及装置。
背景技术
现今网络发展速度惊人,网络流量的增长及新业务的出现,需要网络设备具有线速和灵活的处理能力。网络处理器(Network Processor,NP)凭借其高速转发性能、可靠性以及灵活的可编程性,已成为当今网络中数据处理的有效解决方案。多原因报文复制是网络设备经常遇到的问题。对于一个进入网络处理器的报文,会出现很多情况需要复制报文。例如,源MAC学习,端口迁移,端口镜像,流抽样(SFLOW),或者用户配置某种ACL策略复制符合某种特征的报文上送CPU。这些情况下都需要原包正常转发的同时复制多个原始报文。目前现有技术实现多种原因复制的一般方法是网络处理器的包处理单元处理原始报文后获得复制原因和与复制原因相对应的转发信息,将上述复制原因和转发信息携带在原始报文中发送到复制单元,由复制单元进行数据包解析后完成复制。现有复制技术的弊端在于,复制单元接收到报文后,需要从报文中提取复制原因和转发信息,然后写入复制后的报文中。在流量大,复制份数多的情况下,复制器件的逻辑处理负担重,会影响复制速度。因此,如何减轻复制单元的负担,确保网络设备的复制速度是需要解决的问题。

发明内容
本发明所要解决的技术问题是提供一种报文复制方法及装置,能够减轻复制单元的处理负担,提高报文复制效率。为了解决上述技术问题,本发明提供了一种报文复制方法,该方法包括包处理单元接收原始报文并缓存,为所述原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,将所述原始报文的报文头、标识和复制份数的信息发送给复制单元;所述复制单元根据所述复制份数复制所述报文头,将复制的所述报文头和所述标识一起发送给包处理单元;所述包处理单元对接收到的所述复制的报文头,根据所述标识查询到所述复制原因和对应的转发信息,在每一复制的报文头添加一种复制原因及对应的转发信息。进一步地,包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,包括包处理单元将复制原因和对应的转发信息存储在复制信息表中,所述复制信息表以所述原始报文的标识为索引,每一条记录对应所述原始报文的一种复制原因和对应的转发信息。进一步地,包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息时,所述复制信息表中的每一条记录对应一份复制报文,如果针对某种复制原因需要复制N份报文,则在所述复制信息表中产生该复制原因的N条记录。进一步地,所述复制单元在将复制的报文头和所述标识一起发送给所述包处理单元时,还一起发送每一个复制报文头的复制序号,该复制序号用于区分同一个原始报文的不同复制报文头;所述包处理单元接收到复制的报文头后,如果还一起接收到每一个复制报文头的复制序号,则根据所述标识在复制信息表中查询记录条目时,依照各复制报文头的复制序号的顺序去查询和添加复制原因及对应的转发信息。进一步地,所述包处理单元在为每一复制的报文头添加一种复制原因及对应的转发信息后,还根据所述标识查询到缓存的原始报文,将添加了复制原因和转发信息的复制报文头与原始报文的报文载荷进行链接;其中,所述原始报文包括报文头和报文载荷。为了解决上述技术问题,本发明还提供了一种报文复制装置,该装置包括
接收模块,用于包处理单元接收原始报文并缓存,为所述原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,将所述原始报文的报文头、标识和复制份数的信息发送给复制单元;复制模块,用于所述复制单元根据所述复制份数复制所述报文头,将复制的所述报文头和所述标识一起发送给包处理单元;报文编辑模块,用于所述包处理单元对接收到的所述复制的报文头,根据所述标识查询到所述复制原因和对应的转发信息,在每一复制的报文头添加一种复制原因及对应的转发信息。进一步地,所述接收模块,用于包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,包括包处理单元将复制原因和对应的转发信息存储在复制信息表中,所述复制信息表以所述原始报文的标识为索引,每一条记录对应所述原始报文的一种复制原因和对应的转发信息。进一步地,所述接收模块,用于包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息时,所述复制信息表中的每一条记录对应一份复制报文,如果针对某种复制原因需要复制N份报文,则在所述复制信息表中产生该复制原因的N条记录。进一步地,所述复制模块,用于所述复制单元在将复制的报文头和所述标识一起发送给所述包处理单元时,还一起发送每一个复制报文头的复制序号,该复制序号用于区分同一个原始报文的不同复制报文头;所述报文编辑模块,用于所述包处理单元接收到复制的报文头后,如果还一起接收到每一个复制报文头的复制序号,则根据所述标识在复制信息表中查询记录条目时,依照各复制报文头的复制序号的顺序去查询和添加复制原因及对应的转发信息。进一步地,所述报文编辑模块,用于所述包处理单元在为每一复制的报文头添加一种复制原因及对应的转发信息后,还根据所述标识查询到缓存的原始报文,将添加了复制原因和转发信息的复制报文头与原始报文的报文载荷进行链接;其中,所述原始报文包括报文头和报文载荷。与现有技术相比,本发明提供的一种报文复制方法及装置,包处理单元为原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,仅把原始报文的报文头、标识和复制份数的信息发送给复制单元;复制单元只需要根据复制份数复制报文头,然后再将复制好的报文头和标识一起回传给所述包处理单元进行报文的编辑。上述处理方法中复制单元的操作简单,通过减轻复制单元的处理负担,提高了报文的复制效率。


图I为本发明实施例的一种报文复制方法的方法流程图。
图2为本发明实施例的一种报文复制装置的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。如图I所示,本发明实施例提供了一种报文复制方法,该方法包括S10,包处理单元接收原始报文并缓存,为所述原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,将所述原始报文的报文头、标识和复制份数的信息发送给复制单元;S20,所述复制单元根据所述复制份数复制所述报文头,将复制的所述报文头和所述标识一起发送给包处理单元;S30,所述包处理单元对接收到的所述复制的报文头,根据所述标识查询到所述复制原因和对应的转发信息,在每一复制的报文头添加一种复制原因及对应的转发信息。步骤SlO进一步包括下述特点其中,复制原因比如,源MAC学习,端口迁移,端口镜像,流抽样等。转发信息是指和复制原因对应的与报文转发相关的信息;比如,如果复制原因为MAC学习,则转发信息包括源端口信息(即报文是从哪个端口进来的);其中,包处理单元接收原始报文后,对所述原始报文进行处理获得复制原因和与复制原因相对应的转发信息属于现有技术中的包处理单元的常规处理,不是本发明特有的处理方式。其中,如果网络设备基于网络处理器实现报文的转发,则所述包处理单元和复制单元位于网络处理器上。其中,包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,包括包处理单元将复制原因和对应的转发信息存储在复制信息表中,所述复制信息表以所述原始报文的标识为索引,每一条记录对应所述原始报文的一种复制原因和对应的转发信息。其中,包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息时,所述复制信息表中的每一条记录对应一份复制报文,如果针对某种复制原因需要复制N份报文,则在所述复制信息表中产生该复制原因的N条记录;举个例子,假设有三种不同的复制原因A、B、C,包处理单元为接收到的第一条原始报文分配的标识为1,为接收到的第二条原始报文分配的标识为2,包处理单元对第一条原始报文处理后获得了两种复制原因,分别为复制原因A和复制原因B,每一种复制原因的复制份数为I份;包处理单元对第二条原始报文处理后获得了两种复制原因,分别为复制原因A和复制原因C,复制原因A的复制份数为I份,复制原因C的复制份数为2份;在包处理单元保存每一种复制原因和对应的转发信息时,如果采用了复制信息表,则包处理单元在复制信息表的索引“ I ”对应的记录中,存储两条记录,其中第一条记录存储复制原因A和对应的转发信息,第二条记录存储复制原因B和对应的转发信息;包处理单元在复制信息表的索引“2”对应的条目中,存储三条记录,其中第一条记录存储复制原因A和对应的转发信息,第二条记录存储复制原因C和对应的转发信息,第三条记录存储复制原因C和对应的转发信息;步骤S20进一步包括下述特点其中,所述复制单元在将复制的报文头和所述标识一起发送给所述包处理单元时,还一起发送每一个复制报文头的复制序号,该复制序号用于区分同一个原始报文的不、同复制报文头;比如,当复制份数为3份时,第一个复制报文头的复制序号为1,第二个复制报文头的复制序号为2,第三个复制报文头的复制序号为3 ;步骤S30进一步包括下述特点其中,所述包处理单元接收到复制的报文头后,如果还一起接收到每一个复制报文头的复制序号,则根据所述标识在复制信息表中查询记录条目时,依照各复制报文头的复制序号的顺序去查询和添加复制原因及对应的转发信息;比如,当复制份数为2份时,包处理单元接收到复制序号为I的复制报文头,查询所述标识所对应的索引下的第一条记录,添加第一种复制原因及对应的转发信息;接收到复制序号为2的复制报文头,查询所述标识所对应的索引下的第二条记录,添加第二种复制原因及对应的转发信息;其中,所述包处理单元在为每一复制的报文头添加一种复制原因及对应的转发信息后,还根据所述标识查询到缓存的原始报文,将添加了复制原因和转发信息的复制报文头与原始报文的报文载荷进行链接;其中,所述原始报文包括报文头和报文载荷。如图3所示,本发明实施例还提供了一种报文复制装置,该装置包括接收模块,用于包处理单元接收原始报文并缓存,为所述原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,将所述原始报文的报文头、标识和复制份数的信息发送给复制单元;复制模块,用于所述复制单元根据所述复制份数复制所述报文头,将复制的所述报文头和所述标识一起发送给包处理单元;报文编辑模块,用于所述包处理单元对接收到的所述复制的报文头,根据所述标识查询到所述复制原因和对应的转发信息,在每一复制的报文头添加一种复制原因及对应的转发信息。其中,所述接收模块,用于包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,包括包处理单元将复制原因和对应的转发信息存储在复制信息表中,所述复制信息表以所述原始报文的标识为索引,每一条记录对应所述原始报文的一种复制原因和对应的转发信息。
其中,所述接收模块,用于包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息时,所述复制信息表中的每一条记录对应一份复制报文,如果针对某种复制原因需要复制N份报文,则在所述复制信息表中产生该复制原因的N条记录。其中,所述复制模块,用于所述复制单元在将复制的报文头和所述标识一起发送给所述包处理单元时,还一起发送每一个复制报文头的复制序号,该复制序号用于区分同一个原始报文的不同复制报文头;所述报文编辑模块,用于所述包处理单元接收到复制的报文头后,如果还一起接收到每一个复制报文头的复制序号,则根据所述标识在复制信息表中查询记录条目时,依照各复制报文头的复制序号的顺序去查询和添加复制原因及对应的转发信息。其中,所述报文编辑模块,用于所述包处理单元在为每一复制的报文头添加一种复制原因及对应的转发信息后,还根据所述标识查询到缓存的原始报文,将添加了复制原因和转发信息的复制报文头与原始报文的报文载荷进行链接;其中,所述原始报文包括报 文头和报文载荷。上述实施例提供的报文复制方法及装置,包处理单元为原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,仅把原始报文的报文头、标识和复制份数的信息发送给复制单元;复制单元只需要根据复制份数复制报文头,然后再将复制好的报文头和标识一起回传给所述包处理单元进行报文的编辑。上述处理方法中复制单元的操作简单,通过减轻复制单元的处理负担,提高了报文的复制效率。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种报文复制方法,该方法包括 包处理单元接收原始报文并缓存,为所述原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,将所述原始报文的报文头、标识和复制份数的信息发送给复制单元; 所述复制单元根据所述复制份数复制所述报文头,将复制的所述报文头和所述标识一起发送给包处理单元; 所述包处理单元对接收到的所述复制的报文头,根据所述标识查询到所述复制原因和对应的转发信息,在每一复制的报文头添加一种复制原因及对应的转发信息。
2.如权利要求I所述的方法,其特征在于 包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,包括包处理单元将复制原因和对应的转发信息存储在复制信息表中,所述复制信息表以所述原始报文的标识为索引,每一条记录对应所述原始报文的一种复制原因和对应的转发信肩、O
3.如权利要求2所述的方法,其特征在于 包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息时,所述复制信息表中的每一条记录对应一份复制报文,如果针对某种复制原因需要复制N份报文,则在所述复制信息表中产生该复制原因的N条记录。
4.如权利要求2或3所述的方法,其特征在于 所述复制单元在将复制的报文头和所述标识一起发送给所述包处理单元时,还一起发送每一个复制报文头的复制序号,该复制序号用于区分同一个原始报文的不同复制报文头; 所述包处理单元接收到复制的报文头后,如果还一起接收到每一个复制报文头的复制序号,则根据所述标识在复制信息表中查询记录条目时,依照各复制报文头的复制序号的顺序去查询和添加复制原因及对应的转发信息。
5.如权利要求I或2或3所述的方法,其特征在于 所述包处理单元在为每一复制的报文头添加一种复制原因及对应的转发信息后,还根据所述标识查询到缓存的原始报文,将添加了复制原因和转发信息的复制报文头与原始报文的报文载荷进行链接;其中,所述原始报文包括报文头和报文载荷。
6.一种报文复制装置,该装置包括 接收模块,用于包处理单元接收原始报文并缓存,为所述原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,将所述原始报文的报文头、标识和复制份数的信息发送给复制单元; 复制模块,用于所述复制单元根据所述复制份数复制所述报文头,将复制的所述报文头和所述标识一起发送给包处理单元; 报文编辑模块,用于所述包处理单元对接收到的所述复制的报文头,根据所述标识查询到所述复制原因和对应的转发信息,在每一复制的报文头添加一种复制原因及对应的转发信息。
7.如权利要求6所述的装置,其特征在于 所述接收模块,用于包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,包括包处理单元将复制原因和对应的转发信息存储在复制信息表中,所述复制信息表以所述原始报文的标识为索引,每一条记录对应所述原始报文的一种复制原因和对应的转发信息。
8.如权利要求7所述的装置,其特征在于 所述接收模块,用于包处理单元保存处理所述原始报文后获得的每一种复制原因和对应的转发信息时,所述复制信息表中的每一条记录对应一份复制报文,如果针对某种复制原因需要复制N份报文,则在所述复制信息表中产生该复制原因的N条记录。
9.如权利要求7或8所述的装置,其特征在于 所述复制模块,用于所述复制单元在将复制的报文头和所述标识一起发送给所述包处理单元时,还一起发送每一个复制报文头的复制序号,该复制序号用于区分同一个原始报文的不同复制报文头; 所述报文编辑模块,用于所述包处理单元接收到复制的报文头后,如果还一起接收到每一个复制报文头的复制序号,则根据所述标识在复制信息表中查询记录条目时,依照各复制报文头的复制序号的顺序去查询和添加复制原因及对应的转发信息。
10.如权利要求6或7或8所述的装置,其特征在于 所述报文编辑模块,用于所述包处理单元在为每一复制的报文头添加一种复制原因及对应的转发信息后,还根据所述标识查询到缓存的原始报文,将添加了复制原因和转发信息的复制报文头与原始报文的报文载荷进行链接;其中,所述原始报文包括报文头和报文载荷。
全文摘要
本发明公开了一种报文复制方法,包括包处理单元接收原始报文并缓存,为所述原始报文分配一个标识,并保存处理所述原始报文后获得的每一种复制原因和对应的转发信息,将所述原始报文的报文头、标识和复制份数的信息发送给复制单元;所述复制单元根据所述复制份数复制所述报文头,将复制的所述报文头和所述标识一起发送给包处理单元;所述包处理单元对接收到的所述复制的报文头,根据所述标识查询到所述复制原因和对应的转发信息,在每一复制的报文头添加一种复制原因及对应的转发信息。本发明能够减轻复制单元的处理负担,提高报文复制效率。本发明还公开了一种报文复制装置。
文档编号H04L12/56GK102739525SQ20121018882
公开日2012年10月17日 申请日期2012年6月8日 优先权日2012年6月8日
发明者姜海明, 孔玲丽 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1