专利名称:一种基于蚁群寻优及分层dpi的网络流量检测方法
技术领域:
本发明是一种互联网网络流量智能检测的方法,更具体的说,涉及一种采用蚁群算法进行寻优并采用分层DPI检测的互联网网络流量检测方法。
背景技术:
在日益复杂的网络环境下,网络恶意数据流、不正当的应用数据等都给用户带来了不利的影响,网络中的恶意攻击会使一定范围内的网络状况变得糟糕,严重影响正常的网络应用;而不正常的应用数据(如企业局域网内的娱乐应用数据等)会一定程度上影响正常业务应用数据的通信。因此网络管理人员期望能够以一定的方法实现对一定范围内的网络数据进行检测和监控,如屏蔽异常流量、控制非业务数据以及定向数据跳转等。目前,互联网网络流量检测及控制有以下几种方式:1.纯手工方式:即在一定现实条件达到时,如特定时间点的到来或时间段的结束,切断或恢复一定范围内的网络连接,从而实现对网络流量的截断和放行。此方法虽然能够完全实现网络流量的截断和放行,但是不适用于对部分网络流量的控制,不适合大量类型网络流量的监控。2.限制源IP地址及端口方式:即对特定源IP地址及特定源端口网络数据的阻截,如需要在一定网络范围内限定web服务时,可以限定该网络范围内传输端口为80的网络数据流。该方法能实现网络流量黑、白名单机制,但对于未知网络流量及海量源IP及端口的限定而言显得不切实际。3.通过网络流量特征行为提取,并加以智能学习算法实现对网络流量的分类检测和限制,该方法能够实现对 各种网络流量的检测,但智能学习时却面临着一定程度的误检和误测,不能实现对所有网络数据的准确检测和分类。4.采用深度数据包检测技术(全称Deep Packet Inspection,简称DPI)方式:是一种基于应用层的流量检测和控制技术,当网络数据流通过基于DPI技术的网络流量管理系统时,该系统通过深入读取IP包载荷的内容来对开放式系统互联(全称Open SystemInterconnect,简称0SI)七层协议中的应用层信息进行重组,从而得到整个应用程序的内容。基于完备的DPI技术可以实现对所有网络数据的检测和控制,采用该方法能够达到较为理想的检测准确率,但是DPI的过程复杂度较高,全面DPI的实施将降低整个网络数据的流通性,一定程度上会妨碍各类应用实时性的保证,并且对于流控需求较为简单的场景下,显得过于费时费力。因此,互联网络流量智能检测领域,需要一种互联网网络流量检测方法,使得不同应用场景下、不同应用类型的网络数据能够实施不同深度的网络数据包检测,并且网络数据包都能够根据自身的应用场景及应用类型所要求的DPI深度选择合适的DPI层次,从而减轻整个系统的性能负担,适宜广泛应用
发明内容
本发明就是为了解决粉互联网流量检测不能根据不同应用场景实施不同深度的网络数据包检测的问题,提供一种基于蚁群寻优及分层DPI的网络流量检测方法,本发明的技术方案如下:一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,包含:步骤1:根据网络流量检测及控制的强度需求,将DPI层级划分为多个检测层级;步骤2:遵循蚁群算法,把所获取的网络数据包按划分的DPI层级进行网络数据包层级寻优;步骤3:根据每个网络数据包的选择层级实施具体层级的DPI流量检测。如上的一种基于蚁群寻优及分层DPI的网络流量检测方法,其中,该步骤I中,所述该多个检测层级为PI层、初级DPI层、中级DPI层及高级DPI层。如上的一种基于蚁群寻优及分层DPI的网络流量检测方法,其中,该步骤2中,所述该网络数据包包含信息素。如上的一种基于蚁群寻优及分层DPI的网络流量检测方法,其中,该信息素包含IP地址、源端口和数据包。如上的一种基于蚁群寻优及分层DPI的网络流量检测方法,其中,该步骤3中,所述该DPI流量检测包含基于“特征字”的识别技术、应用网关识别技术和行为模式识别技术中至少一种技术。本发明的有益效果是:1.本发明使得不同应用场景下、不同应用类型的网络数据能够实施不同深度的网络数据包检测,从而避免简单数据包检测需求时采取完备DPI所带来的资源浪费及效率低下的问题。2.本发明提出的基于蚁群算法的寻优方法使得每个要进行分层DPI的网络数据包都能够根据自身的应用场景及应用类型所要求的DPI深度选择合适的DPI层次,从而减轻整个系统的性能负担。3.本发明提出了一种蚁群算法中的多维“信息素”结构,使得“信息素”不仅能表征数据包的层级选择结果,而且能表征数据包的来源类型,使得蚁群算法更好地应用在一次多项选择层级寻优过程中。
下面结合附图和具体实施方式
来详细说明本发明:图1为本发明基于蚁群寻优及分层DPI的网络流量检测方法的流程图。图2为本发明基于蚁群寻优及分层DPI的网络流量检测方法步骤2中利用蚁群算法进行数据包寻优的流程图。图3为本发明基于蚁群寻优及分层DPI的网络流量检测方法步骤2中蚁群算法用于常规路径寻优的示意图。图4为本发明基于蚁群寻优及分层DPI的网络流量检测方法步骤2中蚁群算法用于一次多项路径寻优的示意图。图5为本 发明基于蚁群寻优及分层DPI的网络流量检测方法步骤2中应用蚁群算法进行DPI层次寻优过程的示意图。
具体实施例方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。图1为本发明基于蚁群寻优及分层DPI的网络流量检测方法的流程图。步骤1:根据网络流量检测及控制的强度需求,将DPI层级划分为不同数量的层级。本发明设计了层次化的数据包检测技术,其核心思想是简单的数据包检测需求采取简单的检测深度,复杂的数据包检测需求采取复杂的检测深度。针对不同应用场景、不同上层应用类型等情形,用户可设定不同数量与检测深度的层级。本实施例中将DPI层级划分为4个不同的层级:PI层、初级DPI层、中级DPI层及高级DPI层。PI层:只检测网络数据包中属于网络层中的网络套接字(socket),即只检测源、目的IP地址,该层级的包检测可以应用于常规应用数据截获以及防止对特殊地址应用的攻击等;初级DPI层:检测传输层的应 用协议类型,如检测属于传输控制协议(全称Transmission Control Protocol,简称 TCP)应用或用户数据包协议(全称User DatagramProtocol,简称UDP)应用等,同时检测传输层的应用端口类型,该层级检测可以应用于防范常规端口攻击以及对常规应用的限制等;同时通过对TCP报文段首部特殊字段的检测(如窗口字段等)来进行网络流量特征提取,从而防范针对TCP应用的分布式拒绝服务攻击(全称 DistributedDenial of service,简称 DD0S)等行为;中级DPI层:检测应用层的协议数据特征,该层主要用于区分各种类型的应用数据类型,如用于区分DNS应用、FTP应用、P2P应用、Http应用以及邮局协议的第3个版本(全称Post Office Protocol 3,简称POP3)应用等,主要通过各应用层协议的特殊字段及统计流量特征进行判断,该层可应用于对特殊应用程序的禁止,如对P2P应用及QQ程序的
禁止等;高级DPI层:主要通过检测应用数据部分,如Http应用的数据部分是否含有敏感词汇、DNS应用的数据部分是否含有被禁止的域名内容等,通过高级DPI层可以准确无误的检测出用户感兴趣的信息,并施以一定的管理策略,该层可应用于对敏感、关键信息的过滤和取证,以及深层次的应用禁止等。本发明实施了对每个网络数据包的层级寻优后,在各个层级实施不同深度的网络数据包检测,从而实现高效、准确的网络流量检测。步骤2:遵循蚁群算法,把所获取的网络数据包按划分的DPI层级进行网络数据包
层级寻优。蚁群算法(ant colony optimization, AC0)又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法,该算法根据蚂蚁行动过程中的多样性和正反馈特征使得蚁群的简单行为规则能演化得出最优的路径选择。蚁群算法的特点可已简述为以下几个方面:1.蚁群算法是一种自组织的算法。当算法开始的初期,单个的人工蚂蚁无序的寻找解,算法经过一段时间的演化,人工蚂蚁间通过信息激素的作用,自发的越来越趋向于寻找到接近最优解的一些解,这就是一个无序到有序的过程。2.蚁群算法是一种本质上并行的算法。每只蚂蚁搜索的过程彼此独立,仅通过信息激素进行通信。所以蚁群算法则可以看作是一个分布式的多智能体(agent)系统,它在问题空间的多点同时开始进行独立的解搜索,不仅增加了算法的可靠性,也使得算法具有较强的全局搜索能力。3.蚁群算法是一种正反馈的算法。从真实蚂蚁的觅食过程中我们不难看出,蚂蚁能够最终找到最短路径,直接依赖于最短路径上信息激素的堆积,而信息激素的堆积却是一个正反馈的过程。对蚁群算法来说,初始时刻在环境中存在完全相同的信息激素,给予系统一个微小扰动,使得各个边上的轨迹浓度不相同,蚂蚁构造的解就存在了优劣,算法采用的反馈方式是在较优的解经过的路径留下更多的信息激素,而更多的信息激素又吸引了更多的蚂蚁,这个正反馈的过程使得初始的不同得到不断的扩大,同时又引导整个系统向最优解的方向进化。因此,正反馈是蚂蚁算法的重要特征,它使得算法演化过程得以进行。4.蚁群算法具有较强的鲁棒性。相对于其它算法,蚁群算法对初始路线要求不高,即蚁群算法的求解结果不依赖子初始路线的选择,而且在搜索过程中不需要进行人工的调整。其次,蚁群算法的参数 数目少,设置简单,易于蚁群算法应用到其它组合优化问题的求解。本发明将蚁群算法的路径寻优引申到层级分类中,是只需做一次多项选择路径寻优的蚁群算法应用。如图2本发明基于蚁群寻优及分层DPI的网络流量检测方法步骤2中利用蚁群算法进行数据包寻优的流程图;接收到的网络数据包会去检测是否有相同网络数据包留下的“信息素”;若有,则继续判断是否按照已留下的“信息素”选择层级,若是,则按照已留下的“信息素”选择DPI层级进行相应的DPI检测,并留下自己的“信息素”,若不按照已留下的“信息素”选择层级,则随机选择任意一层DPI层级进行相应的检测,并留下自己的“信息素”;若未检测到相同网络数据包留下的“信息素”,则随机选择任一层DPI层进行相应的检测,并留下自己的“信息素”。在使用基于蚁群算法的层级寻优的过程中,网络数据包之间通过“信息素”的积累和作用,自发的越来越趋向于寻找各自类型数据最优的一些层次解,这是一种从无序到有序的过程;每一个网络数据包在选择包检测层级的时候是彼此独立的,之间只通过“信息素”通信,在层次选择空间内同时开始进行独立的解搜索;程序无需制定某一类数据的初始层次划分,且在整个数据流的层次选择过程中,都无需人工干预。步骤3:根据每个网络数据包的选择层级实施具体层级的DPI流量检测。DPI的识别技术可以分为以下几大类:基于“特征字”的识别技术、应用网关识别技术和行为模式识别技术。基于“特征字”的识别技术:不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的位序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。根据具体检测方式的不同,基于“特征字”的识别技术又可以被分为固定位置特征字匹配、变动位置的特征匹配以及状态特征匹配三种技术。通过对“指纹”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。
应用层网关识别技术:某些业务的控制流和业务流是分离的,业务流没有任何特征。这种情况下,我们就需要采用应用层网关识别技术。应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一个协议,需要有不同的应用层网关对其进行分析。行为模式识别技术:行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即将实施的动作。行为模式识别技术通常用于无法根据协议判断的业务的识别。以上三种识别技术分别用于不同类型协议的识别,无法相互替代,而在本发明设计的四层DPI分类中,各层次可独立或组合采用上述三种技术中的一种或几种达到相关层级所要求的功能需求。本发明实施时,先根据网络流量检测及控制的强度需求,将DPI层级划分为多个检测层级;然后遵循蚁群算法,把所获取的网络数据包按划分的DPI层级进行网络数据包层级寻优;最后根据每个网络数据包的选择层级实施具体层级的DPI流量检测。本发明采用使不同应用场景下、不同应用类型的网络数据能够实施不同深度的网络数据包检测,从而避免简单数据包检测需求时采取完备DPI所带来的资源浪费及效率低下的问题;基于蚁群算法的寻优方法使得每个要进行分层DPI的网络数据包都能够根据自身的应用场景及应用类型所要求的DPI深度选择合适的DPI层次。如图3和图4所示,包括食物源11、蚁穴12、食物源21、蚁穴22。传统过程中产生的·“信息素”只能表征“蚂蚁”是否选择该条路径,即选择“是”或“不是”,图3中所有的“蚂蚁”都具有相同的目的,即选择大家都选择合适的最优路径从食物源11到达蚁穴12 ;但在DPI层级寻优的过程中采用的是一次多项层次寻优,图4中“蚂蚁”从食物源21到达蚁穴22需要选择5个岔路口中的一个通过,即不是所有的网络数据包的最优层级都相同,因此数据包就有类别之分,因此在各数据包产生“信息素”的过程中,就必须把该数据包所属的类型包含进去,由于一定时间内来源于同一 IP地址及同一端口的网络数据应属于同一类型的网络数据,因此可以将IP地址及源端口连同数据包存在标识组成三维的“信息素”结构,这样的结构设计使得每个数据包所留下的“信息素”能够对后续相同类型的数据包的层级选择产生影响,而对于不同类型的网络数据包则没有作用。图5为本发明基于蚁群寻优及分层DPI的网络流量检测方法步骤2中应用蚁群算法进行DPI层次寻优过程的示意图。图中各种灰度的曲线代表各类应用的网络数据流,而曲线的粗细代表经该层级的数据包的多少,如数据类型I在进行蚁群寻优过程中先后选择了两种DPI层级,即如图所示的初级DPI及PI层级,但是经过一定时间的积累和“信息素”的堆积发现,PI层级更适合该类型数据的检测,因此更多的该类型的网络数据会选择PI层级的包检测,而初级DPI层级将逐渐的被该类型的网络数据包所舍弃;同样数据类型2选择了三个层次的包检测,即初级DP1、中级DPI及高级DPI,但是经过一定的时间积累和“信息素”堆积后,更多的该类型数据选择了高级DPI层级,说明对于该类型的数据,高级DPI层级的包检测能够更好地进行信息检测,因此后续的该类型数据将更多的选择高级DPI层级。图中所示的对于某一类型的应用数据选择多个层级检测类型的状况不仅仅出现的系统初始化初期,而是在整个网络流量检测的过程中都会出现,其原因在于蚁群算法的多样性特点,总有个别网络数据包会不按照大概率可能选择自己的层级,而是选择“另辟蹊径”,这种创造性的行为在维持整个层级选择系统的先进性方面显得尤为重要,应用场景变化及网络状况变化等都要求层级划分系统不能一味不变的选取经验值作为选择层级的依据。本发明采用蚁群算法进行DPI层级寻优,采用IP地址及源端口连同数据包存在标识组成三维的“信息素”结构,使得每个数据包所留下的“信息素”能够对后续相同类型的数据包的层级选择产生影响,而对于不同类型的网络数据包则没有作用;程序无需制定某一类数据的初始层次划分,且在整个数据流的层次选择过程中,都无需人工干预;对于某一类型的应用数据选择多个层级检测类型,在整个网络流量检测的过程中都会出现有较强的鲁棒性。以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界 定。
权利要求
1.一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,包含: 步骤1:根据网络流量检测及控制的强度需求,将DPI层级划分为多个检测层级; 步骤2:遵循蚁群算法,把所获取的网络数据包按划分的DPI层级进行网络数据包层级寻优; 步骤3:根据每个网络数据包的选择层级实施具体层级的DPI流量检测。
2.如权利要求1的一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,该步骤I中,所述该多个检测层级为PI层、初级DPI层、中级DPI层及高级DPI层。
3.如权利要求1的一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,该步骤2中,所述该网络数据包包含信息素。
4.如权利要求3的一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,该信息素包含IP地址、源端口和数据包。
5.如权利要求1的一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,该步骤3中,所述该DPI流量检测包含基于“特征字”的识别技术、应用网关识别技术和行为模式识别技术中至少一种技术。
6.如权利要求2的一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,所述该检测层包含基于“特征字”的识别技术、应用网关识别技术和行为模式识别技术中至少一种技 术。
全文摘要
本发明属于互联网网络流量智能检测领域,提供一种基于蚁群寻优及分层DPI的网络流量检测方法,其特征在于,包含步骤1根据网络流量检测及控制的强度需求,将DPI层级划分为多个检测层级;步骤2遵循蚁群算法,把所获取的网络数据包按划分的DPI层级进行网络数据包层级寻优;步骤3根据每个网络数据包的选择层级实施具体层级的DPI流量检测。本发明采用改进蚁群算法的网络数据包检测层级寻优技术,使得不同应用场景下、不同应用类型的网络数据能够实施不同深度的网络数据包检测,并且网络数据包都能够根据自身的应用场景及应用类型所要求的DPI深度选择合适的DPI层次,从而减轻整个系统的性能负担,适宜广泛应用。
文档编号H04L12/24GK103248528SQ20121003030
公开日2013年8月14日 申请日期2012年2月10日 优先权日2012年2月10日
发明者韩东明, 黄碗明, 陈静 申请人:上海戴德网络科技有限公司