网络数据流识别系统及方法

文档序号:6644959阅读:216来源:国知局
专利名称:网络数据流识别系统及方法
技术领域
本发明涉及网络数据传输领域,更具体地说,涉及一种网络数据流识别系统及方法。
背景技术
随着宽带网络、流媒体、编解码、信息加密和存储技术的发展,以TCP/IP协议网络为承载基础的视频业务越来越多。这类以IP及其相关技术为基础的视频业务称为网络电视(IPTV)(区别于基于DVB(Digital Video Broadcast,数字视频广播)的数字电视广播业务)。伴随着正常的IPTV业务发展,一种新兴的基于P2P(Peer-to-Peer,点对点)方式的网络电视业务逐渐为更多宽带用户所使用。
P2P业务本身是一种难以管理的流量。从现有的应用情况看,其对带宽的侵蚀性以及本身路由的无管理性给网络带来了巨大的负担和大量的低效流量。随着IPTV运营的逐渐展开,免费的基于P2P方式的网络电视业务本身也会给正常的IPTV运营造成影响,不利于正常业务的推广与发展。此外,以P2P方式传播的视频业务本身也存在版权问题。
基于以上原因,必须通过技术手段识别出基于P2P方式的视频业务,从而可对其进行管理和控制。
目前识别网络数据流业务的方法主要有以下几种(1)基于端口的业务识别技术传统的客户端—服务器(Client<->Server)模式的互联网应用采用IANA(Internet Assigned Numbers Authority,因特网号分配机构)定义的特定的服务端口号,因此通过端口号即可识别出业务类型。而P2P网络电视应用通常没有中心的服务器和固定的服务端口号,因此端口号识别的方法不适合绝大多数的P2P网络电视应用识别。
(2)基于流统计性的业务识别技术由于P2P应用通常伴随着大量的TCP连接和UDP流产生,因此通过连接数和流数的统计值来发现P2P应用成为一种可能。但是除了P2P应用外,传统服务器、以及DDOS被攻主机的流统计特性有相似特征,因此容易产生误报,而且该方法对于只有产生较少TCP连接和少量流的P2P应用会产生误报。该方式能够早期预警P2P流量的发生,无法区分具体的P2P应用类型。

发明内容
本发明要解决的技术问题在于,针对现有技术上述的误识或无法识别P2P数据流的识别的缺陷,提供一种网络数据流识别系统及方法。
本发明解决其技术问题所采用的技术方案是构造一种网络数据流识别系统,包括有数据流识别模块以及数据流特征库,所述数据流特征库中包括有多组网络数据流的特征,所述数据流识别模块根据数据流特征库中的网络数据流特征识别特定的数据流。
在本发明所述的网络数据流识别系统中,所述数据流特征库包括有多组点对点方式网络电视数据流特征。
在本发明所述的网络数据流识别系统中,还包括流表更新模块,所述流表更新模块判断当前的IP报文对应的数据流是否为已标记类型的数据流,所述流表更新模块还用于将没有标记类型的数据流根据IP报文的源和目的端口号,判断其是否为特定应用类型,如果是则对该IP报文对应的数据流进行标记,如果不是则将报文送入所述数据流识别模块进行识别。
在本发明所述的网络数据流识别系统中,所述数据流特征库包括有TCP数据流特征库和UDP数据流特征库,所述TCP数据流特征库和UDP数据流特征库分别包含有TCP网络电视流特征数据和UDP网络电视流特征数据,所述数据流识别模块包括有识别输入报文类型的报文识别模块、根据TCP数据流特征库识别TCP网络电视流的TCP流识别模块以及根据UDP数据流特征库识别UDP网络电视流的UDP流识别模块,其中TCP流识别模块及UDP流识别模块则分别与报文识别模块连接。
在本发明所述的网络数据流识别系统中,所述TCP数据流特征库包括有以下一组或多组特征TCP净荷前四个字节为0x2c000000;TCP净荷前六个字节为0x0E0E01000000或关键字“STMM”;TCP净荷前三个字节为0x000000;净荷开始四个字节为0x11000000;TCP静荷前10个字节对应字符串为“PSProtocol”;TCP净荷前四个字节为0x01000000。
在本发明所述的网络数据流识别系统中,所述UDP数据流特征库包括有以下一组或多组特征净荷前四个字节为0x01000002;只有2对DNS请求和回应报文且报文包含如下两个域名boot.coolstreaming.com.cn、boot.coolbooting.cn。
本发明还提供一种网络数据流识别方法,包括以下步骤(a)在数据报文中检查是否含有数据流特征库中的任意一条特征;(b)若检索到与所述特征字匹配的流量特征,则标记当前报文对应的数据流为特定的数据流。
在本发明所述的网络数据流识别方法中,所述步骤(a)包括(a1)根据当前报文中的协议类型字段判断当前报文的类型;(a2)若当前报文为TCP类型报文,则在TCP数据流特征库中检索与当前报文中的特征字相匹配的流量特征;若当前报文为UDP类型报文,则在UDP数据流特征库中检索与当前报文中的特征字相匹配的流量特征。
在本发明所述的网络数据流识别方法中,还包括根据报文更新TCP/IP流表以判断对应数据流类型是否已标记,并在数据流类型未标记时执行步骤(a)。
在本发明所述的网络数据流识别方法中,所述数据流特征库包括有多组点对点方式网络电视数据流特征,所述步骤(b)中所述特定的数据流为点对点方式网络电视流。
本发明的网络数据流识别系统及方法,通过匹配数据流特征,识别数据流的应用类型。此外,通过对数据流分类识别,有效地减少了特征匹配的计算量从而达到P2P网络电视应用业务识别的目的。


