一种报文处理方法及网络设备技术

技术编号:15767461 阅读:130 留言:0更新日期:2017-07-06 15:33
本发明专利技术实施例公开了一种报文处理方法及网络设备,所述方法应用于网络设备,所述网络设备包括主机和外围设备;所述方法包括:外围设备获得并缓存原始报文;提取报文信息并放入报文信息队列,同时统计总长度;如果总长度与预设长度的差值小于预设阈值和/或等待时间大于预设时间,生成聚合信息,并放入聚合信息队列;根据聚合信息及报文信息,读取聚合信息对应的待聚合原始报文;进行聚合得到聚合报文;产生接收中断,通知主机CPU对聚合报文进行接收处理。由于外围设备可以将多个原始报文进行聚合,得到聚合报文,再通知主机CPU进行处理,CPU只需中断一次以接收该聚合报文,CPU中断次数明显减少,大大降低了CPU的资源消耗。

Message processing method and network device

The embodiment of the invention discloses a message processing method and network equipment, the method is applied to the network device, the network device comprises a host computer and a peripheral device; the method comprises: obtaining peripheral devices and cache the original message; message information extraction and put the message queue, and total length; if the total length of the the preset length difference is less than a preset threshold and / or waiting time is greater than the preset time, generating aggregate information and into the information aggregation queue; according to the information and message information aggregation, read the information corresponding to the original polymerization polymerization to get the polymerization message; message; receiving interrupt, notify the host CPU on the polymerization of message receiving and processing. The peripheral device can be a number of original message of polymerization, polymerization of the message, and then notify the host CPU for processing, CPU only need to interrupt time to receive the message of CPU polymerization, significantly reduced the number of interrupt, which greatly reduce the CPU resource consumption.

