CN103701666B - 深度包检测方法及系统 - Google Patents
深度包检测方法及系统 Download PDFInfo
- Publication number
- CN103701666B CN103701666B CN201310740632.7A CN201310740632A CN103701666B CN 103701666 B CN103701666 B CN 103701666B CN 201310740632 A CN201310740632 A CN 201310740632A CN 103701666 B CN103701666 B CN 103701666B
- Authority
- CN
- China
- Prior art keywords
- interface
- shared drive
- data
- packet detection
- deep packet
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及移动互联网技术领域,具体而言,涉及深度包检测方法及系统。其中,该深度包检测方法,包括:采集移动通信网络接口中的接口数据包,且接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程;采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。本发明提供的深度包检测方法及系统中,深度包检测的各过程间均采用共享内存的方式传输中间数据,使整个深度包检测的过程中没有低速设备(例如磁盘)的参与,如此能够提高深度包检测过程中中间数据的传输速率。
Description
技术领域
本发明涉及移动互联网技术领域,具体而言,涉及深度包检测方法及系统。
背景技术
随着移动互联网技术的快速发展及智能终端的快速普及,使用移动互联网数据业务的用户越来越多,需要保存的用户上网记录也越来越多。当用户通过手机、平板电脑等移动终端连接到移动通信网络时,会产生大量的访问数据。为评估移动互联网络的通信流量和质量,了解用户上网习惯及引导用户上网行为,需要对海量数据(省级流量在10Gbps左右)进行分析。当前多采用深度包检测技术(Deep Packet Inspection,DPI)对移动互联网络中的数据包进行数据检测分析。
现有的深度包检测DPI技术,是一种基于应用层的流量检测和控制技术,当接收到IP数据包、TCP或UDP数据流时,通过读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到整个应用程序的内容。其中,深度包检测技术在数据分析的过程中会产生大量的中间过程数据需要传输。当前中间数据的传输可以采用多线程方法,该方法的各线程间以共享资源的方式传输数据,传输效率低;中间数据的传输也可以采用文件缓存方法,但以缓存文件的方式传输数据,涉及磁盘读写交互,性能较低,不适用于高流量快速响应的情景。
由此看出,相关技术中的深度包检测过程中,中间数据的传输方法存在传输效率低的技术问题。
发明内容
本发明的目的在于提供深度包检测方法及系统,以解决上述的问题。
在本发明的实施例中提供了深度包检测方法,包括:
采集移动通信网络接口中的接口数据包,且所述接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程;
所述采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。
优选地,所述采集进程包括:对所述接口数据包进行过滤及IP分流。
优选地,所述协议解析进程包括:解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息;
利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据,所述原始信令消息压缩后保存至硬盘中,所述话单记录数据上报至服务器。
优选地,所述合成回填进程,包括:将同一用户的多个话单记录数据进行合并,并将和所述用户相关的属性信息加入与所述用户对应的所述话单记录数据中,其中所述属性信息包括:位置信息、及所使用终端信息。
优选地,所述共享内存包括:创建共享内存、映射共享内存及根据用户指令解除共享内存映射;
其中,所述创建共享内存包括创建共享内存key标识,所述key标识设置的参数值满足创建条件时,创建一块新的共享内存;
所述映射共享内存包括返回共享存储标识符,所述共享存储标识符的返回值满足设置的映射条件时,返回共享内存映射到进程中的地址;
所述解除共享内存的映射包括当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应的进程地址空间中移除。
优选地,所述移动通信网络接口中的接口数据包包括:移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据。
深度包检测系统,包括:
深度包检测装置,用于采集移动通信网络接口中的接口数据包;所述接口数据包依次进行采集进程、协议解析进程及合成回填进程;
服务器,用于上网记录产生进程;
其中所述深度包检测装置及所述服务器中所进行的各进程之间均采用共享内存的方式传输产生的中间数据。
优选地,所述深度包检测装置,包括:
采集卡,用于采集移动通信网络接口中的接口数据包;
信令解析模块,用于解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据;
原始信令保存模块,用于将所述原始信令消息压缩后保存至硬盘中,将所述话单记录数据上报至服务器。
优选地,所述深度包检测装置,还包括:
过滤器,用于对所述接口数据包进行过滤及IP分流。
优选地,所述深度包检测装置与所述服务器通信连接,包括:
移动通信网络中的多路网络接口通过交换机汇聚至所述深度包检测装置,所述深度包检测装置与所述服务器通信连接;
或,
移动通信网络中的多路网络接口分别连接深度包检测装置,所述深度包检测装置与所述服务器通信连接。
本发明实施例提供的深度包检测方法及系统中,深度包检测的各过程间均采用共享内存的方式传输中间数据,使整个深度包检测的过程中没有低速设备(例如磁盘)的参与,如此能够提高深度包检测过程中中间数据的传输速率。
附图说明
图1示出了本发明实施例中深度包检测方法的流程图;
图2示出了本发明实施例深度包检测方法的效果示意图;
图3示出了本发明实施例中深度包检测系统的结构示意图。
具体实施方式
下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。
本发明实施例中提供了一种深度包检测方法,如图1所示,主要包括:
步骤S11:采集移动通信网络接口中的接口数据包,且接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程;
步骤S12:采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。
本发明实施例的深度包检测方法中,深度包检测的各过程间均采用共享内存的方式传输中间数据,使整个深度包检测的过程中没有低速设备(例如磁盘)的参与,如此能够提高深度包检测过程中中间数据的传输速率。
其中采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据的效果示意图如图2所示。
进一步具体地,采集进程包括:对接口数据包进行过滤及IP分流。
另外,协议解析进程包括:解析接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个接口数据包的解析数据包合并为数据流,利用数据流生成话单记录数据,原始信令消息压缩后保存至硬盘中,话单记录数据上报至服务器。
本发明实施例的协议解析进程中,对得到的接口数据包解析至OSI模型的应用层,由此能够获取移动通信网络中对应接口中的原始信令消息,即能够获取移动通信网络中网元间的信令数据,获取的信令数据能够为移动通信公司的网络优化提供数据基础。
本发明实施例中,合成回填进程,包括:将同一用户的多个话单记录数据进行合并,并将和用户相关的属性信息加入与用户对应的话单记录数据中,其中属性信息包括:位置信息、及所使用终端信息。
优选地,共享内存包括:创建共享内存、映射共享内存及根据用户指令解除共享内存映射;
其中,创建共享内存包括创建共享内存key标识,key标识设置的参数值满足创建条件时,创建一块新的共享内存;
映射共享内存包括返回共享存储标识符,共享存储标识符的返回值满足设置的映射条件时,返回共享内存映射到进程中的地址;
解除共享内存的映射包括当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应的进程地址空间中移除。
另外,本发明实施例中举例说明如何实现共享内存,例如:
1、创建共享内存,实现的函数可以为:
int shmget(key_t key,int size,int shmflg)
参数
key标识:共享内存的键值:0/IPC_PRIVATE。当key的取值为IPC_PRIVATE,则函数shmget将创建一块新的共享内存;如果key的取值为0,而参数中又设置了IPC_PRIVATE这个标志,则同样会创建一块新的共享内存。
返回值:如果成功,返回共享内存表示符,如果失败,返回-1。
2、映射共享内存,其实现的函数可以为:
int shmat(int shmid,char*shmaddr,int flag)
参数:
shmid:shmget函数返回的共享存储标识符
flag:决定以什么样的方式来确定映射的地址(通常为0)
返回值:如果成功,则返回共享内存映射到进程中的地址;如果失败,则返回-1。
3、解除共享内存映射
当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应进程地址空间中移除,实现函数可以为:int shmdt(char*shmaddr)。
本发明实施例的深度包检测方法中,移动通信网络接口中的接口数据包包括:移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据。
进一步地,现有技术中的深度包检测技术采用先缓存原始海量数据,然后分析的模式。这样加大了系统的IO压力,时效性大大降低,并且影响了系统的处理能力。
本发明实施例中的深度包检测方法采用共享内存的通信模式和流程化的分析模式,由此大幅减轻了深度包检测系统的输入输出IO压力,提高了分析效率,使单套系统的处理能力到达2Gbps,丢包率小于百万分之一,处理时效达到10秒以内。在深度包检测装置的信令解析部件中,各种协议解析模块通过动态挂载的方式工作,使得系统配置灵活,对数据包的解析也更充分。当出现一种新的协议,或者需要关注一个新的企业关键绩效指标KPI时,只需要新增或者更新一下挂载的协议解析模块即可。
本发明实施例中还提供一种深度包检测系统,如图3所示,包括:
深度包检测装置21,用于采集移动通信网络接口中的接口数据包;接口数据包依次进行采集进程、协议解析进程及合成回填进程;
服务器22,用于上网记录产生进程;
其中深度包检测装置及服务器中所进行的各进程之间均采用共享内存的方式传输产生的中间数据。
其中,深度包检测装置,包括:
采集卡,用于采集移动通信网络接口中的接口数据包;
信令解析模块,用于解析接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个接口数据包的解析数据包合并为数据流,利用数据流生成话单记录数据;
原始信令保存模块,用于将原始信令消息压缩后保存至硬盘中,将话单记录数据上报至服务器。
深度包检测装置,还包括:过滤器,用于对接口数据包进行过滤及IP分流。
进一步地,深度包检测装置与服务器通信连接,包括:
移动通信网络中的多路网络接口通过交换机汇聚至深度包检测装置,深度包检测装置与服务器通信连接;
或,
移动通信网络中的多路网络接口分别连接深度包检测装置,深度包检测装置与服务器通信连接。
本发明实施例中对原始信令消息进行压缩时的压缩比例可以根据实际需求进行设定,例如压缩比例为5:1,将压缩后的原始信令消息保存至硬盘中方便对网元间信令消息的追溯分析。
本发明实施例中的深度包检测装置中的各模块均以独立进程方式运行,通过共享内存通信,具有速度快,延时小的特点,除了保存原始信令消息外,没有对硬盘的IO操作。
本发明实施例的深度包检测装置能够采集移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据,同时具有采集数据速度快、存储量高、精巧便携、可灵活设置过滤条件实现数据过滤及IP分流等特点。
本发明实施例中的深度包检测装置通过旁路方式接入移动通信网络的骨干网络,能够获取实时的海量数据,同时不对网络造成压力或者影响。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.深度包检测系统,其特征在于,包括:深度包检测装置和与所述深度包检测装置通信连接的服务器;
深度包检测装置,用于采集移动通信网络接口中的接口数据包;所述接口数据包依次进行采集进程、协议解析进程及合成回填进程,
其中,深度包检测装置,包括:
采集卡,用于采集移动通信网络接口中的接口数据包;
信令解析模块,用于解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息;利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据;
原始信令保存模块,用于将所述原始信令消息压缩后保存至硬盘中,将所述话单记录数据上报至服务器;
过滤器,用于对所述接口数据包进行过滤及IP分流;
合成回填进程,用于将同一用户的多个话单记录数据进行合并,并将和所述用户相关的属性信息加入与所述用户对应的所述话单记录数据中,其中所述属性信息包括:位置信息、及所使用终端信息;
服务器,用于上网记录产生进程;
其中所述深度包检测装置及所述服务器中所进行的各进程之间均采用共享内存的方式传输产生的中间数据。
2.根据权利要求1所述的深度包检测系统,其特征在于,所述深度包检测装置与所述服务器通信连接,包括:
移动通信网络中的多路网络接口通过交换机汇聚至所述深度包检测装置,所述深度包检测装置与所述服务器通信连接;
或,
移动通信网络中的多路网络接口分别连接深度包检测装置,所述深度包检测装置与所述服务器通信连接。
3.深度包检测方法,其特征在于,包括:
采集移动通信网络接口中的接口数据包,且所述接口数据包依次进行采集进程、协议解析进程、合成回填进程及上网记录产生进程,
其中,所述采集进程包括:对所述接口数据包进行过滤及IP分流;
所述协议解析进程包括:解析所述接口数据包中的数据内容至OSI模型的应用层,得到解析数据包及解析的所述接口数据包所对应的移动通信网络接口的原始信令消息;
利用五元组将解析得到的多个所述接口数据包的解析数据包合并为数据流,利用所述数据流生成话单记录数据,所述原始信令消息压缩后保存至硬盘中,所述话单记录数据上报至服务器;
所述合成回填进程,包括:将同一用户的多个话单记录数据进行合并,并将和所述用户相关的属性信息加入与所述用户对应的所述话单记录数据中,其中所述属性信息包括:位置信息、及所使用终端信息
所述采集进程、协议解析进程、合成回填进程及上网记录产生进程之间均采用共享内存的方式传输产生的中间数据。
4.根据权利要求3所述的方法,其特征在于,所述共享内存包括:创建共享内存、映射共享内存及根据用户指令解除共享内存映射;
其中,所述创建共享内存包括创建共享内存key标识,所述key标识设置的参数值满足创建条件时,创建一块新的共享内存;
所述映射共享内存包括返回共享存储标识符,所述共享存储标识符的返回值满足设置的映射条件时,返回共享内存映射到进程中的地址;
所述解除共享内存的映射包括当接收到用户的解除共享内存指令时,将该指令指定的共享内存映射从与其对应的进程地址空间中移除。
5.根据权利要求3所述的方法,其特征在于,所述移动通信网络接口中的接口数据包包括:移动通信网络中Gb接口、IuPS接口、Gn接口、Gi接口、GW接口和WLAN接口中的接口数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740632.7A CN103701666B (zh) | 2013-12-27 | 2013-12-27 | 深度包检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740632.7A CN103701666B (zh) | 2013-12-27 | 2013-12-27 | 深度包检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103701666A CN103701666A (zh) | 2014-04-02 |
CN103701666B true CN103701666B (zh) | 2017-04-05 |
Family
ID=50363069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310740632.7A Active CN103701666B (zh) | 2013-12-27 | 2013-12-27 | 深度包检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103701666B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106470431B (zh) * | 2015-08-14 | 2019-08-02 | 中国联合网络通信集团有限公司 | 一种获取用户感知速率的方法及装置 |
CN111988271B (zh) * | 2020-06-30 | 2021-11-16 | 联想(北京)有限公司 | 一种通信流处理方法及装置 |
CN115237609B (zh) * | 2022-09-22 | 2022-12-27 | 深圳市优网科技有限公司 | 一种用户信息快速关联回填的方法、装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023670A (zh) * | 2011-09-20 | 2013-04-03 | 中兴通讯股份有限公司 | 基于dpi的报文业务类型识别方法及装置 |
-
2013
- 2013-12-27 CN CN201310740632.7A patent/CN103701666B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023670A (zh) * | 2011-09-20 | 2013-04-03 | 中兴通讯股份有限公司 | 基于dpi的报文业务类型识别方法及装置 |
Non-Patent Citations (2)
Title |
---|
"Linux进程间通信——使用共享内存";ljianhui;《ljianhui的专栏-CSDN博客》;20130824;全文 * |
"基于多核处理器的深度包检测的实现和性能评估";万志涛;《电信科学》;20091015(第10A期);正文第2.3节深度包检测系统,图1 * |
Also Published As
Publication number | Publication date |
---|---|
CN103701666A (zh) | 2014-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109309605B (zh) | 带内网络遥测系统及方法 | |
CN104219330B (zh) | 一种基于web代理进行录屏审计的方法及系统 | |
CN106815112A (zh) | 一种基于深度包检测的海量数据监控系统及方法 | |
CN106101015A (zh) | 一种移动互联网流量类别标记方法和系统 | |
CN103856530B (zh) | 操作日志的管理方法、服务器、终端及系统 | |
CN110300115A (zh) | 一种基于多通道的数据传输方法以及相关装置 | |
CN102469020B (zh) | 一种业务控制方法及系统、演进基站、分组数据网网关 | |
CN108259371A (zh) | 一种基于流处理的网络流量数据解析方法和装置 | |
CN103067218B (zh) | 一种高速网络数据包内容分析装置 | |
CN103701666B (zh) | 深度包检测方法及系统 | |
CN106789242A (zh) | 一种基于手机客户端软件动态特征库的识别应用智能分析引擎 | |
CN109618372A (zh) | 数据传输方法及相关装置 | |
CN107104824A (zh) | 一种网络拓扑确定方法和装置 | |
CN107666486A (zh) | 一种基于报文协议特征的网络数据流恢复方法及系统 | |
CN103188042A (zh) | 一种ip数据包的匹配方法和匹配加速器 | |
CN109828843A (zh) | 一种计算节点间数据传输的方法、系统及电子设备 | |
CN102761558A (zh) | 基于Xilinx FPGA和Treck协议栈的以太通信系统及其通信方法 | |
CN101753639B (zh) | 基于流量通信模式的服务角色识别方法 | |
CN106953741B (zh) | 一种面向网络仿真环境的流量回放方法及系统 | |
WO2014008694A1 (zh) | 一种实现ps域分布式架构的信令监测装置 | |
CN103379125A (zh) | 基于社交网络的多屏互动方法 | |
CN106656919A (zh) | 一种基于Telnet协议的会话解析方法及系统 | |
CN108206829A (zh) | 基于FPGA实现GigE Vision协议进行网络通信的方法 | |
CN105516016B (zh) | 一种使用Tilera多核加速卡基于流的数据包过滤系统及数据包过滤方法 | |
CN105099764B (zh) | 日志处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |