专利名称:基于报文采样和应用签名的互联网应用流量识别方法
技术领域:
本发明涉及一种互联网应用流量识别方法,特别是指一种基于报文采样 和应用签名的互联网应用流量识别方法。应用于高速网络中,使用应用签名 对采样报文进行应用流量识别的方法。
背景技术:
准确识别互联网应用流量对于接入网、企业网和网络研究者都是极其重 要的。接入网和企业网都需要准确识别网络应用流量,以便进行网络操作与 管理、基于应用的流量工程、容量规划、区分服务和降低运营成本等工作。
一些网络设备(例如Cisco设备)已经提供了识别应用流量的能力。网络研
究者也需要准确识别网络应用流量,以便进行被动网络测量、研究各网络应 用和用户的行为特征等工作。
目前,现有的网络应用流量识别方法主要有三种(1)基于端口号进 行识别。在互联网发展初期,各应用软件均使用默认端口号进行通信,例如
电子邮件使用25和110端口号,W丽使用80端口号。使用端口号进行应用 流量识别曾经是一种快速而准确的方法,当时既适用于对报文进行处理也适 用于对流数据(例如Netflow)进行分析。(2)基于流统计特征进行识别。 最近几年,peer-to-peer (P2P)应用得到了广泛发展,已经成为互联网杀 手级应用,其网络流量己经成为互联网的主要流量。 一些学者利用P2P应用 流的地址和端口号的统计特征,提出了基于流统计特征的P2P流量识别方 法,对流数据进行识别。该类方法适用于从流数据中识别出P2P流量,具有 很高的处理效率。(3)基于应用签名进行识别。应用签名指应用数据负载 中的特定数据模式。该类识别方法很准确,但是需要捕捉和处理全部报文,
无法应用于Gbps/Tbps这样的高速网络上。
以上所述的三种流量识别方法都有局限性,无法应用到高速网络上。 基于端口号进行识别已经不再准确,具有较高的漏检率和误检率。随着 互联网的发展出现了大量新兴应用,很多应用(包括网络游戏、即时通信和
P2P等应用)为了逃避检测不再采用默认端口号进行通信,这导致该方法已 经不再准确。
基于流统计特征进行流量识别主要是针对P2P应用提出的,适用于从流 数据中识别出P2P流量,无法应用于报文处理,不适合与对其它应用进行流 量识别。
基于应用签名进行流量识别需要捕捉和处理全部报文,没有足够高的处 理效率。在高速(Gbp和Tbps)网络上对每个报文进行分析是不可行的,因 为软件的处理速度无法匹配上高速的链路速度,对每个报文进行签名匹配是 非常消耗处理资源的,并且捕捉每个报文也需要大量的处理能力、内存缓存、 系统IO和网络带宽。
发明内容
本发明的目的在于避免上述现有技术中的不足之处而提供一种基于报 文采样和应用签名的互联网应用流量识别方法,应用于高速网络中,使用应 用签名对采样报文进行应用流量识别的方法,该方法同时保证了识别准确度 和处理效率,使得在高速网络上进行应用流量识别成为可能。该方法既能应 用于报文处理又能应用于流数据分析,既可以实现在网络设备中也可以实现 在网络分析系统中。
本发明的目的可以通过以下措施来达到
报文采样捕捉运用IETF的PSAMP工作组定义的一系列报文采样方法,
当有网络报文到达时,根据一定的采样策略按照采样率来捕捉报文,报文采
样捕捉的控制参数包括采样率和采样策略;
解码对捕捉到的报文进行解码分析,最终分析出报文的流信息和应用
数据,解码完成以下几项工作1、从IP层头部中分析出传输层协议类型、 源地址和目的地址,2、当为TCP报文时从TCP层头部中分析出源端口号和
目的端口号,3、当为UDP报文时从UDP层头部中分析出源端口号和目的端
口号,4、分析出应用数据;
流分类根据解码分析出的报文的流信息对流状态表进行处理,其中流 状态表存储着每个网络数据流的流信息、最后活动时间和应用类型,流分类 的控制参数包括数据流不活动时间阈值,流分类主要完成以下几项功能1、 根据报文的流信息从流状态表中快速查找报文对应的流状态项,2、如果査
找成功,更新流状态项中的最后活动时间,3、如果査找失败,跟据报文的
流信息创建流状态项插入到表中,其中流状态项的流信息为报文的流信息、
应用类型为未知、最后活动时间为报文的捕捉时间,4、对状态表进行检查, 删除超过数据流不活动时间阈值而没有被更新的流状态项;
流状态判别对流分类査找到或新创建的流状态项进行处理,当该流状
态项中的应用类型为未知时则进行签名匹配,否则不进行其它处理;
签名匹配根据应用签名库对报文的应用数据进行处理,如果应用数据
中含有签名库中的签名,则更新流状态项中的应用类型,并输出该网络数据 流的流信息和应用类型。
本发明相比现有技术具有如下优点
1、 识别准确度高。与基于端口号的流量识别方法相比,由于采用了 应用签名进行识别,显著地提高了识别准确度。
2、 处理效率高。与基于应用签名的流量识别方法相比,由于采用报 文采样捕捉的方法,显著降低了捕捉报文的处理开销,同时也降低 了后续工作的处理开销;另外,流状态判别使得只对尚未分析出应 用类型的报文进行签名匹配,这进一步提高了处理效率。
由于同时保障了识别准确度和处理效率,解决了在高速网路进行
4、 可扩展性强。采用应用签名库的机制,使得该流量识别方法具有 良好的可扩展性。通过扩展应用签名库,能对多种应用进行识别。
5、 应用范围广。该方法既能应用于报文处理,又能应用于流数据分 析;既可以实现在网络设备中,也可以实现在网络分析系统中。
6、 可实现性强。该方法能够利用现有网络设备提供的报文采样和流 数据输出功能,实现应用流量识别。
图1应用流量识别方法结构图2 TCP报文的封装格式;
图3 UDP报文的封装格式;
图4流量识别方法应用于报文处理;
图5流量识别方法应用于流数据分析。
具体实施例方式
本发明在保障应用流量识别准确度的条件下,采取了一系列措施来提高 处理效率。下面结合图l应用流量识别方法结构图详细介绍该方法 1、报文采样捕捉
当有网络报文到达时,根据一定的采样策略按照采样率来捕捉报文。这 极大地降低了捕捉报文的处理开销,同时也降低了后续工作的处理开销。 IETF的PSAMP (Packet Sampling)工作组定义了一系列报文采样方法,都 可以应用到本发明中。报文采样捕捉的控制参数包括采样率和采样策略。
报文采样是一种可扩展的对高速网络进行测量的方法。己经有一些学者 基于报文采样进行了网络流量测量、性能分析、计费等方面的研究。IETF 的PSAMP工作组正进行报文采样方面的标准化工作。 一些高速骨干路由器已 经提供了报文采样功能。
下面以随机采样为例,来说明报文采样捕捉。假设报文采样率为P,满足(XM1。当一个报文到达时,产生服从[O, l]均匀分布的随机数仏如果"《p 则捕捉该报文,否则不进行任何处理。
如果将该方法应用于网络分析系统中,可以直接利用网络设备提供报文 采样功能,从网络设备接收采样后的报文,这时可以省略报文采样捕捉。
2、 解码
解码对捕捉到的报文进行解码分析,最终分析出报文的流信息和应用数 据。流信息是指传输层协议类型、源地址、目的地址、源端口号和目的端口
号,其中传输层协议类型包括TCP协议和UDP协议。
在不同的网络环境下,报文的协议封装格式会有较大差异。下面以常用 的以太网协议封装格式为例,来说明解码。TCP报文的封装格式如图2所示, UDP报文的封装格式如图3所示。解码主要完成以下几项工作1、从IP层 头部中分析出传输层协议类型、源地址和目的地址;2、当为TCP报文时从 TCP层头部中分析出源端口号和目的端口号;3、当为UDP报文时从UDP层 头部中分析出源端口号和目的端口号;4、分析出应用数据。
3、 流分类
流分类根据解码分析出的报文的流信息对流状态表进行处理,其中流状 态表存储着每个网络数据流的流信息、最后活动时间和应用类型。流分类的 控制参数包括数据流不活动时间阈值。
流分类主要完成以下几项功能1、根据报文的流信息从流状态表中快 速査找报文对应的流状态项,2、如果査找成功,更新流状态项中的最后活 动时间,3、如果查找失败,跟据报文的流信息创建流状态项插入到表中, 其中流状态项的流信息为报文的流信息、应用类型为未知、最后活动时间为 报文的捕捉时间,4、对状态表进行检査,删除超过数据流不活动时间阈值 而没有被更新的流状态项。
目前有很多成熟的流分类方法,既有硬件实现方式也有软件实现方式。 本发明不对具体的流分类方法进行限制。
4、 流状态判别
流状态判别对流分类查找到或新创建的流状态项进行处理,当该流状态 项中的应用类型为未知时则进行签名匹配,否则不进行其它处理。
流状态判别使得只对尚未分析出应用类型的报文进行签名匹配,这进一 步提高了处理效率。
5、签名匹配
签名匹配根据应用签名库对报文的应用数据进行处理,如果应用数据中 含有签名库中的签名,则更新流状态项中的应用类型,并输出该网络数据流 的流信息和应用类型。
应用签名库存储需要识别的网络应用的应用签名。应用签名指应用数据 负载中的特定数据模式。应用签名最初用于网络入侵检测系统中,用于描述 报文中的入侵行为。最近应用签名被应用到网络应用流量识别中。
可以采用多种方式来描述应用签名,本发明不对具体应用签名的描述方 式进行限制。可以用以下信息来描述应用签名1、报文的流信息,包括传 输层协议类型、源地址、目的地址、源端口号和目的端口号;2、报文应用 数据长度;3、报文应用数据中的特定区域包含满足某正则表达式的数据内 容;4、报文应用数据的特定区域包含某字符串。
在应用签名库中,每种网络应用具有多个应用签名。对于一个报文只要 有一个签名被匹配上了,则该报文对应的网络数据流就被识别为该应用签名 对应的应用。
该方法应用范围广。该方法既能应用于报文处理,如图4所示,又能应
用于流数据分析,如图5所示;既可以实现在网络设备中,也可以实现在网
络分析系统中。
该方法可实现性强。该方法能够利用现有网络设备提供的报文采样和流
数据输出功能,实现应用流量识别,如图5所示。
在不背离本发明精神及实质的情况下,熟悉本领域的技术人员当可根 据本发明作出各种相应的改变及变形,但相应的改变及变形这些都应属于本 发明的权利要求的保护范围内。
权利要求
1、一种基于报文采样和应用签名的互联网应用流量识别方法,其特征在于该方法由如下步骤构成报文采样捕捉运用IETF的PSAMP工作组定义的一系列报文采样方法,当有网络报文到达时,根据一定的采样策略按照采样率来捕捉报文,报文采样捕捉的控制参数包括采样率和采样策略;解码对捕捉到的报文进行解码分析,最终分析出报文的流信息和应用数据,解码完成以下几项工作1、从IP层头部中分析出传输层协议类型、源地址和目的地址,2、当为TCP报文时从TCP层头部中分析出源端口号和目的端口号,3、当为UDP报文时从UDP层头部中分析出源端口号和目的端口号,4、分析出应用数据;流分类根据解码分析出的报文的流信息对流状态表进行处理,其中流状态表存储着每个网络数据流的流信息、最后活动时间和应用类型,流分类的控制参数包括数据流不活动时间阈值,流分类主要完成以下几项功能1、根据报文的流信息从流状态表中快速查找报文对应的流状态项,2、如果查找成功,更新流状态项中的最后活动时间,3、如果查找失败,跟据报文的流信息创建流状态项插入到表中,其中流状态项的流信息为报文的流信息、应用类型为未知、最后活动时间为报文的捕捉时间,4、对状态表进行检查,删除超过数据流不活动时间阈值而没有被更新的流状态项;流状态判别对流分类查找到或新创建的流状态项进行处理,当该流状态项中的应用类型为未知时则进行签名匹配,否则不进行其它处理;签名匹配根据应用签名库对报文的应用数据进行处理,如果应用数据中含有签名库中的签名,则更新流状态项中的应用类型,并输出该网络数据流的流信息和应用类型。
全文摘要
本发明涉及一种基于报文采样和应用签名的互联网应用流量识别方法,该方法由如下步骤构成报文采样捕捉按照采样策略和采样率捕捉报文,解码对报文进行解码,分析出报文的流信息和应用数据,流分类根据报文的流信息查找和维护流状态表,流状态判别如果流分类查找出的流状态项的应用类型为未知则进行签名匹配,签名匹配根据应用签名库对报文的应用数据进行匹配,如果匹配成功,则更新流状态项中的应用类型,并输出该数据流的流信息和应用类型。该方法识别准确度高、处理效率高、可扩展性好,可实现性强,既能应用于报文处理,又能应用于流数据分析,既可以实现在网络设备中,也可以实现在网络分析系统中。
文档编号H04L12/26GK101184000SQ20071017953
公开日2008年5月21日 申请日期2007年12月14日 优先权日2007年12月14日
发明者孙研彦, 裘正定, 郭振滨 申请人:北京交通大学