互联网流量区分方法

文档序号:7852979阅读:817来源:国知局
专利名称:互联网流量区分方法
技术领域
本发明涉及一种网络流量分类的获得方法,特别是涉及ー种互联网流量的区分方法。
背景技术
互联网流量区分主要是根据网络流量所呈现的特征,例如数据包大小,包间隔时间等,来预测产生该流量的网络应用类型。从而,网络管理员根据分类结果可以对网络资源的使用情况进行监测与控制,并针对提供的服务确保其服务质量。现有的网络流量区分的实现主要是基于有监瞀学习的智能方法(对应于监瞀分类)和基于半监瞀学习的智能方法(对应于半监瞀分类)。其中,基于有监瞀学习的网络流量区分方法,其实现过程可分为两个阶段训练阶段和识别阶段。在训练阶段,对大量具有应用类型标签的流量样本进行学习,通过学习获取网络流量分类的经验知识,换句话说,就是根据被所述标签标记的流量样本的特征的学习获得标签的对应产生特征判定应用类型的一组规则,即分类模型。在识别阶段,就可以对没有应用类型标签的流量,只需根据分类模型对流量的特征划分决策边界,就能得出该流量的应用类型。该方法的优点在具有应用类型标签的流量样本充足的情况下,分类模型可以获取足够多的知识,能够对没有应用类型标签的流量进行快速、准确的识别。其缺点在真实的网络环境中受限于应用类型使用的频率使得获取具有准确应用类型标签的流量样本非常困难;该方法的适用性受其训练样本的约束,即需要区分的网络流量与训练分类模型的流量样本之间具有相似性;不能发现新的应用类型,只能对经过训练的应用类型进行识别。基于半监瞀学习的网络流量区分方法的实现表现在该方法使用少量的具有应用类型标签的流量数据作为指导信息,对大量的没有应用类型标签的流量进行区分,并能识别具体的应用类型。其实现过程也可分为两个阶段聚类阶段和映射阶段。在聚类阶段,具有应用类型标签的流量数据作为指导信息约束聚类搜索过程,聚类结束后得到的结果是多个簇的集合。其中每个簇包含的是具有相似性质的多个流量数据,不同的簇间具有较大的差异性。在映射阶段,对于聚类得到的簇信息,根据簇所包含的有应用类型标签的样本对应的应用类型,将簇信息映射到具体的应用类型,即对于该簇所包含的没有应用类型标签的流量样本使用该类型进行标记;对于不存在具有应用类型标签的流量样本的簇,将其所包含的流量样本都映射为新的应用类型。该方法的优势能够发现新的应用类型。该方法的缺点其计算的复杂性带来较高的时延和计算的开销。以上内容主要是互联网流量区分方法描述的内容,那么在线智能识别互联网流量的方法则通常是模拟在线条件对离线数据(即观察所采集的一段时间内的数据)进行分类。这类方法通过将所采集的网络数据,即数据包集合按照数据包的五元组(源IP地址、源端口号、目的IP地址、目的端口号、协议)聚合成不同的网络流(数据包序列),然后抽取这个数据包序列的前几个数据包,作为观察特征的来源,以此来训练并测试分类器,从而模拟在线、流量分类。该方法的缺点没有在真实的网络环境中实时地完成分类任务,网络状态的变化对分类系统的影响没有被考虑在内,离真实网络环境部署实际的在线流量分类系统存在差距;由于没有应用类型标签的流量数据不知道其具体为哪种应用类型所产生,因此对于分类结果的真实性需要进行验证,然而现有的在线分类技术却缺乏对分类结果真实性的验证。作为支持性的内容,网络中混合流量的识别,对网络操作者和管理者而言,有至关重要的意义。为此,研究団体就混合流量提出了很多分类算法,如基于端ロ的分类算法和基于包检测的分类算法。由于越来越多的网络应用使用动态端口号和加密技术来发送数据包,因此随着网络应用中动态端ロ号和加密技术的逐步流行,使得基于端口号的和基于包检测的分类算法已经失去了有效性。基于机器学习的流量分类方法能够克服这种问题,便成为了研究的重点。但是,基于机器学习的流量分类算法需要具有准确应用类型标记的网络流量数据集来训练分类器和测试分类器。为了使本领域的技术人员更有利于理解本文中相关的技术手段,在此对其中的某些手段和应用的对象进行ー个说明,仅用于相关人员对本文所提出技术方案的延续性理解,不构成以下某些技术手段视为对现有技术的承认。为调用socket请求流出主机的TCP数据包标记产生该数据包的应用类型标记,需要在主机上安装Socket Hook驱动和NDIS Hook驱动。在网络的边界处使用基于FPGA的流量采集器来采集经过网路边界的数据包,并且把采集的数据包发送到数据处理器。数据处理器首先把得到的数据包根据数据包的五元组(源IP地址、目的IP地址、源端口号、目的端口号和协议)信息整合成流,然后根据不同的需求制作不同的数据集。在获得具有准确应用类型标签的网络流量数据集的过程中使用到的技术如下所述
Socket Hook 和 NDIS Hook
Hook的ー种解释是Windows中提供的ー种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行Hook后,一旦发生Hook事件,对该事件进行Hook的程序就会受到系统的通知,这时程序就能在第一时间对该事件做出响应。Hook的另ー种解释则是Windows消息处理机制的ー个平台,应用程序可以在上面设置子程以监视指定窗ロ的某种消息,而且所监视的窗ロ可以是其他进程所创建的。当消息到达后,在目标窗ロ处理函数之前处理它。也就是说,钩子机制允许应用程序截获处理Windows消息或特定事件。套接字(Socket)接ロ是TCP/IP 网络的 API (Application ProgrammingInterface,应用程序接ロ),而Windows Sockets,即Winsock是一个基于Socket模型的API,它工作于Windows应用层,提供与底层传输协议无关的高层数据传输编程接ロ。在Windows系统中,使用WinSock接ロ为应用程序提供基于TCP/IP协议的网络访问服务,这些服务是由Wsock32.DLL动态链接库提供的函数库来完成的。由以上说明可知,任何Windows基于TCP/IP的应用程序都必须通过WinSock接ロ访问网络。应用程序接ロ让应用程序开发人员得以调用ー组例程功能,而无需考虑其底层的源代码为何或理解其内工作机制的细节。由此我们可以通过Hook技术去控制WinSock接口,钩挂通过WinSock接口的数据包,进而分析钩挂的数据包,获得和数据包相关的五元组信息和产生该数据包的应用类型信息。NDIS (Network Driver Interface Specification,即网络驱动接口规范)有三种类型,分别是网络接口卡驱动程序、中间层驱动程序、高层协议驱动程序。网络接口卡驱动程序(Miniport Network Interface Card drivers)管理网络接口卡,NIC (Network Interface Card,网络适配器,又称网卡)驱动程序在它的下端直接控制网络接口卡硬件,在它的上端提供一个较高层的驱动能够使用的接口,这个接口一般完成以下的一些任务初始化网卡,停止网卡,发送和接收数据包,设置网卡的操作参数等等。中间层驱动程序(Intermediate Protocol Driver)工作在协议驱动程序和微端 口驱动程序之间。在高层的传输层驱动程序看来,中间层驱动程序象一个微端口驱动程序,而在底层的微端口驱动程序看来,它象一个协议驱动程序。使用中间层驱动程序的最主要的原因可能是在一个已经存在的传输层驱动程序和一个使用新的传输层驱动程序并不认识的媒体格式的微端口驱动程序中相互转换格式,即充当翻译的角色。高层的协议驱动程序(Upper Level Protocol Driver)像各种TCP/IP协议,一个协议驱动程序完成TDI (Transport Driver Interface,传输驱动程序接口)或者其他的应用程序可以识别的接口来为它的用户提供服务。这些驱动程序分配数据包,将用户发来的数据拷贝到数据包中,然后通过NDIS将数据包发送到低层的驱动程序,这个低层的驱动程序可能是中间层驱动程序,也可能是微端口驱动程序。当然,它在自己的下端也提供一个协议层接口,用来与低层驱动程序交互,其中最主要的功能就是接收由低层传来的数据包,这些通讯基本上都是由NDIS完成的。承上所述,NDIS Hook就是基于中间层驱动实现的,通过钩挂协议驱动和小端口驱动交互的数据包,获取数据包的相关信息,进而得到产生该数据包的应用类型信息,并且把应用类型信息标记在数据包中。FPGA( Field Programmable Gate Array),即现场可编程门阵列,它是在可编程阵列逻辑 PAL (Programmable Array Logic)、门阵列逻辑 GAL (Gate Array Logic)、可编程逻辑器件PLD (Programmable Logic Device)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路ASIC领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。它们无需花费传统意义下制造集成电路所需大量时间和精力,避免了投资风险,成为电子器件行业中发展最快的一族。使用FPGA器件设计数字系统电路的主要优点如下
(I)设计灵活
使用FPGA器件,可以不被标准系列器件在逻辑功能上所限制,而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只须通过对所用的FPGA器件进行重新编程即可完成,给系统设计提供了很大的灵活性。(2)功能密集度大
功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可代替几片、几十片乃至上百片中小规模的数字集成电路芯片。用FPGA器件实现数字系统时用的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减。(3)可靠性高
减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具较高集成度的系统比用许多低集成度的标准组件设计的相同系统具有高得多的可靠性。使用FPGA器件减少了实现系统所需要的芯片数目,在印刷线路板上的引线以及焊点数量也随之减少,所以系统的可靠性得以提高。(4)设计周期短
由于FPGA器件的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短。FPGA器件集成度高,使用时印刷线路板电路布局布线简单。同时,在样机设计成功后,由于开发工具先进,自动化程度高,对其进行逻辑修改也十分简便迅速。因此,使用FPGA·器件可大大缩短系统的设计周期,加快产品投放市场的速度,提高产品的竞争能力.
(5)工作速度快
FPGA / CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于软件。同时,使用FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。(6)NetFPGA带有四个IG的RJ45接口和高速PCI总线,脱离主机进行工作而很少占用主机的资源,这样就可以使主机的工作效率得到很大的提高。

发明内容
本发明的是提供一种具有在线智能识别能力的互联网流量区分方法,能够在真实的网络环境中实现在线实时地对网络流量进行分类。为了实现上述发明目的,所采用的技术方案为
一种互联网流量区分方法,包括以下步骤
100.流出被测量网络中部分主机的数据依据应用程序与预定的应用类型标签的映射关系而被标记;
200.在被测量网络边界处镜像流出被测量网络的网络流量,进而将该镜像的网络流量转发两路以备处理,一路用于半监督聚类分析,转步骤310,另一路用于监督学习分类,转步骤 320 ;
310.半监督聚类分析将镜像的网络流量聚类成簇的集合,对其中包含有应用类型标签的流量样本的簇进行标记,并将其中没有包含应用类型标签的流量样本的簇所包含的所有流量样本都映射为半监督聚类分析得出的新的应用类型;然后将半监督聚类分析的结果输出;
400.依据半监督聚类分析的结果中新的应用类型,添加新的应用程序与应用类型标签的映射关系项;
320.监督学习分类
321.使用镜像的网络流量中的被标记的流量样本,既有标签数据训练分类器;
322.依据所述分类器对未被标记的流量进行分类,并把分类后的分类结果输出;500.对半监督聚类分析的结果与步骤322分类结果输出的流量进行成分对比分析,以用于指导分类训练器的生成和半监督聚类分析方法。依据本发明的上述互联网流量区分方法,依据少量的标表示的流量样本,通过离线的监督学习分类,通过被分类的流量的特征对没有被标记的流量进行识别,能够在网络流量发生的早期实现对生成流量的应用类别进行预测,保证对网络监督的及时性,从而实现在真实的网络环境下实现网络流量分类的问题。通过进一步的半监督聚类添加新的应用类型,完善应用类型标记与应用类型的关系表,对网络中声称的流量进行有效的标记,从而可以实时获取具有准确应用类型标签的流量数据。同时,当网络环境发生变化时,这种变化会在半监督聚类中体现出来,并进一步的满足对新网络环境的的流量区分。上述互联网流量区分方法,步骤100包括
101.依据预定的用于映射应用程序的应用类型名称和应用类型标签创建一个SocketHash 表;
102.针对数据流,在应用程序使用套接字调用处理数据包时利用Hook机制截获相应的数据包,并至少获取其中的流出主机的数据包的应用类型名称;
103.进而,在所述SocketHash表中匹配有步骤102获得的应用类型名称时,建立数据包与相应应用类型标记的对应关系;并依据该对应关系添加表项至预设的NDIS Hash表中;
104.在网络协议驱动与小端口驱动进行数据交互中利用Hook机制截获流出主机的所述数据包,在该数据包匹配有NDIS Hash表项时,标记该数据包。上述互联网流量区分方法,在步骤102获取的信息还包括流出主机的数据包所属流的五元组;
相应地,在NDIS Hash表项中含有相应数据包的三元组。上述互联网流量区分方法,对数据包的标记为标记在数据包IP头部中,从而在数据包汇聚流时,通过对包头信息的识别获取所述应用类型标记。上述互联网流量区分方法,在网络边界处通过基于FPGA的接口卡镜像并转发流出被测网络的网络流量。上述互联网流量区分方法,所述步骤监督学习分类采用被标记的流量样本生成分类器的步骤如下
301.针对流量样本中的所有数据包,提取该数据包的五元组信息,然后查找初始创建的流记录表以判断在该表中是否存在所获得五元组信息相匹配的流;若有,转下一步,否则在所述流记录表中添加新的流记录;
302.对流记录表中满足观测窗口要求的数据包依序进行存储并根据对应的五元组信息及包序列号进行成流汇聚;
303.当一条流记录中的数据包个数等于观测窗口包个数上限时,计算该流的特征信息,与获取的匹配的应用类型形成特征进而存储到文件; 304.以所述文件为基础,依据选定的监督学习算法进行训练,生成判断流量为对应应用类型的规则,规则的集合形成分类器。上述互联网流量区分方法,依据生成的分类器,所述步骤监督学习分类对无标签的流量进行分类的步骤如下
301’ .针对无标签的流量中的所有数据包,提取五元组,查找当前流记录表,匹配有流记录时转步骤302’,否则创建新的流记录并添加到流记录表;
302’ .对匹配的流的数据包个数的变量进行加一,然后判断该变量是否小于观测窗口的上限;
303’.对于满足观测窗口要求的数据包依序存储并根据其五元组信息及包序列号进行成流汇聚;
304’.当某条流的数据包个数等于观测窗口上限N时,计算该流的特征信息,用于步骤305’ ;重复步骤301’ -304’,实现对网络流量的实时识别。
305’ .使用步骤304’获得的该流量的特征,依据所述分类器进行判断,得出给流量的应用类型,并将该流的特征及分类得出的应用类型进行文件存储,以备调用。上述互联网流量区分方法,所述步骤304’中,预设一个特征信息列表,通过所获得的特征信息与该特征信息列表中的特征信息匹配进行所获得特征信息的筛选。下面结合说明书附图对本发明的技术方案进行更具体的描述,是本领域的技术人员更好的理解本发明。


