论文部分内容阅读
近年来,伴随着互联网业务种类数量的迅速增长,网络协议的层出不穷,基于应用层协议的数据流分类算法也遇到了前所未有的挑战。由于数据流分类在攻击检测、流量控制等领域均具有重要的应用价值,因此,寻找到效率高、精确度好的数据流分类算法有着重要的研究及应用意义。本文致力于实时数据流分类算法的研究,使用三种分类方法串行结合的方式,通过端口号识别、统计特征分类、协议特征字匹配的方式,精确识别出数据流的应用层协议。本文的研究工作主要包括以下几个方面:1.基于知名端口号的数据流初分类:基于知名端口号的数据流分类算法是最早用于数据流分类的方法,它曾经一度作为数据流分类的主要算法。它具有时间复杂度低、算法简单等特点。然而,随着互联网应用的快速发展,端口识别的流分类方法越来越多的受到限制。本文使用该算法对数据流做初分类,实验证明,该简单而快速的方法能够识别出近40%的数据流应用。2.流统计特征的提取及筛选:基于内容无关的统计特征的流分类方法是当前流分类研究的热门。本文使用基于信息增益的前向贪心C4.5算法对大量的完整流统计特征进行筛选,随后对筛选后的特征子集进行改造,使其更加适用于实时业务流分类,而后使用易获得的载荷相关统计信息对此特征子集进行扩充后再次进行特征筛选,并构造训练集进行验证,最终得到适合实时业务流分类的特征子集和分类器,此步骤可识别部分新兴网络应用。3.应用层协议特征字匹配:基于协议特征字匹配的数据流分类算法具有准确度高、算法复杂度高、占用系统资源大等特点,因此本文将这一环节放在数据流分类的最后一步,对以上两种算法无法识别的数据流类型做最终的确认。本环节使用L7-filter指纹库中对各个应用协议提取的正则表达式,通过实验的方式将正则表达式尽量的缩短,以降低匹配的时间和复杂度,同时尽量保证匹配的准确度。4.分类方法串行结合识别应用层协议:由于完全依赖于协议特征字匹配的流分类算法以损失时间复杂度来满足精确度的要求,而知名端口号匹配方法和统计特征分类算法难以达到令人满意的准确率,因此,本文采取三种分类算法串行结合的方式对数据流进行分类,首先依據知名端口号进行初分类,识别出部分应用,然后对数据流统计属性进行筛选并做分类,剩余未识别部分则被传送至协议特征字匹配模块进行特征字匹配。为满足实时性要求,本文所述方法中的流统计特征全部筛选自流的前5个数据包。