专利名称:Ip数据包识别方法及网关的制作方法
技术领域:
本发明涉及一种IP数据包识别方法及网关。
背景技术:
如图I所示,IP数据包分为IP数据头以及应用层数据。其中IP数据头存储的内容包括源IP地址,目的IP地址、源端口号,目的端口号以及通信协议等信息。通信协议通常包括TCP传输控制协议以及UDP用户数据协议。应用层数据为IP数据包所要传输的具体内容。如IEEE无线通信与网络会议中公开的英文文献《Maximum Entropy BasedIP-Traffic Classification in Mobile Communication Network》中,所描述的根据应用
层数据来识别IP数据包类型的方法包括以下步骤步骤I :根据端口号将接收到的η个IP数据包进行分组;步骤2 :提取同一组中每一个IP数据包应用层数据的前m个字节;步骤3 :将所述提取的每个字节均分解成8位的二进制由O和/或I组成的二进制串;步骤4 :统计这η个IP数据包所对应的二进制串对应位上O或I的个数;步骤5 :根据统计的结果以及定义的熵计算公式得到这η个数据包的熵值,所述熵值为提取到的IP数据包的特征;步骤6 :利用机器学习算法对这些数据包进行分类;步骤7 :对进行了步骤6的IP数据包进行分类标记。上述方法较更加原始的方法在准确度上有所提升,但是仍然存在以下缺点I :通过端口号将数据包分组,由于端口号分类的不准确性,从而分组后同一组内的数据包不一定属于同一个应用类型,所以降低了整体的识别准确度;2 :提取应用数据特征时,使用的方法很复杂,增加了计算量,IP数据包的识别效率低下,尤其是不适用于广泛使用的实时数据的传输中;3:由于算法中包含了比较、对比以及自定义熵值运算等多种运算,只能同时对一组IP数据包进行计算和类型判断,则必须等待接收到η个数据包,才能进行识别,对于先到的数据包等待的时间长,增加了网络延迟。
发明内容
针对上述问题,本发明提供一种准确率高,实时识别的高效率的IP数据包识别方法以及网关。为达上述目的,本发明IP数据包识别方法包括以下步骤提取IP数据包应用层数据的前N个字节;对提取的N个字节进行傅里叶变换,得到所述N个字节频域的特征串;利用机器学习算法根据所述特征串进行分类识别IP数据包的类型。
优选地,所述IP数据包识别方法还包括在完成分类的IP数据包添加类型标记。优选地,所述傅里叶变换为离散傅里叶变换或快速傅里叶变换。优选地,所述4彡N彡16。优选地,所述机器学习算法为SVM算法或PART算法或NB算法。为达上述目的,本发明网关,至少包括识别单元;所述识别单元包括提取模块,用以提取IP数据包应用层数据的前N个字节;傅里叶变换模块,用以接收所述提取模块提取的N个字节,并将所述N个字节进行傅里叶变换,得到频域所述N个字节频域的特征串;分类模块,用以接收所述傅里叶变换模块输出的特征串,并根据机器学习算法以及所述特征串对IP数据包进行分类。进一步地,所述网关还包括标记模块,根据所述分类模块对IP数据包的分类添加类型标记。 进一步地,所述傅里叶变换模块为DSP模块。进一步地,所述网关为应用在住宅、学校或企业网络环境中的家庭基站。本实用IP数据包识别方法及网关的有益效果I、本发明IP数据包识别方法及网关,直接从应用层数据提取前N个字节作为提取特征串的数据源,再根据特征串进行IP数据包类型的分类,准确度高。2、本发明IP数据包识别方法及网关,通过大量的实验以及实践,发现不同类型IP数据包的应用层数据在时域的特征差异小,在频域的特征差异大,通过傅里叶变换将提取的N个字节通过傅里叶变换转换到频域,再提取特征串,不仅准确度高,而且效率高。3、本发明IP数据包识别方法及网关,当接收到一个IP数据包后立即进行识别分类,实现了网络延迟最小化,适合数据实时传输。4、本发明IP数据包识别方法及网关,将N的值的范围设计为4彡N彡16,在保证分类的准确度的同时,减小了运算量,减少计算资源的消耗,缩短运算时间以及网络延迟小。5、本发明IP数据包识别方法及网关,既可以应用于有线IP数据包的传输也可以应用于无线IP数据包的传输;而本发明IP数据包识别方法及网关没有采用数据包的大小、到达时间间隔等这些不稳定特征来进行分类识别,而直接从应用数据中提取数据作为提取特征的原始数据,具有实现简单,快速高效、准确率高等特点。
图I是IP数据包的结构示意图;图2是本发明实施例一所述的IP数据包识别方法流程图;图3是本发明实施例二所述的IP数据包识别方法流程图;图4是本发明实施例四所述识别单元结构示意图;图5是本发明实施例五所述网关应用的网络拓扑结构图;图6是本发明实施例六所述网关的结构示意图。
具体实施方式
下面结合说明书附图对本发明做进一步的描述。传统的有线传输中,IP数据包的识别方法利用了数据包的大小、到达的时间间隔等特征。这些特征在有线网络较为稳定时,特征表现稳定,因而IP数据包的应用类型的识别准确率以及效率均较高,但是网络环境不稳定的无线网络以及有线网络环境恶劣的状况下,准确率和效率均低下。与此同时,在大量的分析、观察以及试验后发现变换到频域之前,不同的类型IP数据包的波形图无明显特点;变换到频域之后,不同类型的IP数据包的波形图聚合到不同的区域,不同的类型
具有不同的聚合图形,不管是人为观察或用于与机器学习算法的的识别,区别都很明显。因而根据上述发现,本发明提供了一种分类准确,识别速度快的IP数据包识别方法以及网关。实施例一如图2所示,本实施例IP数据包识别方法包括以下步骤步骤I :提取IP数据包应用层数据的前8个字节;所述8个字节依次为71. 00、69. 00,84. 00.、32· 00,47. 00,112. 00,114. 00 以及 110. 00步骤2 :将提取的8个字节进行快速傅里叶变换,得到该8个字节频域的特征串;所述的特征串,是由提取的8个字节通过快速傅里叶变换得到的对应的8个字节组成的;对应上述8个字节得到了频率的对应的8个字节为640. 00,49. 45+116. 27i、_80. 00-38. OOi、-I. 45+56. 26i、-8. 00,-1. 45-56. 26i、_80. 00+38. 00i、49. 45-116. 26i。上述 8 个频域的字节组成了特征串。步骤3 :利用SVM(Support Vector Machine)算法对上述特征串进行分类,识别IP数据包的类型;通过SVM算法的计算、分析、比较得到本实施例中所述的IP数据包为HTTP应用类型的数据包IP数据包的分类可以依据IP数据包的应用类型,也可以依据IP数据包中应用层数据的特定信息,如加载的指纹信息、加扰码等可识别信息。其中应用类型是根据IP数据包所对应的传输协议来区分的主要包括RTP(Real-Time-Transport Protocal)实时传输协议、RTSP(Real-Time-StreamingProtocal)实时流传输协议、FTP (File-Transfer Protocal)文件传输协议、P2P (Peer ToPeer)点对点传输以及HTTP (Hypertext-Ttransport Protocol)超文本传输协议等等,应用以上5种协议传输的IP数据包在日常的通信应用中超过80%以上;本实施例IP数据包识别方法,首先,直接从IP数据包中的应用层数据中提取前8个字节,因为这8个字节直接对应的是IP数据包所存储的信息内容即可根据信息内容准确的提取所应用的数据类型,准确率高;其次,根据实践发现,不同应用数据在时域特征区别不大,然而转换到频域特征区别差异大的规律,将提取的8个字节进行快速傅里叶变换,得到这个8个字节所对应的频率的特征串,进一步提闻了准确度;再次,采用快速傅里叶算法,大大节省了运算量,效率高,时延小;最后,对每一个接收到的IP数据包单独进行数据包的识别,相对于传统方法中执行一次IP数据包的识别的对一组中几个到几十个不等的数据包的识别,实现小,具备实时性,适用于实时数据传输。实施例二如图3所示,本实施例IP数据包识别方法包括以下步骤第一提取IP数据包应用层数据的前6个字节;所述6个字节所依次为128. 00、107. 00,25. 00,212. 00,0. 00,29. 00 ;第二 通过离散傅里叶变换将从时域信号中提取的6个字节的变换成频域信号中所对应的 6个字节;所述6 个字节依次为 501. 00,-28. 00-89. 20i、259. 00-15. 90i、_195. 00、259. 50+45. 90i、-28. 00+89. 20i。频域中6个字节组成了频域中的特征串;计算得到频率的特征串,还可以通过快速傅里叶变换计算得到;快速傅里叶变换是离散傅里叶变换的一种快速算法,具有运算量小,高效准确的特点;第三利用NB(Naive Bayes)贝叶斯分类算法根据上述频率的特征串进行分类,识别IP数据包的类型;通过识别本实施例所述的IP数据包为RTP应用类型的数据包。第四根据在第三步中对IP数据包的分类,在完成分类的IP数据包添加类型标记,不同IP数据包类型所对应的类型标记不同。根据实践运算得知,提取6个字节的用于特征串的计算,HTTP协议类型的IP数据包的识别准确率为O. 93 ;P2P协议类型的IP数据包识别准确率为O. 92 ;FTP协议类型的IP数据包识别准确率为O. 99 ;RTSP协议类型的IP数据包识别准确率为O. 95 ;RTP协议类型的IP数据包识别准确率为O. 99。由上述数据可知常见应用类型IP数据包的准确率均在O. 92以上,足以满足传输的需求,且应用于快速傅里叶变换以及分类的时间平均为O. 000082秒;采用8个字节时应用与快速傅里叶变换以及分类所需的平均时间为O. 000130秒。综合上述可知,本实施例IP数据包识别方法识别的准确度高,速度快,离散傅里叶变换可以实现时域信号到频域信号的转换,应用此方法较传统方法速度依然较快,但是相对于快速傅里叶变换,运算量更小,速度更快,系统所耗资源更小,进一步降低了 IP数据包传输的时延。而采用应用层数据6个字节作为特征串的原始数据,既可以达到准确率高的目的,同时运算量小,从而具有速度快,系统资源节省的特点。实施例三本实施例IP数据包识别方法为提取IP数据包应用层数据的前4个字节;所述的4个字节依次为36. 00,2. 00、
2.00,43. 00将提取的4个字节进行快速傅里叶变换,得到该4个字节相对应的频域的4个字节依次为83. 00,34. 00+41. OOi,-7. 00,34. 00-41. 00i,所述4个字节转换成频域信号,得到频域的特征串;利用RART(Partial Decision Tree)部分决策树算法对上述特征串进行分类,识别IP数据包的类型;本实施例所述的IP数据包属于RTSP应用类型的数据包。根据IP数据包的分类,在完成分类的IP数据包添加类型标记,每一种应用类型所对应的类型标记不同。采用4个字节对作为提取特征串的原始数据,由于提取的数据较少,相对于采用6个字节、8个字节作为原始数据提取的特征串的准确率有所降低,但是相对于传统的方法依然具有较高的准确率,但是本实施例所用的时间,较实施例一、实施例二所用时间短。综合实施一至实施例三可知I、应用于本发明IP数据包识别方法的特征串提取的算法包括快速傅里叶变换以及离散傅里叶变换;
2、应用于特征串的分类的机器学习算法至少包括SVM算法、PART算法以及NB算法;3、N值的大小与运算量成反比,N值越大,运算量越大,运算消耗的系统资源越多,故在不影响准确率的前提下,优选N值的范围为4-16个字节。实施例四本实施例网关至少包括识别单元;如图4所示,所述识别单元包括依次连接的提取模块、傅里叶变换模块以及分类模块;提取模块,用以提取IP数据包应用层数据的前N个字节;N大于等于4,为提取模块的预设值。N值的大小,即提取的字节的多寡,根据实际应用的需要以及分类要求而确定,
通常4个字节就可以用于准确的实现分类; 傅里叶变换模块,用以接收所述提取模块提取的N个字节,并将所述N个字节进行傅里叶变换,得到频域所述N个字节频域的特征串#个时域内的字节通过傅里叶变换后将得到频域内所对应的N个字节,频域内的N个字节组成了特征串,并且作为分类模块的输入,用于后续机器学习算法的计算;分类模块,用以接收所述傅里叶变换模块输出的特征串,并根据机器学习算法以及所述特征串对IP数据包进行分类;机器学习算法至少包括SVM算法、PART算法以及NB算法。其中所述傅里叶变换可以是离散傅里叶变化也可以是快速傅里叶变换,快速傅里叶变换较离散傅里叶变换运算量更小,运算速度更快。本实施例网关,打破了传统网关在时域提取IP数据包特征串来进行应用类型分类和识别的方法,通过离散傅里叶变换或快速傅里叶变换在频域提取特征串,准确度更高,速度更快;且单独对每一个输入的IP数据包进行识别、分类,解决了传统技术中需要等待若干个数据包足够组成一个运算对比组进行IP数据包的解析、分类以及识别具有延时小,效率高的特点;此外采取傅里叶算法直接对提取的N个数据进行时域信号到频域信号的变换,取代了传统网关中通过预设的自定义熵计算方法来实现特征串的提取,具有实现更加简单,闻效等优点。实施例五如图5所示,在实施例四的基础上,本实施例网关为应用在住宅、学校或企业网络环境中的家庭基站HNB。由于无线网络经常性的具有高延时、高误码率、临时断开等特点,传统应用利用数据包大小、数据包达到间隔等特征来识别的方法直接应用与无线网络中,准确率低,效率低。家庭基站(femtocell)是一种毫微微米蜂窝基站,面向住宅或企业环境,传输距离小于200m,一般支持4-16个用户的网关。手机或上网卡等用户终端注册到家庭基站上,提出业务需求,家庭基站中的接收单元利用天线接收IP数据包,在交给本实施例中识别单元中提取模块,傅里叶变变换模块、分类模块以及标记模块进行分类识别后,再由传输单兀根据识别模块的标记选择以卸载模式传输还是不卸载模式传输本实施例所述的家庭基站HNB,根据无线网络的高时延、高误码率、临时断开的特点,由识别单元采用提取IP数据包应用层数据中的前N个,在通过傅里叶变换提取该前N个数据的频率的特征串,完全不依赖无线网络的网络状况,分类准确,效率高。
实施例六如图6所示,本实施例网关包括依次连接的接收单元,识别单元以及传输单元,所述接收单元接收输入的IP数据包;所述接收单元,用以接收输入的IP数据包,并将接收到的IP数据包输入到所述识别单元;所述识别单元包括提取模块,用以提取所述接收单元所接收的IP数据包应用层数据的前N个字节;本实施例所述提取的字节的个数为7 ;且所述7个字节依次为3. 00,3. 00、155. 00,80. 00、O. 00、0· 00、0· 00 ;傅里叶变换模块,为DSP (Digital Signal Processing)数字信号处理模块,用以接收所述提取模块提取的I个字节,并将所述I个字节进行傅里叶变换,得到频域所述I个字节频域的特征串;上述7个字节经傅里叶变换后得到的频域内的7个字节依次为为241.00,-101. 70-188. 17i、-87. 14+41. 89i、79. 14-41. 89i、_87. 44-101. 70i、_101. 70+188. 17i ;所述DSP模块用于进行快速傅里叶变换或离散傅里叶变换.DSP数字信号处理具有处理信息量大、处理速度快、易于存储、可编程等特点,在使用DSP模块进行傅里叶变换进一步提高了网关对IP数据包识别分类的速率,进一步减小了延时;分类模块,用以接收所述傅里叶变换模块输出的特征串,并根据机器学习算法以及所述特征串对IP数据包进行分类;通过机器学习算法的分析、计算、比较等处理,得出本实施例所述的IP数据包为P2P应用类型的数据包。标记模块,根据所述分类模块对IP数据包的分类添加类型标记;所述传输单元,根据类型标记选择卸载传输或不卸载传输模式传输所述IP数据包。本实施例网关,可应用于无线网络也可以应用于有线网络,在进行IP数据包解析、识别、分类的过程中具有准确率高、效率高的特点。以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。
权利要求
1.一种IP数据包识别方法,其特征在于,所述IP数据包识别方法包括以下步骤 提取IP数据包应用层数据的前N个字节; 对提取的N个字节进行傅里叶变换,得到所述N个字节频域的特征串; 利用机器学习算法根据所述特征串进行分类识别IP数据包的类型。
2.根据权利要求I所述的IP数据包识别方法,其特征在于,所述IP数据包识别方法还包括在完成分类的IP数据包添加类型标记。
3.根据权利要求I所述的IP数据包识别方法,其特征在于,所述傅里叶变换为离散傅里叶变换或快速傅里叶变换。
4.根据权利要求I所述的IP数据包识别方法,其特征在于,所述4< N < 16。
5.根据权利要求I所述的IP数据包识别方法,其特征在于,所述机器学习算法为SVM算法或PART算法或NB算法。
6.一种网关,至少包括识别单元,其特征在于,所述识别单元包括 提取模块,用以提取IP数据包应用层数据的前N个字节; 傅里叶变换模块,用以接收所述提取模块提取的N个字节,并将所述N个字节进行傅里叶变换,得到所述N个字节频域的特征串; 分类模块,用以接收所述傅里叶变换模块输出的特征串,并根据机器学习算法以及所述特征串对IP数据包进行分类。
7.根据权利要求6所述的网关,其特征在于,所述识别单元还包括 标记模块,根据所述分类模块对IP数据包的分类添加类型标记。
8.根据权利要求6所述的网关,其特征在于,所述傅里叶变换模块为DSP模块。
9.根据权利要求6所述的网关,其特征在于,所述网关为应用在住宅、学校或企业网络环境中的家庭基站。
全文摘要
本发明公开了一种IP数据包识别方法及网关,为解决现有的IP数据包识别方法及网关,准确率低、效率低、时延大等问题而设计。本发明IP数据包识别方法,通过提取IP数据包应用层数据的前N个字节,并将提取的字节通过傅里叶变换转成频域信号,得到频域的特征串,以机器学习算法根据特征串对IP数据包进行分类。本发明网关至少包括识别单元;所述识别单元包括依次连接的提取模块、傅里叶变换模块以及分类模块。本发明IP数据包识别方法以及网关对IP数据包的识别分类具有准确率高、效率高、实现简单等优点。
文档编号H04L29/06GK102821101SQ201210265269
公开日2012年12月12日 申请日期2012年7月27日 优先权日2012年7月27日
发明者石晶林, 胡金龙, 韩雪, 韩霖 申请人:北京中科晶上科技有限公司