图I具有在线智能识别能力的互联网流量区分方法的网络拓扑图。图2具有在线智能识别能力的互联网流量区分方法的总体流程图。图3生成具有准确应用类型标记数据的流程图。图4基于NetFPGA的流量转发流程图。图5分类器训练阶段的流程图。图6分类器在线分类的流程图。图7半监督聚类的流程图。图8分类结果验证流程图。
具体实施例方式参照说明书附图1,为具有在线智能识别能力的互联网流量区分方法所部属网络环境的网络拓扑图,如图I所示。在被测量的网络中,选择在少数网络节点上部署基于准确应用标记的模块,目的是产生有标签流量,这些有标签流量与多数网络节点产生的无标签流量以及进入该网络的流量,在网络出口处,或者说网络边界被镜像到一台基于FPGA的网络流量转发器中。这台转发器将所有的网络流量转发到运行半监督聚类分析的服务器和有监督学习分类的服务器。后者将有标签数据送入训练分类器模块,将无标签流量送入在线分类模块。依据上述内容,某些技术问题被进一步定义,一个目的是网络流量在线实时分类模块的设计,解决现有技术中无法在真实的网络环境中实现在线实时对网络流量进行分类的问题,能够在网络流量发生的早期阶段即可实现对生成流量的应用类别进行预测,保证对网络监控的及时性。另一个目的是针对具有准确应用类型标签的数据难以获取的问题,依据本发明的实施例提供能够生成具有准确应用类型标签的流量数据的方法。再者,根据预先建立的应用类型和标记的对应关系表,如本文中所提到的专家分析得出的新的应用类型以及对应关系表,对网络中生成的流量进行有效地标记,从而可以实时获取具有准确应用类型标签的流量数据。再一个目的是针对有监督学习方式的适用性受训练分类模型的流量样本约束的问题,提供被投入训练分类器模块的训练样本为从被测量网络中实时获取的具有准确应用类型标签的数据,从而可以对当前网络的状况有一个清晰的认识,进而可以更好的对当前网络中没有进行标示的流量进行有效地识别,并且当网络发生变化时,可以对在线分类模型进行实时更新。再一个目的是针对有监督学习方法不能发现新的应用类型的问题,本发明使用离线半监督学习方法对被测量网络的流量进行识别。该模块是在具有准确应用类型标签数据的指导下,对被测量网络中未知应用类型的流量进行有效识别;由于半监督聚类的特性,同 时有助于发现新的应用类型,作为建立应用类型和标记的对应关系表的依据。再一个目的是对于在线分类的结果无法有效验证的问题,使用离线半监督聚类的结果与在线分类结果进行网络流量成分分析,然后进行对比验证,从而对在线分类结果进行验证,用以保证在线分类的真实可靠性。一、这里首先说明对有标签流量的准确标记的实现和相关辅助环境,如说明书附图3所示,包括以下内容
获得具有准确标记的标签流量的方法总体上表现为首先是对数据包标记准确的应用类型标记,然后对被标记的数据包进行提取,在进一步改进的方案中可以对被提取的数据包制作网络流量数据集。当然这里只要简单区分有标签流量和无标签流量就可满足实现要求。因此,整体的方案可以这样来理解,其主要由三个部分组成,分别是数据包标记、数据采集和数据处理。利用Hook机制,对流出主机的数据包进行标记,网络出口处通过路由器镜像,FPGA接口卡对镜像数据流进行采集、过滤,将带有标记的数据包发送到处理服务器进行处理,最后按要求生成所需的带有标记的数据集。首先基于套接字调用(Socket call,也叫Socket请求,套接字请求)利用Hook机制对流出主机的TCP数据包标记产生该数据包的应用类型标记;接着在网络边界处使用基 于FPGA的流量采集器来采集具有准确应用类型标记的网络流量,并将采集的具有准确应用类型标记的网络流量发送给数据处理器;数据处理器接收采集器发送过来的数据包后,先依据数据包的五元组信息和应用类型标记信息将数据包汇聚成流,然后再制作成适合不同分类算法要求的数据集,用于训练分类器或者被分类器分类。其中,网络边界的百科定义是网络的不安全的问题有哪些,以及对这些方面的采取的举措。其定义实际上是从网络的安全防护的角度进行描述的,更具体的描述为实现资源共享是网络出现的源动力,多年的发展使Internet成为现实,全世界的计算机都可以连成网络,连成一个整体;但计算机越多,网络规模越大,安全也成为问题。不管是通过ADSL连入Internet的家庭用户,还是通过专线连入Internet的企业用户,抑或通过专线连入专用网络的行业用户,都面临着越来越多的不安全因素影响。“划地而治”是现实中解决安全问题的通用办法,国家具有主权疆土、城市具有行政区域、企业具有自主园区、居民有个人空间,这些主体都具有物理空间和边界,把不同安全级别的网络相连接,就产生了网络边界。关于套接字调用,多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP / IP协议交互提供了称为套接字(Socket)的接口,前面已经对此进行了较为详细的描述。在每台主机上应用Hook机制部署相关的模块,以截获相关的消息。这里涉及两部分内容,或者说两个接口,一个是套接字(Socket) 一个是NDIS,分别命名为Socket Hook驱动和NDIS Hook驱动,作为如中间驱动程序的方式存在于系统中,依据中间驱动程序的特点进行相关信息的获取。对此背景技术部分也进行了清楚地描述,本领域的技术人员基于Hook机制容易实现。 通过这两个模块的部署,对Socket call流出主机的数据包标记产生该数据包的应用类型标记。Socket Hook驱动用来截获使用socket call传输的数据包,并且依据不同的应用获得该数据包的五元组信息和/或产生该数据包的应用类型信息,最好至少应含有应用类型信息;然后把获得的信息,如该数据包的五元组和应用类型标记信息传输给NDISHook驱动使用。NDIS Hook驱动截获使用socket call传输的数据包,并且获得该数据包的三元组信息,然后和Socket Hook驱动传过来的五元组和应用类型标记的对应关系进行比较,若有匹配信息就把应用类型标记标记在该数据包IP头部的TOS位上,若是无匹配信息,就不处理该数据包,直接传输该数据包。相比于五元组,对于用户主机而言,本地IP地址是固定的,我们又是只处理TCP数据包,那么协议也就没有必要去进行比较了,该方案既节省了处理时间,也提高了内核处理的效率。为了使本领域的技术人员更清楚地了解Socket Hook和Socket Hook的实现,一个具体的实施流程如图3和图4所示。在此之前,建立一个用于映射应用程序的应用类型名称和应用类型标记的文档,或者说一个应用类型名称和应用类型标记的对应关系表,如表I。依据该预先设立的表的调用,通过除留余数法及开放地址法创建一个Socket Hash表以备调用。表I应用类型名称和应用类型标记的对应关系表
权利要求
1.一种互联网流量区分方法,其特征在于,包括以下步骤 .100.流出被测量网络中部分主机的数据依据应用程序与预定的应用类型标签的映射关系而被标记; . 200.在被测量网络边界处镜像流出被测量网络的网络流量,进而将该镜像的网络流量转发两路以备处理,一路用于半监督聚类分析,转步骤310,另一路用于监督学习分类,转步骤 320 ; .310.半监督聚类分析将镜像的网络流量聚类成簇的集合,对其中包含有应用类型标签的流量样本的簇进行标记,并将其中没有包含应用类型标签的流量样本的簇所包含的所有流量样本都映射为半监督聚类分析得出的新的应用类型;然后将半监督聚类分析的结果输出; .400.依据半监督聚类分析的结果中新的应用类型,添加新的应用程序与应用类型标签的映射关系项; .320.监督学习分类 . 321.使用镜像的网络流量中的被标记的流量样本,即有标签数据训练分类器;. 322.依据所述分类器对未被标记的流量进行分类,并把分类后的分类结果输出; .500.对半监督聚类分析的结果与步骤322分类结果输出的流量进行成分对比分析,以用于指导分类训练器的生成和半监督聚类分析方法。
2.根据权利要求I所述的互联网流量区分方法,其特征在于,步骤100包括 .101.依据预定的用于映射应用程序的应用类型名称和应用类型标签创建一个SocketHash 表; .102.针对数据流,在应用程序使用套接字调用处理数据包时利用Hook机制截获相应的数据包,并至少获取其中的流出主机的数据包的应用类型名称; .103.进而,在所述SocketHash表中匹配有步骤102获得的应用类型名称时,建立数据包与相应应用类型标记的对应关系;并依据该对应关系添加表项至预设的NDIS Hash表中; .104.在网络协议驱动与小端口驱动进行数据交互中利用Hook机制截获流出主机的所述数据包,在该数据包匹配有NDIS Hash表项时,标记该数据包。
3.根据权利要求2所述的互联网流量区分方法,其特征在于,在步骤102获取的信息还包括流出主机的数据包所属流的五元组; 相应地,在NDIS Hash表项中含有相应数据包的三元组。
4.根据权利要求2所述的互联网流量区分方法,其特征在于,对数据包的标记为标记在数据包IP头部中,从而在数据包汇聚流时,通过对包头信息的识别获取所述应用类型标记。
5.根据权利要求I所述的互联网流量区分方法,其特征在于,在网络边界处通过基于FPGA的接口卡镜像并转发流出被测网络的网络流量。
6.根据权利要求I所述的互联网流量区分方法,其特征在于,所述步骤监督学习分类采用被标记的流量样本生成分类器的步骤如下 .301.针对流量样本中的所有数据包,提取每个数据包的五元组信息,然后查找初始创建的流记录表以判断在该表中是否存在所获得五元组信息相匹配的流;若有,转下一步,否则在所述流记录表中添加新的流记录; ·302.对流记录表中满足观测窗口要求的数据包依序进行存储并根据对应的五元组信息及包序列号进行成流汇聚; ·303.当一条流记录中的数据包个数等于观测窗口包个数上限时,计算该流的特征信息,与获取的匹配的应用类型形成特征进而存储到文件; ·304.以所述文件为基础,依据选定的监督学习算法进行训练,生成判断流量为对应应用类型的规则,规则的集合形成分类器。
7.根据权利要求6所述的互联网流量区分方法,其特征在于,依据生成的分类器,所述步骤监督学习分类对无标签的流量进行分类的步骤如下 ·301’ .针对无标签的流量中的所有数据包,提取五元组,查找当前流记录表,匹配有流记录时转步骤302’,否则创建新的流记录并添加到流记录表; ·302’ .对匹配的流的数据包个数的变量进行加一,然后判断该变量是否小于观测窗口的上限; ·303’.对于满足观测窗口要求的数据包依序存储并根据其五元组信息及包序列号进行成流汇聚; ·304’.当某条流的数据包个数等于观测窗口上限N时,计算该流的特征信息,用于步骤·305’ ;重复步骤301’ -304’,实现对网络流量的实时识别; ·305’ .使用步骤304’获得的该流量的特征,依据所述分类器进行判断,得出给流量的应用类型,并将该流的特征及分类得出的应用类型进行文件存储,以备调用。
8.根据权利要求7所述的互联网流量区分方法,其特征在于,所述步骤304’中,预设一个特征信息列表,通过所获得的特征信息与该特征信息列表中的特征信息匹配进行所获得特征信息的筛选。
全文摘要
本发明公开了一种互联网流量区分方法,依据少量的标表示的流量样本,通过离线的监督学习分类,通过被分类的流量的特征对没有被标记的流量进行识别,能够在网络流量发生的早期实现对生成流量的应用类别进行预测,保证对网络监督的及时性,从而实现在真实的网络环境下实现网络流量分类的问题。通过进一步的半监督聚类添加新的应用类型,完善应用类型标记与应用类型的关系表,对网络中声称的流量进行有效的标记,从而可以实时获取具有准确应用类型标签的流量数据。同时,当网络环境发生变化时,这种变化会在半监督聚类中体现出来,并进一步的满足对新网络环境的的流量区分。
文档编号H04L12/56GK102685016SQ20121018421
公开日2012年9月19日 申请日期2012年6月6日 优先权日2012年6月6日
发明者于孝美, 孙润元, 杨波, 赵树鹏, 陈贞翔 申请人:济南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1