图1是本发明网络数据流识别系统的结构框图;图2是图1中数据流识别模块及数据流特征库的结构框图;图3是本发明网络数据流识别方法的流程图。
具体实施例方式
如图1所示,在本发明的网络数据流识别系统的第一实施例中,网络数据流识别系统连接到基于TCP/IP协议的网络中,并通过分光机或网络镜像服务器(图中未示出)等获取网络中的数据流,其包括有一个数据流识别模块13以及一个数据流特征库14。
目前的P2P网络电视,主要包括有PPLIVE、沸点、Coolstreaming、Ppstream、CCIPTV等,其数据流对应特征如下(1)PPLIVE网络电视流量特征UDP流量特征在一个UDP流中存在源端口为4004或净荷前四个字节为0x01000002的报文;TCP流量特征在一个TCP流中存在源端口为8008或净荷前四个字节为0x2c000000的报文;(2)沸点网络电视流量特征沸点网络电视的主要流量为TCP流量,其特征如下存在净荷前六个字节为0x0E0E01000000或净荷中含有关键字“STMM”的报文;(3)Coolstreaming流量特征TCP数据流中存在净荷前三个字节为0x000000的报文;或UDP流只有2对DNS请求和回应报文,且报文包含如下两个域名boot.coolstreaming.com.cn、boot.coolbooting.cn;(4)PPstream流量特征PPstream的流量为TCP流量,其每个流中存在净荷长度21字节或净荷开始四个字节为0x11000000的报文此外在PPstream的数据通道连接建立时存在如下特征数据包净荷前10个字节为PSProtocol;(5)CCIPTV流量特征净荷开始四个字节为0x01000000。
数据流特征库14中存储有上述各类网络电视流的特征。
数据流识别模块13读取来自网络的IP报文中的特征字符串以及其他特征(如端口号、净荷长度、包含的关键字等),并将上述特征字符串及其他特征与数据流特征库中的网络电视流特征进行比对,并根据比对结果确定IP报文对应的数据流是否为网络电视流。若IP报文中的特征字符串及其他特征符合数据流特征库14中的一组网络电视流特征,则数据流识别模块13可确定该数据流为网络电视流;若在数据流特征库14中不存在与IP报文中的特征字符串及其他特征匹配的网络电视流特征组,则数据流识别模块13将其标记为未识别数据流并送入其他协议处理模块133处理。
此外,为提高数据流识别效率,本发明的网络数据流识别系统还可包括一个流表更新模块11。该流表更新模块11根据输入的IP报文更新数据流表,即读取IP报文中的某些字段,例如源IP地址、源端口号、目的IP地址、目的端口、协议类型等,并根据这些字段生成新的记录添加到数据流表中。在某些数据流中,根据源或目的端口号是否为IANA定义的知名应用端口号,流表更新模块11可以判断其是否为已知应用类型的数据流并对其应用类型进行标记,然后将带有标记的数据流发送到与应用类型相对应的协议处理模块12处理。而没有标记数据流应用类型的标记的数据流则被发送到数据流识别模块13进行进一步的识别。
通过流表更新模块11,过滤了一部分应用类型已经确定的数据流,减少了数据流识别模块13的数据处理量,从而可提高系统的处理效率。当然,在理论上,也可不包括流表更新模块11,但整个系统的处理效率将可能降低。
如图2所示,是图1中数据流识别模块13及数据流特征库14的结构框图。数据流识别模块13包括有报文识别模块131、TCP流识别模块132以及UDP流识别模块134,其中报文识别模块131与流表更新模块11连接,TCP流识别模块132及UDP流识别模块134则分别与报文识别模块131连接。数据流特征库14包括TCP数据流特征库141和UDP数据流特征库142,其中TCP数据流特征库141连接到TCP流识别模块132,UDP数据流特征库142连接到UDP流识别模块134。
TCP数据流特征库141中包括有各类TCP网络电视流的特征,其具体包括的特征与网络电视流的类型如下(1)PPLIVE网络电视流端口8008或净荷前四个字节为0x2c000000;
(2)沸点网络电视流净荷前六个字节为0x0E0E01000000或净荷含有关键字“STMM”;(3)Coolstreaming流净荷前三个字节为0x000000;(4)PPstream流净荷长度21字节或净荷开始四个字节为0x11000000;(5)CCIPTV流量净荷前四个字节为0x01000000。
UDP数据流特征库142中包括有各类UDP网络电视流的特征,其具体包括的特征与网络电视流的类型如下(1)PPLIVE网络电视流端口4004或净荷前四个字节为0x01000002;(2)Coolstreaming流只有2对DNS请求和回应报文且报文包含如下两个域名boot.coolstreaming.com.cn、boot.coolbooting.cn。
由于避开端口号进行网络电视流的传输较易实现,因此采用端口号进行数据流识别的精确性相对较差。而采用特征字符串(即净荷字节)进行识别则相对较精确。
报文识别模块131用于读取报文中的协议字段以区分数据流的类型,并将TCP流发送到TCP流识别模块132、将UDP流发送到UDP流识别模块134、将其他流发送到其他协议处理模块133。
TCP流识别模块132读取流中的报文,并在TCP数据流特征库中检索对应的流特征,从而识别报文对应的数据流。若在TCP数据流特征库检索到与报文特征对应的特征,则TCP流识别模块132将报文对应的数据流标记为网络电视流;若未在TCP数据流特征库检索到与报文特征对应的特征,则TCP流识别模块132将数据流发送到其他协议处理模块133处理。
类似地,UDP流识别模块134根据UDP数据流特征库142识别UDP数据流,并标记网络电视流,并将非网络电视流发送到其他协议处理模块133处理。
当然,也可采用如图1所示的一个数据流识别模块13和一个数据流特征库14来识别所有数据流,但由于数据流特征库14中的需要进行计算密集的特征匹配操作,可能会降低识别效率。
此外,还通过使用不同的数据流特征库,识别不同的P2P数据流。
如图3所示,是本发明网络数据流识别方法的流程图。
首先,在IP报文到达时,根据报文中的报头更新TCP/UDP数据流表(步骤S31),并判断当前报文对应的数据流的应用类型是否已经标记(步骤S32)。
若当前报文对应数据流的应用类型已标记,则使用与应用类型对应的方式处理当前数据流(步骤S33)。若当前报文对应数据流的应用类型未标记,则根据报文中的协议类型字段判断报文对应数据流的类型(步骤S34)。
若当前报文为TCP报文,则采用TCP数据流特征库141判断当前报文对应的数据流是否为P2P网络电视(步骤S35)。若当前报文符合TCP数据流特征库141中的一组特征,则将当前报文对应的TCP数据流标记为网络电视流;否则,使用其他协议处理当前报文对应的数据流(步骤S39)。
若当前报文为UDP报文,则采用UDP数据流特征库142判断当前报文对应的数据流是否为P2P网络电视(步骤S37)。若当前报文符合UDP数据流特征库142中的一组特征,则将当前报文对应的UDP数据流标记为网络电视流;否则,使用其他协议处理当前报文对应的数据流(步骤S39)。
若当前报文为其他类型,则直接使用其他协议处理当前报文。
在上述流程中,也可省略步骤S31、S32、S33,而直接进行数据流的判断,但其可能识别效率较低。
此外,还可省略步骤S34,对所有报文采用一个通用的数据流特征库进行识别,但这也将影响识别效率。
通过上述方式标记数据流后,就可根据标记对每一接收的某个IP地址的特定应用类型进行流量统计,从而进行针对不同应用类型的精细化计费或者流量控制。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种网络数据流识别系统,其特征在于,包括有数据流识别模块以及数据流特征库,所述数据流特征库中包括有多组网络数据流的特征,所述数据流识别模块根据数据流特征库中的网络数据流特征识别特定的数据流。
2.根据权利要求1所述的网络数据流识别系统,其特征在于,所述数据流特征库包括有多组点对点方式网络电视数据流特征。
3.根据权利要求1所述的网络数据流识别系统,其特征在于,还包括流表更新模块,所述流表更新模块判断当前的IP报文对应的数据流是否为已标记类型的数据流,所述流表更新模块还用于将没有标记类型的数据流根据IP报文的源和目的端口号,判断其是否为特定应用类型,如果是则对该IP报文对应的数据流进行标记,如果不是则将报文送入所述数据流识别模块进行识别。
4.根据权利要求1所述的网络数据流识别系统,其特征在于,所述数据流特征库包括有TCP数据流特征库和UDP数据流特征库,所述TCP数据流特征库和UDP数据流特征库分别包含有TCP网络电视流特征数据和UDP网络电视流特征数据,所述数据流识别模块包括有识别输入报文类型的报文识别模块、根据TCP数据流特征库识别TCP网络电视流的TCP流识别模块以及根据UDP数据流特征库识别UDP网络电视流的UDP流识别模块,其中TCP流识别模块及UDP流识别模块则分别与报文识别模块连接。
5.根据权利要求4所述的网络数据流识别系统,其特征在于,所述TCP数据流特征库包括有以下一组或多组特征TCP净荷前四个字节为0x2c000000;TCP净荷前六个字节为0x0E0E01000000或关键字“STMM”;TCP净荷前三个字节为0x000000;TCP净荷开始四个字节为0x11000000;TCP静荷前10个字节对应字符串为“PSProtocol”;TCP净荷前四个字节为0x01000000。
6.根据权利要求4所述的网络数据流识别系统,其特征在于,所述UDP数据流特征库包括有以下一组或多组特征净荷前四个字节为0x01000002;只有2对DNS请求和回应报文且报文包含如下两个域名boot.coolstreaming.com.cn、boot.coolbooting.cn。
7.一种网络数据流识别方法,其特征在于,包括以下步骤(a)在数据报文中检查是否含有数据流特征库中的任意一条特征;(b)若检查到与所述特征字匹配的流量特征,则标记当前报文对应的数据流为特定的数据流。
8.根据权利要求7所述的网络数据流识别方法,其特征在于,所述步骤(a)包括(a1)根据当前报文中的协议类型字段判断当前报文的类型;(a2)若当前报文为TCP类型报文,则在TCP数据流特征库中检索与当前报文中的特征字相匹配的流量特征;若当前报文为UDP类型报文,则在UDP数据流特征库中检索与当前报文中的特征字相匹配的流量特征。
9.根据权利要求7所述的网络数据流识别方法,其特征在于,还包括根据报文更新TCP/IP流表以判断对应数据流类型是否已标记,并在数据流类型未标记时执行步骤(a)。
10.根据权利要求7所述的网络数据流识别方法,其特征在于,所述数据流特征库包括有多组点对点方式网络电视数据流特征,所述步骤(b)中所述特定的数据流为点对点方式网络电视流。
全文摘要
本发明涉及一种网络数据流识别系统,包括有数据流识别模块以及数据流特征库,所述数据流特征库中包括有多组网络数据流的特征,所述数据流识别模块根据数据流特征库中的网络数据流特征识别特定的数据流。本发明还提供一种对应的网络数据流识别方法。本发明通过匹配数据流特征,识别数据流的应用类型。此外,通过对数据流分类识别,有效地减少了特征匹配的计算量从而达到P2P网络电视应用业务识别的目的。
文档编号G06F17/30GK1852297SQ20051010136
公开日2006年10月25日 申请日期2005年11月11日 优先权日2005年11月11日
发明者刘竟, 郑志彬, 刘廷永, 孙知信 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1