【技术实现步骤摘要】
一种报文处理方法及网络设备
本专利技术涉及网络数据处理
,特别是涉及一种报文处理方法及网络设备。
技术介绍
随着网络技术的飞速发展,网络数据流量越来越大,网络设备的外围设备会接收到大量的以太网报文。而根据现有技术,外围设备每接收到一个以太网报文,都会产生中断通知主机的CPU(CentralProcessingUnit,中央处理器)进行报文接收处理。也就是,外围设备每接收到一个以太网报文就会中断CPU。当以太网报文流量很大时,CPU需要处理大量的中断请求,从而CPU资源消耗量过大,而且无法满足高速传输以太网数据的需求,还会造成带宽浪费。
技术实现思路
本专利技术实施例公开了一种报文处理方法及网络设备,用以减少CPU中断次数,降低CPU资源消耗。技术方案如下:第一方面,本专利技术实施例提供了一种报文处理方法,应用于网络设备,所述网络设备包括:主机和外围设备;所述方法包括:外围设备获得并缓存从外部接收的原始报文,其中,所述原始报文为以太网报文;提取所述原始报文的报文信息,其中,所述报文信息包括:所述原始报文的报文长度及其在缓存中的地址;将所述报文信息放入报文信息队列,同时统计提取到的所有报文信息中报文长度的总长度,其中,所述总长度初始值为零;如果所述总长度与预设长度的差值小于预设阈值和/或等待时间大于预设时间,则生成用于控制原始报文聚合的聚合信息,并将所述聚合信息放入聚合信息队列,同时将所述总长度清零以重新开始统计后续提取到的所有报文信息中报文长度的总长度,其中,所述聚合信息包括:待聚合原始报文的总数量;从所述聚合信息队列的队列头取出聚合信息,对于取出到的每个聚合信息,从所述报文信息队列的队列头开始,取出数量与取出到的聚合信息中的总数量相等的报文信息,并根据每个取出的报文信息中包括的原始报文在缓存中的地址,从所述缓存中读取所述聚合信息对应的待聚合原始报文;按照预设的聚合报文格式,对读取的所述聚合信息对应的待聚合原始报文进行聚合,得到聚合报文;产生聚合报文接收中断,通知主机CPU对所述聚合报文进行接收处理。可选的,所述按照预设的聚合报文格式对读取的所述聚合信息对应的待聚合原始报文进行聚合,得到聚合报文的步骤,包括:将所述聚合信息对应的每个待聚合原始报文分别作为一个报文单元,为每个报文单元添加单元标识,并在每个报文单元中记录该报文单元的报文长度;对所述聚合信息对应的所有报文单元进行聚合,得到聚合报文,其中,所述聚合报文的报文头包括所述聚合报文包括的报文单元的总个数。可选的,所述外围设备获得并缓存从外部接收的原始报文时,所述方法还包括:外围设备记录接收到所述原始报文的时间;所述在每个报文单元中记录该报文单元的报文长度的步骤之后,所述方法还包括:在每个报文单元中记录接收到该报文单元对应的原始报文的时间。可选的,所述方法还包括:主机根据所述聚合报文的报文头包括的报文单元的总个数,以及每个报文单元的单元标识,查找每个报文单元;从每个报文单元中,获取对应原始报文、接收该原始报文的时间及该原始报文的报文长度,并为每个原始报文添加报文头,其中,所述原始报文的报文头中包括接收该原始报文的时间和该原始报文的报文长度;将添加有报文头的原始报文写入报文存储缓存队列,将报文存储缓存队列中的所有原始报文写入硬盘文件中,并在该硬盘文件中添加文件头,然后释放所述报文存储缓存队列。可选的,所述聚合信息还包括:所述聚合信息对应的第一个待聚合原始报文在缓存的地址、最后一个待聚合原始报文在缓存的地址和所有待聚合原始报文的总长度。可选的,在根据每个取出的报文信息中包括的待聚合原始报文在缓存中的地址,从所述缓存中读取所述聚合信息对应的待聚合原始报文的步骤之前,所述方法还包括:判断从所述报文信息队列中取出的第一个报文信息中包括的原始报文在缓存中的地址、从所述报文信息队列中取出的最后一个报文信息中包括的原始报文在缓存中的地址及取出的所有报文信息包括的报文长度的总和,是否均分别与所述第一个待聚合原始报文在缓存的地址、所述最后一个待聚合原始报文在缓存的地址及所有待聚合原始报文的总长度相同;如果是,则从所述缓存中读取所述聚合信息对应的待聚合原始报文。第二方面,本专利技术实施例还提供了一种网络设备,所述网络设备包括:主机和外围设备;所述外围设备包括:报文接收模块,用于获得并缓存从外部接收的原始报文,其中,所述原始报文为以太网报文;信息提取模块,用于提取所述原始报文的报文信息,将所述报文信息放入报文信息队列,其中,所述报文信息包括:所述原始报文的报文长度及其在缓存中的地址;聚合控制模块,用于将所述报文信息放入报文信息队列,同时统计提取到的所有报文信息中报文长度的总长度,如果所述总长度与预设长度的差值小于预设阈值和/或等待时间大于预设时间,则生成用于控制原始报文聚合的聚合信息,并将所述聚合信息放入聚合信息队列,同时将所述总长度清零以重新开始统计后续提取到的所有报文信息中报文长度的总长度,其中,所述总长度初始值为零;所述聚合信息包括:待聚合原始报文的总数量;报文聚合模块,用于从所述聚合信息队列的队列头取出聚合信息,对于取出到的每个聚合信息,从所述报文信息队列的队列头开始,取出数量与取出到的聚合信息中的总数量相等的报文信息,并根据每个取出的报文信息中包括的原始报文在缓存中的地址,从所述缓存中读取所述聚合信息对应的待聚合原始报文;报文聚合模块,还用于按照预设的聚合报文格式,对读取的所述聚合信息对应的待聚合原始报文进行聚合,得到聚合报文;报文传输模块,用于产生聚合报文接收中断,通知主机CPU对所述聚合报文进行接收处理。可选的,所述报文聚合模块包括:单元标识添加子模块,用于将所述聚合信息对应的每个待聚合原始报文分别作为一个报文单元,为每个报文单元添加单元标识,并在每个报文单元中记录该报文单元的报文长度;报文聚合子模块,用于对所述聚合信息对应的所有报文单元进行聚合,得到聚合报文,其中,所述聚合报文的报文头包括所述聚合报文包括的报文单元的总个数。可选的,所述报文接收模块,还用于在获得并缓存从外部接收的原始报文的同时,记录接收到所述原始报文的时间;所述报文聚合模块还包括:时间添加子模块,用于在每个报文单元中记录该报文单元的报文长度之后,在每个报文单元中记录接收到该报文单元对应的原始报文的时间。可选的,所述主机CPU,用于根据所述聚合报文的报文头包括的报文单元的总个数,以及每个报文单元的单元标识,查找每个报文单元;从每个报文单元中,获取对应原始报文、接收该原始报文的时间及该原始报文的报文长度,并为每个原始报文添加报文头,其中,所述原始报文的报文头中包括接收该原始报文的时间和该原始报文的报文长度;将添加有报文头的原始报文写入报文存储缓存队列,将报文存储缓存队列中的所有原始报文写入硬盘文件中,并在该硬盘文件中添加文件头,然后释放所述报文存储缓存队列。可选的,所述聚合信息还包括:所述聚合信息对应的第一个待聚合原始报文在缓存的地址、最后一个待聚合原始报文在缓存的地址和所有待聚合原始报文的总长度。可选的,所述外围设备还包括:聚合判断模块,用于判断从所述报文信息队列中取出的第一个报文信息中包括的原始报文在缓存中的地址、从所述报文信息队列中取出的最后一个报文信息中包括的原始报文在缓存中的地址及取出的本文档来自技高网...
一种报文处理方法及网络设备

