嵌入式多协议移动网络数据采集探针设备的制作方法
【专利摘要】本发明公开了一种嵌入式多协议移动网络数据采集探针设备,包括数据包并行分配处理模块,所述数据包并行分配处理模块连接若干CPU,各CPU都独立配有TCP协议栈模块,各TCP协议栈模块都独立配有应用层协议模块,各CPU都独立连接数据采集模块;所述数据包并行分配处理模块包括:报文收取子模块,报文分流子模块,报文重处理子模块。本发明提供的嵌入式多协议移动网络数据采集探针设备,其能对数据包进行并行分配处理。
【专利说明】嵌入式多协议移动网络数据采集探针设备
【技术领域】
[0001 ] 本发明涉及嵌入式多协议移动网络数据采集探针设备。
【背景技术】
[0002]在实际环境中,未经优化的Iinux或window都是单TCP协议栈,也就是在多核收取报文时,公用同一个协议栈,这样在临界区要存在很多锁,系统性能受制于互斥,即使增加硬件成本,也不能显著提高系统性能。
[0003]共用同一个IP/TCP协议栈,多个CPU同时收包,在临界区内会发生互斥,高负载的情况下会出现CPU等待,多核并行处理能力大打折扣。
[0004]同一个网卡产生的报文会被不同的CPU接收,丧失CPU亲和性,这样同一条流的数据会跨越CPU,CPU会不断冲刷cache,单个CPU效率只能发挥到原来的一半。
【发明内容】
[0005]本发明的目的在于提供一种嵌入式多协议移动网络数据采集探针设备,其能对数据包进行并行分配处理。
[0006]为实现上述目的,本发明的技术方案是设计一种嵌入式多协议移动网络数据采集探针设备,包括数据包并行分配处理模块,所述数据包并行分配处理模块连接若干CPU,各CPU都独立配有TCP协议栈模块,各TCP协议栈模块都独立配有应用层协议模块,各CPU都独立连接数据采集模块;
[0007]所述数据包并行分配处理模块包括:
[0008]报文收取子模块,用于收取IP报文,并裁判网络负载,轻负载时候使用中断处理,重负载时候使用轮询处理;
[0009]报文分流子模块,用于预抽取IP报文中的源/目地址和源/目端口及协议,并以IP报文的源/目地址和源/目端口及协议作hash索引,把该IP报文挂入hash索引所指向CPU的IP报文队列;
[0010]报文重处理子模块,用于处理CPU的IP报文队列,触发该CPU上软中断,由该CPU
做进一步处理。
[0011]优选的,所述嵌入式多协议移动网络数据采集探针设备分布式部署在移动运营商IP网内的SGSN和GGSN之间。
[0012]优选的,所述应用层协议模块为http协议模块、SMTP协议模块、POP3协议模块或FTP协议模块。
[0013]在实际应用的以太网内,绝大多数都是IP报文。依据这个特点,采用由CPUO从网卡收到报文,以IP报文的源/目地址,和源/目端口,及协议(五元组),作hash索引(该索引具有源目的无关性),由该hash索引定位有相同源/目地址和源/目端口及协议的数据包,视为一个数据“流”,并把一条流,指向到同一个CPU内核处理。因为一个流的所有报文,具有相同的hash索引,所以一条流的所有数据包必然能分到同一个CPU上,这样增加了CPU亲和性,充分利用多核CPU架构中每个CPU拥有独立cache的特性,为每个CPU上运行独立协议栈提供数据支持。同时,在每一个CPU上运行多个独立协议栈,减少报文间的互斥操作,充分利用多核CPU的特点,处理性能与CPU个数类线性增长。
[0014]此外,分配报文的CPU,轻负载时候使用中断处理,重负载时候使用轮询处理,增加CPU的有效利用率。
[0015]所述嵌入式多协议移动网络数据采集探针设备分布式部署在移动运营商IP网内的SGSN和GGSN之间,从而具备实时采集多种网络应用流量数据的能力,支持分布式采集,集中式管理的应用模式。能够高效处理并关联移动网及互联网的数据,如移动用户的手机/智能终端的型号/提供服务的运营商/接入点,使用的互联网应用/使用时长/流量等等,并可将处理后数据信息输出至第三方的智能分析管理系
[0016]统。
【专利附图】
【附图说明】
[0017]图1是传统Linux系统架构下的示意图;
[0018]图2是本发明的示意图。
【具体实施方式】
[0019]如图1所示,为传统Linux系统架构下的示意图,其有如下两个问题:
[0020]共用同一个IP/TCP协议栈,多个CPU同时收包,在临界区内会发生互斥,高负载的情况下会出现CPU等待,多核并行处理能力大打折扣。
[0021]同一个网卡产生的报文会被不同的CPU接收,丧失CPU亲和性,这样同一条流的数据会跨越CPU,CPU会不断冲刷cache,单个CPU效率只能发挥到原来的一半。
[0022]下面结合附图和实施例,对本发明的【具体实施方式】作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0023]本发明具体实施的技术方案是:
[0024]如图2所示,一种嵌入式多协议移动网络数据采集探针设备,包括数据包并行分配处理模块,所述数据包并行分配处理模块连接若干CPU,各CPU都独立配有TCP协议栈模块,各TCP协议栈模块都独立配有应用层协议模块,各CPU都独立连接数据采集模块;
[0025]所述数据包并行分配处理模块包括:
[0026]报文收取子模块,用于收取IP报文(如由网卡发来的IP报文),并裁判网络负载,轻负载时候使用中断处理,重负载时候使用轮询处理;
[0027]报文分流子模块,用于预抽取IP报文中的源/目地址和源/目端口及协议,并以IP报文的源/目地址和源/目端口及协议作hash索引,把该IP报文挂入hash索引所指向CPU的IP报文队列;
[0028]报文重处理子模块,用于处理CPU的IP报文队列,触发该CPU上软中断,由该CPU
做进一步处理。
[0029]所述应用层协议模块为http协议模块、SMTP协议模块、POP3协议模块或FTP协议模块。
[0030]在实际应用的以太网内,绝大多数都是IP报文。依据这个特点,采用由CPUO从网卡收到报文,以IP报文的源/目地址,和源/目端口,及协议(五元组),作hash索引(该索引具有源目的无关性),由该hash索引定位有相同源/目地址和源/目端口及协议的数据包,视为一个数据“流”,并把一条流,指向到同一个CPU内核处理。因为一个流的所有报文,具有相同的hash索引,所以一条流的所有数据包必然能分到同一个CPU上,这样增加了CPU亲和性,充分利用多核CPU架构中每个CPU拥有独立cache的特性,为每个CPU上运行独立协议栈提供数据支持。同时,在每一个CPU上运行多个独立协议栈,减少报文间的互斥操作,充分利用多核CPU的特点,处理性能与CPU个数类线性增长。
[0031]此外,分配报文的CPU,轻负载时候使用中断处理,重负载时候使用轮询处理,增加CPU的有效利用率。
[0032]所述嵌入式多协议移动网络数据采集探针设备可分布式部署在移动运营商IP网内的SGSN和GGSN之间,从而具备实时采集多种网络应用流量数据的能力,支持分布式采集,集中式管理的应用模式。能够高效处理并关联移动网及互联网的数据,如移动用户的手机/智能终端的型号/提供服务的运营商/接入点,使用的互联网应用/使用时长/流量等等,并可将处理后数据信息输出至第三方的智能分析管理系统。
[0033]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.嵌入式多协议移动网络数据采集探针设备,其特征在于,包括数据包并行分配处理模块,所述数据包并行分配处理模块连接若干CPU,各CPU都独立配有TCP协议栈模块,各TCP协议栈模块都独立配有应用层协议模块,各CPU都独立连接数据采集模块; 所述数据包并行分配处理模块包括: 报文收取子模块,用于收取IP报文,并裁判网络负载,轻负载时候使用中断处理,重负载时候使用轮询处理; 报文分流子模块,用于预抽取IP报文中的源/目地址和源/目端口及协议,并以IP报文的源/目地址和源/目端口及协议作ha sh索引,把该IP报文挂入hash索引所指向CPU的IP报文队列; 报文重处理子模块,用于处理CPU的IP报文队列,触发该CPU上软中断。
2.根据权利要求1所述的嵌入式多协议移动网络数据采集探针设备,其特征在于,所述嵌入式多协议移动网络数据采集探针设备分布式部署在移动运营商IP网内的SGSN和GGSN之间。
3.根据权利要求1所述的嵌入式多协议移动网络数据采集探针设备,其特征在于,所述应用层协议模块为http协议模块、SMTP协议模块、POP3协议模块或FTP协议模块。
【文档编号】H04L29/06GK103532955SQ201310489147
【公开日】2014年1月22日 申请日期:2013年10月18日 优先权日:2013年10月18日
【发明者】周菁, 郑国权 申请人:苏州斯凯迪网络科技有限公司