深度包检测方法及系统的制作方法

文档序号:7782691阅读:633来源:国知局
深度包检测方法及系统的制作方法
【专利摘要】本发明涉及移动互联网【技术领域】,具体而言,涉及深度包检测方法及系统。其中,该深度包检测方法,包括:采集移动通信网络接口中的接口数据包,且接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程;采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。本发明提供的深度包检测方法及系统中,深度包检测的各过程间均采用共享内存的方式传输中间数据,使整个深度包检测的过程中没有低速设备(例如磁盘)的参与,如此能够提高深度包检测过程中中间数据的传输速率。
【专利说明】深度包检测方法及系统
【技术领域】
[0001]本发明涉及移动互联网【技术领域】,具体而言,涉及深度包检测方法及系统。
【背景技术】
[0002]随着移动互联网技术的快速发展及智能终端的快速普及,使用移动互联网数据业务的用户越来越多,需要保存的用户上网记录也越来越多。当用户通过手机、平板电脑等移动终端连接到移动通信网络时,会产生大量的访问数据。为评估移动互联网络的通信流量和质量,了解用户上网习惯及引导用户上网行为,需要对海量数据(省级流量在IOGbps左右)进行分析。当前多采用深度包检测技术(Deep Packet Inspection, DPI)对移动互联网络中的数据包进行数据检测分析。
[0003]现有的深度包检测DPI技术,是一种基于应用层的流量检测和控制技术,当接收到IP数据包、TCP或UDP数据流时,通过读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到整个应用程序的内容。其中,深度包检测技术在数据分析的过程中会产生大量的中间过程数据需要传输。当前中间数据的传输可以采用多线程方法,该方法的各线程间以共享资源的方式传输数据,传输效率低;中间数据的传输也可以采用文件缓存方法,但以缓存文件的方式传输数据,涉及磁盘读写交互,性能较低,不适用于高流量快速响应的情景。
[0004]由此看出,相关技术中的深度包检测过程中,中间数据的传输方法存在传输效率低的技术问题。

【发明内容】

[0005]本发明的目的在于提供深度包检测方法及系统,以解决上述的问题。
[0006]在本发明的实施例中提供了深度包检测方法,包括:
[0007]采集移动通信网络接口中的接口数据包,且所述接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程;
[0008]所述采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。
[0009]优选地,所述采集进程包括:对所述接口数据包进行过滤及IP分流。
[0010]优选地,所述协议解析进程包括:解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息;
[0011]利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据,所述原始信令消息压缩后保存至硬盘中,所述话单记录数据上报至服务器。
[0012]优选地,所述合成回填进程,包括:将同一用户的多个话单记录数据进行合并,并将和所述用户相关的属性信息加入与所述用户对应的所述话单记录数据中,其中所述属性信息包括:位置信息、及所使用终端信息。
[0013]优选地,所述共享内存包括:创建共享内存、映射共享内存及根据用户指令解除共享内存映射;
[0014]其中,所述创建共享内存包括创建共享内存key标识,所述key标识设置的参数值满足创建条件时,创建一块新的共享内存;
[0015]所述映射共享内存包括返回共享存储标识符,所述共享存储标识符的返回值满足设置的映射条件时,返回共享内存映射到进程中的地址;
[0016]所述解除共享内存的映射包括当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应的进程地址空间中移除。
[0017]优选地,所述移动通信网络接口中的接口数据包包括:移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据。
[0018]深度包检测系统,包括:
[0019]深度包检测装置,用于采集移动通信网络接口中的接口数据包;所述接口数据包依次进行采集进程、协议解析进程及合成回填进程;
[0020]服务器,用于上网记录产生进程;
[0021]其中所述深度包检测装置及所述服务器中所进行的各进程之间均采用共享内存的方式传输产生的中间数据。
[0022]优选地,所述深度包检测装置,包括:
[0023]采集卡,用于采集移动通信网络接口中的接口数据包;
[0024]信令解析模块,用于解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据;
[0025]原始信令保存模块,用于将所述原始信令消息压缩后保存至硬盘中,将所述话单记录数据上报至服务器。
[0026]优选地,所述深度包检测装置,还包括:
[0027]过滤器,用于对所述接口数据包进行过滤及IP分流。
[0028]优选地,所述深度包检测装置与所述服务器通信连接,包括:
[0029]移动通信网络中的多路网络接口通过交换机汇聚至所述深度包检测装置,所述深度包检测装置与所述服务器通信连接;
[0030]或,
[0031]移动通信网络中的多路网络接口分别连接深度包检测装置,所述深度包检测装置与所述服务器通信连接。
[0032]本发明实施例提供的深度包检测方法及系统中,深度包检测的各过程间均采用共享内存的方式传输中间数据,使整个深度包检测的过程中没有低速设备(例如磁盘)的参与,如此能够提高深度包检测过程中中间数据的传输速率。
【专利附图】

【附图说明】
[0033]图1示出了本发明实施例中深度包检测方法的流程图;[0034]图2示出了本发明实施例深度包检测方法的效果示意图;
[0035]图3示出了本发明实施例中深度包检测系统的结构示意图。
【具体实施方式】
[0036]下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。
[0037]本发明实施例中提供了一种深度包检测方法,如图1所示,主要包括:
[0038]步骤Sll:采集移动通信网络接口中的接口数据包,且接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程;
[0039]步骤S12:采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。
[0040]本发明实施例的深度包检测方法中,深度包检测的各过程间均采用共享内存的方式传输中间数据,使整个深度包检测的过程中没有低速设备(例如磁盘)的参与,如此能够提高深度包检测过程中中间数据的传输速率。
[0041]其中采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据的效果示意图如图2所示。
[0042]进一步具体地,采集进程包括:对接口数据包进行过滤及IP分流。
[0043]另外,协议解析进程包括:解析接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个接口数据包的解析数据包合并为数据流,利用数据流生成话单记录数据,原始信令消息压缩后保存至硬盘中,话单记录数据上报至服务器。
[0044]本发明实施例的协议解析进程中,对得到的接口数据包解析至OSI模型的应用层,由此能够获取移动通信网络中对应接口中的原始信令消息,即能够获取移动通信网络中网元间的信令数据,获取的信令数据能够为移动通信公司的网络优化提供数据基础。
[0045]本发明实施例中,合成回填进程,包括:将同一用户的多个话单记录数据进行合并,并将和用户相关的属性信息加入与用户对应的话单记录数据中,其中属性信息包括:位置信息、及所使用终端信息。
[0046]优选地,共享内存包括:创建共享内存、映射共享内存及根据用户指令解除共享内存映射;
[0047]其中,创建共享内存包括创建共享内存key标识,key标识设置的参数值满足创建条件时,创建一块新的共享内存;
[0048]映射共享内存包括返回共享存储标识符,共享存储标识符的返回值满足设置的映射条件时,返回共享内存映射到进程中的地址;
[0049]解除共享内存的映射包括当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应的进程地址空间中移除。
[0050]另外,本发明实施例中举例说明如何实现共享内存,例如:
[0051]1、创建共享内存,实现的函数可以为:
[0052]int shmget(key_t key, int size,int shmflg)
[0053]参数
[0054]key标识:共享内存的键值:0/IPC_PRIVATE。当key的取值为IPC_PRIVATE,则函数shmget将创建一块新的共享内存;如果key的取值为O,而参数中又设置了 IPC_PRIVATE这个标志,则同样会创建一块新的共享内存。
[0055]返回值:如果成功,返回共享内存表示符,如果失败,返回-1。
[0056]2、映射共享内存,其实现的函数可以为:
[0057]int shmat(int shmid, char*shmaddr, int flag)
[0058]参数:
[0059]shmid: shmget函数返回的共享存储标识符
[0060]flag:决定以什么样的方式来确定映射的地址(通常为O)
[0061]返回值:如果成功,则返回共享内存映射到进程中的地址;如果失败,则返回-1。
[0062]3、解除共享内存映射
[0063]当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应进程地址空间中移除,实现函数可以为:int shmdt (char*shmaddr)。
[0064]本发明实施例的深度包检测方法中,移动通信网络接口中的接口数据包包括:移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据。
[0065]进一步地,现有技术中的深度包检测技术采用先缓存原始海量数据,然后分析的模式。这样加大了系统的IO压力,时效性大大降低,并且影响了系统的处理能力。
[0066]本发明实施例中的深度包检测方法采用共享内存的通信模式和流程化的分析模式,由此大幅减轻了深度包检测系统的输入输出IO压力,提高了分析效率,使单套系统的处理能力到达2Gbps,丢包率小于百万分之一,处理时效达到10秒以内。在深度包检测装置的信令解析部件中,各种协议解析模块通过动态挂载的方式工作,使得系统配置灵活,对数据包的解析也更充分。当出现一种新的协议,或者需要关注一个新的企业关键绩效指标KPI时,只需要新增或者更新一下挂载的协议解析模块即可。
[0067]本发明实施例中还提供一种深度包检测系统,如图3所示,包括:
[0068]深度包检测装置21,用于采集移动通信网络接口中的接口数据包;接口数据包依次进行采集进程、协议解析进程及合成回填进程;
[0069]服务器22,用于上网记录产生进程;
[0070]其中深度包检测装置及服务器中所进行的各进程之间均采用共享内存的方式传输产生的中间数据。
[0071]其中,深度包检测装置,包括:
[0072]采集卡,用于采集移动通信网络接口中的接口数据包;
[0073]信令解析模块,用于解析接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个接口数据包的解析数据包合并为数据流,利用数据流生成话单记录数据;
[0074]原始信令保存模块,用于将原始信令消息压缩后保存至硬盘中,将话单记录数据上报至服务器。
[0075]深度包检测装置,还包括:过滤器,用于对接口数据包进行过滤及IP分流。
[0076]进一步地,深度包检测装置与服务器通信连接,包括:
[0077]移动通信网络中的多路网络接口通过交换机汇聚至深度包检测装置,深度包检测装置与服务器通信连接;[0078]或,
[0079]移动通信网络中的多路网络接口分别连接深度包检测装置,深度包检测装置与服务器通信连接。
[0080]本发明实施例中对原始信令消息进行压缩时的压缩比例可以根据实际需求进行设定,例如压缩比例为5:1,将压缩后的原始信令消息保存至硬盘中方便对网元间信令消息的追溯分析。
[0081]本发明实施例中的深度包检测装置中的各模块均以独立进程方式运行,通过共享内存通信,具有速度快,延时小的特点,除了保存原始信令消息外,没有对硬盘的IO操作。
[0082]本发明实施例的深度包检测装置能够采集移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据,同时具有采集数据速度快、存储量高、精巧便携、可灵活设置过滤条件实现数据过滤及IP分流等特点。
[0083]本发明实施例中的深度包检测装置通过旁路方式接入移动通信网络的骨干网络,能够获取实时的海量数据,同时不对网络造成压力或者影响。
[0084]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0085]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.深度包检测方法,其特征在于,包括: 采集移动通信网络接口中的接口数据包,且所述接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程; 所述采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。
2.根据权利要求1所述的方法,其特征在于,所述采集进程包括:对所述接口数据包进行过滤及IP分流。
3.根据权利要求2所述的方法,其特征在于,所述协议解析进程包括:解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息; 利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据,所述原始信令消息压缩后保存至硬盘中,所述话单记录数据上报至服务器。
4.根据权利要求3所述的方法,其特征在于,所述合成回填进程,包括:将同一用户的多个话单记录数据进行合并,并将和所述用户相关的属性信息加入与所述用户对应的所述话单记录数据中,其中所述属性信息包括:位置信息、及所使用终端信息。
5.根据权利要求1所述的方法,其特征在于,所述共享内存包括:创建共享内存、映射共享内存及根据用户指令解除共享内存映射; 其中,所述创建共享内存包括创建共享内存key标识,所述key标识设置的参数值满足创建条件时,创建一块新的共享内存;` 所述映射共享内存包括返回共享存储标识符,所述共享存储标识符的返回值满足设置的映射条件时,返回共享内存映射到进程中的地址; 所述解除共享内存的映射包括当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应的进程地址空间中移除。
6.根据权利要求1所述的方法,其特征在于,所述移动通信网络接口中的接口数据包包括:移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据。
7.深度包检测系统,其特征在于,包括: 深度包检测装置,用于采集移动通信网络接口中的接口数据包;所述接口数据包依次进行采集进程、协议解析进程及合成回填进程; 服务器,用于上网记录产生进程; 其中所述深度包检测装置及所述服务器中所进行的各进程之间均采用共享内存的方式传输产生的中间数据。
8.根据权利要求7所述的深度包检测系统,其特征在于,所述深度包检测装置,包括: 采集卡,用于采集移动通信网络接口中的接口数据包; 信令解析模块,用于解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据;原始信令保存模块,用于将所述原始信令消息压缩后保存至硬盘中,将所述话单记录数据上报至服务器。
9.根据权利要求8所述的深度包检测系统,其特征在于,所述深度包检测装置,还包括: 过滤器,用于对所述接口数据包进行过滤及IP分流。
10.根据 权利要求7所述的深度包检测系统,其特征在于,所述深度包检测装置与所述服务器通信连接,包括: 移动通信网络中的多路网络接口通过交换机汇聚至所述深度包检测装置,所述深度包检测装置与所述服务器通信连接; 或, 移动通信网络中的多路网络接口分别连接深度包检测装置,所述深度包检测装置与所述服务器通信连接。
【文档编号】H04L12/26GK103701666SQ201310740632
【公开日】2014年4月2日 申请日期:2013年12月27日 优先权日:2013年12月27日
【发明者】祝守宇, 赵林, 黄长波 申请人:北京西塔网络科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1