【技术保护点】
一种报文处理方法,其特征在于,应用于网络设备,所述网络设备包括:主机和外围设备;所述方法包括:外围设备获得并缓存从外部接收的原始报文,其中,所述原始报文为以太网报文;提取所述原始报文的报文信息,其中,所述报文信息包括:所述原始报文的报文长度及其在缓存中的地址;将所述报文信息放入报文信息队列,同时统计提取到的所有报文信息中报文长度的总长度,其中,所述总长度初始值为零;如果所述总长度与预设长度的差值小于预设阈值和/或等待时间大于预设时间,则生成用于控制原始报文聚合的聚合信息,并将所述聚合信息放入聚合信息队列,同时将所述总长度清零以重新开始统计后续提取到的所有报文信息中报文长度的总长度,其中,所述聚合信息包括:待聚合原始报文的总数量;从所述聚合信息队列的队列头取出聚合信息,对于取出到的每个聚合信息,从所述报文信息队列的队列头开始,取出数量与取出到的聚合信息中的总数量相等的报文信息,并根据每个取出的报文信息中包括的原始报文在缓存中的地址,从所述缓存中读取所述聚合信息对应的待聚合原始报文;按照预设的聚合报文格式,对读取的所述聚合信息对应的待聚合原始报文进行聚合,得到聚合报文;产生聚合报文接收中断,通知主机CPU对所述聚合报文进行接收处理。...

【技术特征摘要】
1.一种报文处理方法,其特征在于,应用于网络设备,所述网络设备包括:主机和外围设备;所述方法包括:外围设备获得并缓存从外部接收的原始报文,其中,所述原始报文为以太网报文;提取所述原始报文的报文信息,其中,所述报文信息包括:所述原始报文的报文长度及其在缓存中的地址;将所述报文信息放入报文信息队列,同时统计提取到的所有报文信息中报文长度的总长度,其中,所述总长度初始值为零;如果所述总长度与预设长度的差值小于预设阈值和/或等待时间大于预设时间,则生成用于控制原始报文聚合的聚合信息,并将所述聚合信息放入聚合信息队列,同时将所述总长度清零以重新开始统计后续提取到的所有报文信息中报文长度的总长度,其中,所述聚合信息包括:待聚合原始报文的总数量;从所述聚合信息队列的队列头取出聚合信息,对于取出到的每个聚合信息,从所述报文信息队列的队列头开始,取出数量与取出到的聚合信息中的总数量相等的报文信息,并根据每个取出的报文信息中包括的原始报文在缓存中的地址,从所述缓存中读取所述聚合信息对应的待聚合原始报文;按照预设的聚合报文格式,对读取的所述聚合信息对应的待聚合原始报文进行聚合,得到聚合报文;产生聚合报文接收中断,通知主机CPU对所述聚合报文进行接收处理。2.如权利要求1所述的方法,其特征在于,所述按照预设的聚合报文格式对读取的所述聚合信息对应的待聚合原始报文进行聚合,得到聚合报文的步骤,包括:将所述聚合信息对应的每个待聚合原始报文分别作为一个报文单元,为每个报文单元添加单元标识,并在每个报文单元中记录该报文单元的报文长度;对所述聚合信息对应的所有报文单元进行聚合,得到聚合报文,其中,所述聚合报文的报文头包括所述聚合报文包括的报文单元的总个数。3.如权利要求2所述的方法,其特征在于,所述外围设备获得并缓存从外部接收的原始报文时,所述方法还包括:外围设备记录接收到所述原始报文的时间;所述在每个报文单元中记录该报文单元的报文长度的步骤之后,所述方法还包括:在每个报文单元中记录接收到该报文单元对应的原始报文的时间。4.如权利要求3所述的方法,其特征在于,所述方法还包括:主机CPU根据所述聚合报文的报文头包括的报文单元的总个数,以及每个报文单元的单元标识,查找每个报文单元;从每个报文单元中,获取对应原始报文、接收该原始报文的时间及该原始报文的报文长度,并为每个原始报文添加报文头,其中,所述原始报文的报文头中包括接收该原始报文的时间和该原始报文的报文长度;将添加有报文头的原始报文写入报文存储缓存队列,将报文存储缓存队列中的所有原始报文写入硬盘文件中,并在该硬盘文件中添加文件头,然后释放所述报文存储缓存队列。5.如权利要求1-4任一项所述的方法,其特征在于,所述聚合信息还包括:所述聚合信息对应的第一个待聚合原始报文在缓存的地址、最后一个待聚合原始报文在缓存的地址和所有待聚合原始报文的总长度。6.如权利要求5所述的方法,其特征在于,在根据每个取出的报文信息中包括的待聚合原始报文在缓存中的地址,从所述缓存中读取所述聚合信息对应的待聚合原始报文的步骤之前,所述方法还包括:判断从所述报文信息队列中取出的第一个报文信息中包括的原始报文在缓存中的地址、从所述报文信息队列中取出的最后一个报文信息中包括的原始报文在缓存中的地址及取出的所有报文信息包括的报文长度的总和,是否均分别与所述第一个待聚合原始报文在缓存的地址、所述最后一个待聚合原始报文在缓存的地址及所有待聚合原始报文的总长度相同;如果是,则从所述缓存中读取所述聚合信息对应的待聚合原始报文。7...

【专利技术属性】
技术研发人员:李美龙李明
申请(专利权)人:北京东土军悦科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1