CN109120533A - 一种报文发送方法及路由设备 - Google Patents
一种报文发送方法及路由设备 Download PDFInfo
- Publication number
- CN109120533A CN109120533A CN201811377803.3A CN201811377803A CN109120533A CN 109120533 A CN109120533 A CN 109120533A CN 201811377803 A CN201811377803 A CN 201811377803A CN 109120533 A CN109120533 A CN 109120533A
- Authority
- CN
- China
- Prior art keywords
- message
- buffering area
- routing device
- buffer
- information
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例提供一种报文发送方法及路由设备,涉及通信领域,用以解决现有的路由设备在使用端口镜像功能的过程中,由于镜像报文的拷贝转发造成buffer被堆积占用,而导致路由设备转发功能异常的问题。该方法包括:接收报文,该报文的输出端口包括目的输出端口和镜像输出端口;将报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区,该目标报文头信息是路由设备基于镜像输出端口的端口信息对报文的报文头信息进行修改后得到的报文头信息;通过目的输出端口输出该报文,并通过镜像输出端口输出该目标报文头信息和该报文的报文数据。
Description
技术领域
本发明涉及通信领域,尤其涉及一种报文发送方法及路由设备。
背景技术
路由设备作为转发设备,承载了网络中的各种流量。一般的,对于需要监控或者分析的报文流量,路由设备通过使用端口镜像功能将指定接口上的报文通过另一个接口发送出去,以实现报文的抓取。
在现有技术中,路由设备主要使用buffer(缓冲区)来装载需要收发的报文。示例性的,以接收方向为例,路由设备的原端口上每一个需要镜像转发的报文,都会根据报文的长度申请一个buffer,将原报文内容拷贝到新申请的buffer中,然后根据镜像端口修改报文头部信息,最后将修改后的镜像报文发送出去。而原报文继续走转发流程进行发送,即原报文的转发是在镜像报文成功发送之后再进行后续转发流程。
然而,由于镜像报文的buffer拷贝工作极大消耗了处理器时间,且由于报文长度的不一致性,使得占用的处理器时间也会随机。这就导致了原报文得不到及时处理,进而导致buffer被堆积占用无法及时处理释放,后续报文就会因为buffer不足而丢包,导致设备正常转发功能的异常。
发明内容
本发明的实施例提供一种报文发送方法及路由设备,用以解决现有的路由设备在使用端口镜像功能的过程中,由于镜像报文的拷贝转发造成buffer被堆积占用,而导致路由设备转发功能异常的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种报文发送方法,应用于路由设备,所述方法包括:
接收报文,所述报文的输出端口包括目的输出端口和镜像输出端口;
将所述报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区,所述目标报文头信息是所述路由设备基于所述镜像输出端口的端口信息对所述报文的报文头信息进行修改后得到的报文头信息;
通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据。
进一步可选的,所述将所述报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区之前,所述方法还包括:
根据所述报文的报文长度,从第一缓冲区池中申请一个第三缓冲区;其中,所述第三缓冲区是由所述第一缓冲区和所述第二缓冲区组成。
可选的,所述通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的数据信息之后,所述方法还包括:
释放所述第三缓冲区。
可选的,所述通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之前,所述方法还包括:
根据所述报文的报文长度,从第一缓冲区池中申请一个第一缓冲区;
从第二缓冲区池中申请一个第二缓冲区。
进一步可选的,所述方法还包括:
所述通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之后,所述方法还包括:释放所述第二缓冲区;
所述通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之后,所述方法还包括:释放所述第一缓冲区。
第二方面,提供一种路由设备,包括:
接收模块,用于接收报文,所述报文的输出端口包括目的输出端口和镜像输出端口;
缓存模块,用于将所述接收模块接收到的所述报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区,所述目标报文头信息是所述路由设备基于所述镜像输出端口的端口信息对所述报文的报文头信息进行修改后得到的报文头信息;
输出模块,用以通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据。
可选的,所述路由设备还包括:
申请模块,用于根据所述接收模块接收到的所述报文的报文长度,从第一缓冲区池中申请一个第三缓冲区;其中,所述第三缓冲区是由所述第一缓冲区和所述第二缓冲区组成。
进一步可选的,所述路由设备还包括:
释放模块,用于释放所述第三缓冲区。
可选的,所述路由设备还包括:
申请模块,用于根据所述接收模块接收到的所述报文的报文长度,从第一缓冲区池中申请一个第一缓冲区;
所述申请模块,还用于从第二缓冲区池中申请一个第二缓冲区。
进一步可选的,所述路由设备还包括:
释放模块,用于在所述输出模块通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之后,释放所述第二缓冲区;
所述释放模块,还用于在所述输出模块通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之后,释放所述第一缓冲区。
在本发明实施例中,在接收到的报文的输出端口包括目的输出端口和镜像输出端口的情况下,将报文缓存至第一缓冲区,将目标报文头信息(即基于镜像输出端口的端口信息对该报文的报文头信息进行修改后所得到的报文头信息)缓存至第二缓冲区,然后,通过该目的输出端口输出该报文,并通过该镜像输出端口输出该目标报文头信息和该报文的报文数据,使得路由设备仅需要对目标报文头信息进行buffer申请和填充,来完成镜像报文的转发,从而可以在保证路由设备的转发能力不被影响的情况下完成了端口镜像的功能,不仅保证了路由设备的转发能力不被降低,还提高了路由器数据转发的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的报文发送方法的流程示意图;
图2为本发明实施例提供的路由设备的结构示意图之一;
图3为本发明实施例提供的路由设备的结构示意图之二;
图4为本发明实施例提供的路由设备的结构示意图之三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本文中的“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“多个”是指两个或多于两个。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能或作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
本发明实施例提供的报文发送方法的执行主体可以为路由设备,也可以为该路由设备中的中央处理器(Central Processing Unit,CPU)或者可以为该路由设备中的控制单元或者功能模块,本发明对此不做限定。
为了使本领域的技术人员更好的理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
本发明实施例提供一种报文发送方法,如图1所示,该方法包括如下步骤:
步骤101:路由设备接收报文。
本发明实施例中,上述的报文的输出端口包括目的输出端口和镜像输出端口,即本发明所涉及的报文不仅需要在该报文对应的目的输出端口输出,还需要根据镜像配置信息将报文通过镜像输出端口来输出,进而实现报文的抓取。
步骤102:路由设备将报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区。
在本发明实施例中,上述的目标报文头信息是路由设备基于镜像输出端口的端口信息对该报文的报文头信息进行修改后得到的报文头信息。
在本发明实施例中,上述的第二缓冲区的长度大于或等于一个报文的报文头长度(通常为14字节)。优选的,第二缓冲区的长度为20字节。
在本发明实施例中,承载一个报文的缓冲区通常包括三个部分,即由报文头部、报文数据以及报文描述符组成。其中,报文描述符用于表示该报文在转发过程中所需的信息或者状态。
示例性的,上述的报文描述符通常包括下述三个字段:FreeFlag字段、FragMent字段以及UsedFlag字段。其中,FreeFlag字段用于指示报文发送完成后是否将该buffer释放回buffer池,例如,FreeFlag字段中的内容为1时表示释放,FreeFlag字段中的内容为0时表示释放完毕,即一个完整报文发送完成。FragMent字段用于指示报文是否分片发送,例如,若FragMent字段中的内容为1,则认为在发送该报文一个分片的情况下,路由设备将继续按照后续描述符的内容进行报文发送,直至FragMent标识指示一个完整报文的发送完成为止。UsedFlag字段用于指示路由设备在完成报文发送之后可对该UsedFlag字段按照指定操作进行更改,当不需要进行此操作时,此字段不赋值即可。
可选的,本发明实施例通过在现有的报文描述符中增加一个mirroFlag字段,该mirroFlag字段用于表示该报文是否参与镜像。这样,当路由设备接收到该报文后,若确定该报文中的mirroFlag字段用于表征该报文参数镜像,则只需根据镜像规则对该报文的报文头信息进行修改即可,而无需修改报文数据,从而可以避免对报文的报文数据的重复拷贝。
步骤103:路由设备通过目的输出端口输出该报文,并通过镜像输出端口输出该目标报文头信息和该报文的报文数据。
其中,上述的报文的报文数据是指该报文的有效内容。上述的目标报文头信息和该报文的报文数据可以组成该报文的镜像报文。
可选的,本发明实施例可以通过以下两种实现方式来实现本方案。
第一种可能的实现方式:
在本发明实施例中,上述的步骤102之前,该方法还包括:
步骤A1:路由设备根据报文的报文长度,从第一缓冲区池中申请一个第三缓冲区。
其中,上述的第三缓冲区是由第一缓冲区和第二缓冲区组成。
示例性的,路由设备可以在已有的buffer结构中预留预定字节的空间,例如,可以在已有的buffer结构中的报文描述符的末尾预留20字节长度的空间。这样当路由设备接收到报文后,确定该报文需要进行镜像转发,则在该预留的空间(即第二缓冲区)中存入目标报文头信息。
结合上述的步骤A1,在步骤103之后,该方法还包括如下步骤:
步骤A2:路由设备释放该第三缓冲区。
示例性的,由于第三缓冲区中不仅存储有报文还存有目标报文头信息,因此,路由设备在通过目的输出端口输出该报文之后,还需要等待镜像输出端口输出该报文的报文数据以及镜像报文的目标报文头信息之后,才可释放该第三缓冲区。
示例性的,以上述的步骤A1和步骤A2所示的方案为例,对本发明所提供的报文发送方法进行描述,其对应的具体实现过程如下:
1)、在系统初始化期间,路由设备为报文接收创建pkt buffer池(即上文中的第一缓冲区池)。
2)、当路由设备的某一输入端口接收到报文时,从pkt buffer池中申请一个pktbuffer装载该报文。若确定该报文的输出端口还对应一个镜像输出端口,即该报文需要进行镜像转发,则在申请的buffer的报文描述符的末尾预留预定字节(例如,20字节)的空间,并基于镜像报文的配置规则以及该报文对应的镜像输出端口对该报文的报文头信息进行修改,得到该报文的目标镜像头信息(即该报文的镜像报文的报文头信息)进行镜像。同时,设置申请的pkt buffer中的mirroFlag以表示该pkt buffer处于复用状态。
3)、由于该报文和该报文对应的镜像报文需要复用pkt buffer。为了避免一个输出端口的信息发送完成后,释放了pkt buffer,导致另一输出端口无法发送。路由设备会对待释放的pkt buffer建立一个buffer队列,从而控制pkt buffer释放时间。
遍历该pkt buffer队列,在遍历该pkt buffer队列的过程中,对于当前遍历的待释放的pkt buffer,当该待释放的pkt buffer对应存储的报文需要镜像转发,则需要在该待释放的pkt buffer的UsedFlag字段用于表示该pkt buffer使用完毕(即复用完毕)的情况下,才可释放该pkt buffer。
第二种可能的实现方式:
在本发明实施例中,上述的步骤102之前,该方法还包括:
步骤B1:路由设备根据报文的报文长度,从第一缓冲区池中申请一个第一缓冲区。
步骤B2:路由设备从第二缓冲区池中申请一个第二缓冲区。
其中,上述的第一缓冲区池用于存储报文,从而实现报文的转发,而上述的第二缓冲区池用于拷贝镜像报文的报文头信息。优选的,该第二缓冲区池中的每个buffer长度为20字节。
结合上述的步骤B1和步骤B2,在步骤103之后,该方法还包括如下步骤:
步骤B3:路由设备在通过镜像输出端口输出目标报文头信息和该报文的报文数据之后,释放所述第二缓冲区;
步骤B4:路由设备在通过目的输出端口输出该报文,并通过镜像输出端口输出目标报文头信息和该报文的报文数据之后,释放所述第一缓冲区。
示例性的,由于第一缓冲区中存储有该报文的所有信息,而镜像输出端口需要读取第一缓冲区中所存储的报文的报文数据,因此,路由设备在通过目的输出端口输出该报文之后,还需要等待镜像输出端口输出该报文的报文数据以及镜像报文的目标报文头信息之后,才可释放该第一缓冲区。对于第二缓冲区,路由设备在通过镜像输出端口输出该报文的报文数据以及镜像报文的目标报文头信息之后,便可释放该第二缓冲区。
示例性的,以上述的步骤B1至步骤B4所示的方案为例,对本发明所提供的报文发送方法进行描述,其对应的具体实现过程如下:
1)、在系统初始化期间,路由设备为报文接收创建pkt buffer池(即上文中的第一缓冲区池),为镜像报文的报文头部创建mirro buffer池(即第二缓冲区池)。
2)、当路由设备的某一输入端口接收到报文时,从pkt buffer池中申请一个pktbuffer装载该报文。若确定该报文的输出端口还对应一个镜像输出端口,即该报文需要进行镜像转发,则基于镜像报文的配置规则以及该报文对应的镜像输出端口对该报文的报文头信息进行修改,得到该报文的目标镜像头信息(即该报文的镜像报文的报文头信息)进行镜像,并从mirror buffer池中新申请一个mirror buffer。同时,设置申请的pkt buffer中的mirroFlag以表示当前pkt buffer处于复用状态。
3)、由于该报文和该报文对应的镜像报文需要复用pkt buffer,从而导致pktbuffer需要经过目的输出端口和镜像输出端口两个输出接口发送。为了避免一个输出端口的信息发送完成后,释放了buffer,导致另一输出端口无法发送。路由设备会对待释放的buffer建立一个buffer队列,从而控制buffer释放时间。
遍历该buffer队列,在遍历该buffer队列的过程中,对于当前遍历的待释放的pktbuffer,当该待释放的pkt buffer对应存储的报文需要镜像转发,则需要在该待释放的pktbuffer的UsedFlag字段用于表示该pkt buffer使用完毕、且该待释放的pkt buffer对应的mirro buffer的UsedFlag字段用于表示该mirro buffer使用完毕的情况下,才可释放该buffer。
同理,对于当前遍历的待释放的mirro buffer,会在该待释放的mirro buffer的UsedFlag字段用于表示该mirro buffer使用完毕的情况下,才会释放该buffer。
本发明实施例提供的报文发送方法,在接收到的报文的输出端口包括目的输出端口和镜像输出端口的情况下,将报文缓存至第一缓冲区,将目标报文头信息(即基于镜像输出端口的端口信息对该报文的报文头信息进行修改后所得到的报文头信息)缓存至第二缓冲区,然后,通过该目的输出端口输出该报文,并通过该镜像输出端口输出该目标报文头信息和该报文的报文数据,使得路由设备仅需要对目标报文头信息进行buffer申请和填充,来完成镜像报文的转发,从而可以在保证路由设备的转发能力不被影响的情况下完成了端口镜像的功能,不仅保证了路由设备的转发能力不被降低,还提高了路由器数据转发的可靠性。
本发明实施例提供一种路由设备,如图2、3所示,该装置包括:接收模块21、缓存模块22以及输出模块23,其中:
接收模块21,用于接收报文,该报文的输出端口包括目的输出端口和镜像输出端口。
缓存模块22,用于将接收模块21接收到的该报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区,该目标报文头信息是路由设备基于该镜像输出端口的端口信息对该报文的报文头信息进行修改后得到的报文头信息。
输出模块23,用以通过该目的输出端口输出报文,并通过该镜像输出端口输出该目标报文头信息和该报文的报文数据。
可选的,如图3所示,该路由设备还包括:申请模块24,其中:
申请模块24,用于根据接收模块21接收到的该报文的报文长度,从第一缓冲区池中申请一个第三缓冲区;其中,该第三缓冲区是由第一缓冲区和第二缓冲区组成。
进一步可选的,如图3所示,该路由设备还包括:释放模块25,其中:
释放模块25,用于释放第三缓冲区。
可选的,上述的申请模块24,用于根据接收模块21接收到的该报文的报文长度,从第一缓冲区池中申请一个第一缓冲区;该申请模块24,还用于从第二缓冲区池中申请一个第二缓冲区。
进一步可选的,上述的释放模块25,用于释放第二缓冲区;该释放模块25,还用于释放第一缓冲区。
本发明实施例提供的路由设备,该路由设备在接收到的报文的输出端口包括目的输出端口和镜像输出端口的情况下,将报文缓存至第一缓冲区,将目标报文头信息(即基于镜像输出端口的端口信息对该报文的报文头信息进行修改后所得到的报文头信息)缓存至第二缓冲区,然后,通过该目的输出端口输出该报文,并通过该镜像输出端口输出该目标报文头信息和该报文的报文数据,使得路由设备仅需要对目标报文头信息进行buffer申请和填充,来完成镜像报文的转发,从而可以在保证路由设备的转发能力不被影响的情况下完成了端口镜像的功能,不仅保证了路由设备的转发能力不被降低,还提高了路由器数据转发的可靠性。
本发明实施例提供一种路由设备的硬件结构示意图,如图4所示,该路由设备30包括:处理器31、通信接口32、存储器33和总线34。
其中,通信接口32,用于接收报文,该报文的输出端口包括目的输出端口和镜像输出端口;处理器31,用于将该报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区,该目标报文头信息是路由设备30基于镜像输出端口的端口信息对该报文的报文头信息进行修改后得到的报文头信息,处理器31,用于通过目的输出端口输出该报文,并通过镜像输出端口输出目标报文头信息和报文的报文数据。
其中,该通信接口32包括:目的输出端口和镜像输出端口。
本发明实施例中,在图4中,总线可以包括任意数量的互联的总线和桥,具体由处理器31代表的一个或多个处理器和存储器32代表的存储器的各种电路链接在一起。需要说明的是,在具体实现过程中,上述如图1所示的方法流程中路由设备所执行的各步骤均可以通过硬件形式的处理器31执行存储器32中存储的软件形式的计算机执行指令实现,为避免重复,此处不再赘述。
上述路由设备所执行的动作所对应的程序均可以以软件形式存储于该路由设备的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上文中的存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD);还可以包括上述种类的存储器的组合。
上文所提供的路由设备中的处理器可以是一个处理器,也可以是多个处理元件的统称。例如,处理器可以为中央处理器(central processing unit,CPU;也可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等;还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种报文发送方法,其特征在于,应用于路由设备,所述方法包括:
接收报文,所述报文的输出端口包括目的输出端口和镜像输出端口;
将所述报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区,所述目标报文头信息是所述路由设备基于所述镜像输出端口的端口信息对所述报文的报文头信息进行修改后得到的报文头信息;
通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据。
2.根据权利要求1所述的报文发送方法,其特征在于,所述将所述报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区之前,所述方法还包括:
根据所述报文的报文长度,从第一缓冲区池中申请一个第三缓冲区;其中,所述第三缓冲区是由所述第一缓冲区和所述第二缓冲区组成。
3.根据权利要求2所述的报文发送方法,其特征在于,所述通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的数据信息之后,所述方法还包括:
释放所述第三缓冲区。
4.根据权利要求1所述的报文发送方法,其特征在于,所述通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之前,所述方法还包括:
根据所述报文的报文长度,从第一缓冲区池中申请一个第一缓冲区;
从第二缓冲区池中申请一个第二缓冲区。
5.根据权利要求1所述的报文发送方法,其特征在于,
所述通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之后,所述方法还包括:释放所述第二缓冲区;
所述通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据之后,所述方法还包括:释放所述第一缓冲区。
6.一种路由设备,其特征在于,包括:
接收模块,用于接收报文,所述报文的输出端口包括目的输出端口和镜像输出端口;
缓存模块,用于将所述接收模块接收到的所述报文缓存至第一缓冲区,将目标报文头信息缓存至第二缓冲区,所述目标报文头信息是所述路由设备基于所述镜像输出端口的端口信息对所述报文的报文头信息进行修改后得到的报文头信息;
输出模块,用以通过所述目的输出端口输出所述报文,并通过所述镜像输出端口输出所述目标报文头信息和所述报文的报文数据。
7.根据权利要求6所述的路由设备,其特征在于,所述路由设备还包括:
申请模块,用于根据所述接收模块接收到的所述报文的报文长度,从第一缓冲区池中申请一个第三缓冲区;其中,所述第三缓冲区是由所述第一缓冲区和所述第二缓冲区组成。
8.根据权利要求7所述的路由设备,其特征在于,所述路由设备还包括:
释放模块,用于释放所述第三缓冲区。
9.根据权利要求6所述的路由设备,其特征在于,所述路由设备还包括:
申请模块,用于根据所述接收模块接收到的所述报文的报文长度,从第一缓冲区池中申请一个第一缓冲区;
所述申请模块,还用于从第二缓冲区池中申请一个第二缓冲区。
10.根据权利要求9所述的路由设备,其特征在于,所述路由设备还包括:
释放模块,用于释放所述第二缓冲区;
所述释放模块,还用于释放所述第一缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811377803.3A CN109120533A (zh) | 2018-11-19 | 2018-11-19 | 一种报文发送方法及路由设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811377803.3A CN109120533A (zh) | 2018-11-19 | 2018-11-19 | 一种报文发送方法及路由设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109120533A true CN109120533A (zh) | 2019-01-01 |
Family
ID=64854082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811377803.3A Pending CN109120533A (zh) | 2018-11-19 | 2018-11-19 | 一种报文发送方法及路由设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109120533A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798414A (zh) * | 2019-12-03 | 2020-02-14 | 锐捷网络股份有限公司 | 一种端口镜像的方法和路由器 |
CN111901255A (zh) * | 2020-06-10 | 2020-11-06 | 中国电信股份有限公司重庆分公司 | 一种用于网络设备快速包镜像转发的方法和装置 |
CN112637071A (zh) * | 2020-12-22 | 2021-04-09 | 山东兆物网络技术股份有限公司 | 基于数据包标记的溯源方法及数据包标记装置 |
CN112688885A (zh) * | 2020-12-23 | 2021-04-20 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
CN112953949A (zh) * | 2021-03-01 | 2021-06-11 | 恒安嘉新(北京)科技股份公司 | 一种网络报文的报文头处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324654B1 (en) * | 1998-03-30 | 2001-11-27 | Legato Systems, Inc. | Computer network remote data mirroring system |
US7103797B1 (en) * | 1998-03-30 | 2006-09-05 | Emc Corporation | Resource allocation throttling in remote data mirroring system |
CN102932262A (zh) * | 2011-08-11 | 2013-02-13 | 中兴通讯股份有限公司 | 网络处理器镜像实现方法及网络处理器 |
CN103200129A (zh) * | 2013-04-05 | 2013-07-10 | 张小云 | 一种异常报文的镜像方法和装置 |
CN105573857A (zh) * | 2014-10-10 | 2016-05-11 | 北京计算机技术及应用研究所 | 一种多控磁盘阵列缓存镜像方法及系统 |
-
2018
- 2018-11-19 CN CN201811377803.3A patent/CN109120533A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324654B1 (en) * | 1998-03-30 | 2001-11-27 | Legato Systems, Inc. | Computer network remote data mirroring system |
US7103797B1 (en) * | 1998-03-30 | 2006-09-05 | Emc Corporation | Resource allocation throttling in remote data mirroring system |
CN102932262A (zh) * | 2011-08-11 | 2013-02-13 | 中兴通讯股份有限公司 | 网络处理器镜像实现方法及网络处理器 |
CN103200129A (zh) * | 2013-04-05 | 2013-07-10 | 张小云 | 一种异常报文的镜像方法和装置 |
CN105573857A (zh) * | 2014-10-10 | 2016-05-11 | 北京计算机技术及应用研究所 | 一种多控磁盘阵列缓存镜像方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798414A (zh) * | 2019-12-03 | 2020-02-14 | 锐捷网络股份有限公司 | 一种端口镜像的方法和路由器 |
CN110798414B (zh) * | 2019-12-03 | 2022-03-18 | 锐捷网络股份有限公司 | 一种端口镜像的方法和路由器 |
CN111901255A (zh) * | 2020-06-10 | 2020-11-06 | 中国电信股份有限公司重庆分公司 | 一种用于网络设备快速包镜像转发的方法和装置 |
CN112637071A (zh) * | 2020-12-22 | 2021-04-09 | 山东兆物网络技术股份有限公司 | 基于数据包标记的溯源方法及数据包标记装置 |
CN112688885A (zh) * | 2020-12-23 | 2021-04-20 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
CN112688885B (zh) * | 2020-12-23 | 2022-05-24 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
CN112953949A (zh) * | 2021-03-01 | 2021-06-11 | 恒安嘉新(北京)科技股份公司 | 一种网络报文的报文头处理方法、装置、设备及存储介质 |
CN112953949B (zh) * | 2021-03-01 | 2023-01-06 | 恒安嘉新(北京)科技股份公司 | 一种网络报文的报文头处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120533A (zh) | 一种报文发送方法及路由设备 | |
Lin et al. | {PANIC}: A {High-Performance} programmable {NIC} for multi-tenant networks | |
US9007902B1 (en) | Method and apparatus for preventing head of line blocking in an Ethernet system | |
US9917787B2 (en) | Method and system for flexible credit exchange within high performance fabrics | |
US6034964A (en) | Router device and network system using the same | |
US9648148B2 (en) | Method, apparatus, and system for QoS within high performance fabrics | |
DE112020002509T5 (de) | System und verfahren zur erleichterung der effizienten paketinjektion in einen ausgangspuffer in einer netzwerkschnittstellensteuerung (nic) | |
US6246692B1 (en) | Packet switching fabric using the segmented ring with resource reservation control | |
DE60033529T2 (de) | Netzprozessor, speicherorganisation und verfahren | |
TW576037B (en) | High speed network processor | |
US6922749B1 (en) | Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch | |
US20040100954A1 (en) | Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control | |
CN108494676B (zh) | 数据传输方法、装置、数据收发设备、系统及存储介质 | |
EP1950932A1 (en) | System for transmitting data within a network between nodes of the network and flow control process for transmitting said data | |
US7613849B2 (en) | Integrated circuit and method for transaction abortion | |
CN110647071B (zh) | 一种控制数据传输的方法、装置及存储介质 | |
WO2006109207A1 (en) | Electronic device and method for flow control | |
JP3946145B2 (ja) | 高速イーサネット(登録商標)スイッチおよび高速イーサネット(登録商標)データフレームを分配するための方法 | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
DE112006002912T5 (de) | Verwaltung von On-Chip-Warteschleifen in geschalteten Netzwerken | |
DE102019105288A1 (de) | Technologien zur Paketweiterleitung bei Eingangswarteschlangenüberlauf | |
US5051985A (en) | Contention resolution in a communications ring | |
CN113992594A (zh) | 流量控制方法、装置、电子设备和计算机可读存储介质 | |
DE102018006687A1 (de) | Techniken zum auswählen nicht minimaler wege und drosseln der anschlussgeschwindigkeiten, um den durchsatz in einem netz zu vergrössern | |
CN109561025A (zh) | 一种信息处理方法以及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190101 |
|
RJ01 | Rejection of invention patent application after publication |