高速网络环境下多类型大流并行测量方法

文档序号:7751725阅读:163来源:国知局
专利名称:高速网络环境下多类型大流并行测量方法
高速网络环境下多类型大流并行测量方法 技术领域
本发明涉及一种高速网络环境下多类型大流并行测量方法。
背景技术
互联网技术的飞速发展,各种网络应用给我们的生活带来了极大的方便。随着 人类对互联网的依赖程度日益增强,确保一个畅通而安全的网络环境显得尤为重要。然而, 由大规模网络安全事件爆发造成的基础运营网络拥堵事件频繁发生,导致网络运行大范围 地受到影响,信息系统难以正常对外服务,造成重大经济损失和社会影响。为了提供稳定的 互联网服务,需要通过网络流量监测深入了解网络负载状况,及时发现和控制大规模网络 安全事件的扩散。早期的网络流量监测多是基于简单网络管理协议(SNMP)。SNMP具有开放性好、支 持广泛、实现简单的特点,但这种方式无法得到网络层以上的流量指标,而且会增加网络设 备负担。目前主流的网络监测方式是Cisco公司开发的NetFlow。网络设备中的NetFlow 根据报文五元组 < 源地址,目的地址,源端口,目的端口,协议类型 > 的值把流量归并为 流(flow-流,是指在某时间段内通过一个观测点的具有相同属性的一组报文的集合。依据 应用需求的不同,flow的定义模式也有所不同,例如可以把目的IP地址相同的报文聚合为 一个流;也可以把源端口和协议类型相同的报文聚合为一个流),五元组的值相同的报文构 成一个flow。Netflow会把结束的flow和超时的flow定期上报给监控设备。NetFlow数 据信息更为丰富,能够更好适应网络实际需求。然而随着网络带宽的提高和用户的增多,主 干链路单位时间内并发业务流的数量最高已经达到几十万甚至上百万,基于NetFlow的网 络监测系统已经无法应对数量如此庞大的业务流信息。虽然抽样策略能够有效缓解海量数据带来的压力,但抽样策略在抽样率和测量误 差之间存在平衡关系,而且在小时间尺度下的测量误差较高。因此,当前主流的网络流量信 息获取技术尚难以满足高速网络监测的需求,需要寻找新的途径。近年来,大流(heavyhitterflow)的测量和分析成为网络流量研究的新方向。为 了叙述清楚,首先给出两个简要定义
流,是指在某时间段内通过一个观测点的具有相同属性的一组报文的集合; 大流是指在一个测量时间段内传输的报文或字节数量超过一定数量(例如总数据量 的0. 1%)的流。互联网研究领域对大流的关注始于2000年前后,多项研究结果表明,网络流量在 不同的流聚合层次上均表现为重尾分布,即绝大部分流量集中在少量的大流中,这一现象 被称为“E1印hantandMice”。2003年,Estan等人系统阐述了提取网络大流的意义,并指出 了大流在网络流量监测中的重要应用价值。大流的测量和分析是解决当前高速网络监测困境的主要途径,其重要意义在于(a).针对大流的测量策略可以有效缓解系统处理能力 和高速网络带宽之间的差距,大幅提高网络监测系统的流量信息获取能力;(b). DDoS(分 布式拒绝服务攻击)、僵尸网络、蠕虫等资源消耗型攻击通常会表现为某种定义模式下的大 流,通过对大流的测量和分析,可以及时发现和阻断大规模网络安全事件,避免造成灾难性后果。大流的测量与分析是当前互联网测量领域的研究热点。在大流测量方面代表性的 算法主要有Estan等人提出的Sample&Hold算法和Multi-stageFilter算法、Kodialam等 人提出的RATE系列算法、Zhang等人提出的基于Trie-Tree的Flow计数法以及国内东南 大学周明中等人基于Flow的分布特征提出MGCBF算法等。这几种算法可以有效降低存储 空间需求,提高测量效率,但与网络监测的需求存在一定差距一方面,采用的抽样策略或 多解析度策略不可避免地会引入较大误差,研究结果表明,抽样方法导致的偏差会明显影 响攻击检测的准确性;另一方面,网络监测通常同时需要多个模式的大流信息,上述测量算 法需要为测量不同模式的大流运行不同的算法实例,严重削弱了算法的可扩展性。综合以上,设计一种能够在线准确识别多类型大流的方法是当前高速网络流量监 测的迫切需求。

发明内容
本发明的目的就是为了解决上述问题,提供一种具有处理速度快,误差率低等优 点的高速网络环境下多类型大流并行测量方法。为实现上述目的,本发明采用如下技术方案
一种高速网络环境下多类型大流并行测量方法,它的步骤为
1)在路由器或交换机类网络设备上设置端口镜像,使流经该网络设备的所有网络报文 被复制发送到网络监控前置机;
2)前置机采用TS-LRU算法,该算法采用1+n的层次结构,每一层包含固定数量的存储 单元;其中第一层用于保存细粒度流,其余的η层则保存需要测量的流类型,每一层保存一 种类型的流;
2. 1)当网络报文到达时,首先在第一层根据流定义字段的并集聚合为不同的细粒度 流,每个细粒度流占用一个存储单元,当存储单元占满时,新到达的细粒度流用LRU替换算 法替换一个旧的细粒度流;
2. 2)替换下来的细粒度流同时归并到其余η层中,在η层中的处理方法一致;首先根据 所在层的流定义字段集合查找相应的流,如果存在,则归并到该流中,如果不存在,则创建 新的流;当数量有限的存储单元被占满时,则用LRU-Size替换算法选择一个旧的流替换, 丢弃被替换的流;
2. 3)如果测量时间段尚未结束,则继续处理新的报文;否则,把第一层中的细粒度流全 部归并到其它η层中相应的流;
3)在每一个测量时间段结束时,TS-LRU向网络监控设备报告流经该节点的大流,以及 其中包含的报文数量或字节数量。所述步骤2)中,细粒度流的定义字段集合是所要测量的多种流定义字段集合的并集,其典型定义为五元组集合,即
〈源地址,目的地址,源端口,目的端口,协议〉。所述步骤2)中,LRU-Size替换算法引入一个动态调整因子M,并为每一个流引入 一个尺寸因子S,当有属于该流的细粒度流到达时,细粒度流中的报文数量累加到尺寸因子 S;当流因长时间没有细粒度流到达而被LRU机制选中作为淘汰对象时,则检查S的值,如果 S=0,则淘汰该流;如果S>0,则S=S-M,继续检查链表中前一个流。其中动态调整因子M的值 初始为1,当为了淘汰一个对象而检查的距离过长时,将其值增加1。所述步骤2) TS-LRU算法具体的处理流程为
(1)从网络接口捕获一个报文,提交给TS-LRU;
(2)把该报文加入第一层中的细粒度流,细粒度流为新建或已有的细粒度流,具体步骤

(2. 1)根据细粒度流的定义,取报文相关字段,计算哈希(Hash)值; (2. 2)根据哈希值在第一层中定位细粒度流,如果存在对应的细粒度流,则更新相应的 细粒度流,并将其移动到第一层的头部;如果不存在,则新建一个细粒度流,并将其加到第 一层的头部;
(2. 3)如果第一层的存储单元数量超过预先设的长度,则用LRU策略淘汰链表最后的 细粒度流;
(3)如果有细粒度流从第一层被淘汰,则将其分别加入其他层,具体步骤为 (3. 1)根据流的定义,取相关字段,计算哈希值;
(3. 2)根据哈希值在底一层中定位流,如果存在对应的流,则更新相应的流,并将其移 动到第一层的头部;
(3. 3)如果第一层中不存在相应的流,则从第一层的尾部开始检查流状态,用LRU-Size 策略选择一个流淘汰,并把新的流放入腾空的存储单元;然后把所有检查过的单元一起移 动到第一层的头部,并更新其中的流状态值;
(4)如果测量时间段还没结束,则转到步骤(1),处理新的报文;如果已经结束,则把第 一层中的细粒度流分别归并到其他各层,向监控服务器报告测量结果,即保存在各层中的 不同类型的流,最后清空1+n层中的所有存储单元,转到步骤(1),开始新的测量时间段。本发明中,LRlKLeastRecentlyUsed)最近最久未用替换算法,计算机领域一种常 用的缓存置换策略。LRU-Size:针对LRU用于测量大流所表现出的问题,提出的对LRU替换算法的改 进,为每一个对象引入一个尺寸因子,在选择一个对象置换时,既考虑到对象的更新时间也 考虑到对象的相对大小,只有长时间未更新且相对较小的对象才能被替换。FGF(FineGrainFlow)细粒度流,其定义字段集合是多类型流定义字段集合的并 集。例如,如果我们需要测量两种模式的流,分别用字段集合<A,B>和<B,C>定义,则FGF 用<A, B, C>定义。L1 =TS-LRU中的第一层链表,用于存储FGF,用LRU替换策略管理。LSfLSn :TS_LRU中的其它η层链表,分别用于存储不同类型的流,用LRU-Size替 换策略管理。本发明的优点为1.当需要同时测量多种类型的大流时,处理速度快。TS-LRU把网络报文先归并到FGF,等FGF被第一层淘汰时,再将其分别加入η种不 同类型的flow中。这样避免了每一个报文单独加入不同类型的流,可以节省大量的处理时 间。举例来说,假设我们共需要测量4种类型的流,某个流共有100个报文集中到达,如果 用普通方法,则需要处理400次,而用TS-LRU,需要处理的次数是100+4=104。网络流量已经被证实在不同层次上呈幂率分布,少量的大流占据了流量的绝大部 分。FGF也可看作流的一种,而LRU机制具有保留处于活跃状态的大FGF的功能,所以大部 分报文都在第一层中聚合为大的FGF后才进入其它η层,可以极大地降低处理负担。实验结果表明,在同时测量多类型大流的情况下,TS-LRU的处理速度具有明显优 势。2.测量误差率低
如前所述,网络流量在不同层次上呈幂率分布,少量的大流占据了流量的绝大部分,所 以大流的报文到达密度明显大于一般的流。LRU-Size中的LRU策略可以充分利用这一特 征,把大流保留下来。但大流的到达并非勻速,也有间歇性,单纯的LRU会导致部分大流被 误淘汰。LRU-Size中的Size部分则考虑了淘汰候选对象的报文数量,如果一个流前期到达 报文数量多,则可以免于该次淘汰。前期到达报文数量越多,流可以免于淘汰的次数越多。


图1为TS-LRU应用场景图; 图2为TS-LRU的总体结构;
图3为TS-LRU总体处理流程;
图4为把报文加入TS-LRU的Ll层的方法;
图5为把FGF分别加入TS-LRU的LSfLSn层的方法。其中,1.路由器,2.前置机,3.网络监控服务器,4.网络监控终端。
具体实施例方式下面结合附图与实施例对本发明做进一步说明。为了在高速网络环境下同时识别、提取不同类型的大流,设计了 TS-LRU (Two-StageLRU, 二阶LRU替换)方法。TS-LRU的应用场景如图1所示,在路由器1 或交换机等网络设备上设置端口镜像,使流经该设备的所有网络报文被复制发送到网络监 控前置机2。前置机2运行TS-LRU,TS-LRU把到达的报文归并为流。在每一个测量时间段 结束时,TS-LRU能够向网络监控服务器3和网络监控终端4报告流经该节点的大流。大流测量的困难主要在于高速存储空间的限制。高速网络线路单位时间 内并发流的数量已近达到几十万甚至上百万,数量如此庞大的流只适合于存储在 DRAM (DynamicRandom-AccessMemory,动态随机存储器)中,但DRAM的访问速度慢,难以满 足高速网络的处理需求。SRAM(StaticRandom-AccessMemory,静态随机存储器)访问速度 快,但空间有限,价格昂贵。如何在有限的空间内识别并保留大流,是一个比较困难的问题。为了更全面、有效地了解网络运行状况,网络监控系统通常需要从多个角度来测 量网络流量,即把同一报文归并到不同类型的流中,例如,一个监控系统典型地需要以下流定义类型〈源地址 >、< 目的地址〉,〈源端口,协议 >,< 目的端口,协议〉等。每一种流定 义各有用途,例如按< 目的地址〉归并流可以发现端口扫描行为,按< 目的地址〉归并则可 以发现DDoS攻击。但要同时测量多种定义类型的大流,通常情况下需要运行测量算法的多个实例, 这样就会导致计算量和存储空间需求成倍增加,严重影响测量系统的测量能力和可扩展 性。利用网络流量分布特征,以LRU替换算法为基础,设计了 TS-LRU (Two-StageLRU) 测量方法。TS-LRU是一个1+n的层次结构,每一层包含固定数量的存储单元。其中第1层 用于保存FGF,其余的η层则保存需要测量的流类型,每一层保存一种类型的流。TS-LRU的 总体结构如图2所示。当网络报文到达时,首先在第一层根据流定义字段的并集聚合为不同的FGF,每个 FGF占用一个单元,当存储单元占满时,新到达的FGF用LRU (LeastRecentlyUsed,最近最 久未用)替换算法替换一个旧的FGF。替换下来的FGF同时归并到其余η层中,η层的处理方法一致首先根据所在层的 flow定义字段集合查找相应的流,如果存在,则归并到该流中,如果不存在,则创建新的流。 当数量有限的存储单元被占满时,则用LRU-Size替换算法选择一个旧的流替换,丢弃被替 换的流。LRU-Size替换算法是我们在传统LRU替换算法基础上的改进。单纯的LRU淘汰最 长时间没有报文到达的流,这样会导致暂时处于低速期的大流被错误地淘汰。LRU-Size替 换算法引入一个动态调整因子M,并为每一个流引入一个尺寸因子S,当有属于该流的FGF 到达时,FGF中的报文数量累加到尺寸因子S ;当流因长时间没有FGF到达而被LRU机制选 中作为淘汰对象时,则检查S的值,如果S=0,则淘汰该流;如果S>0,则S=S-M,继续检查链 表中前一个流。这样,已经有较多报文的流即使最近一段时间没有报文到达,也可以避免被 淘汰,从而解决了误淘汰大流的问题。在测量时间段的最后,把第一层中保留下来的FGF分别加入η层中相应的流中,并 向网络监控服务器输出报文数量或字节数量超过阀值的流,即大流.
TS-LRU处理步骤(见流程图3)
1.从网络接口捕获一个报文,提交给TS-LRU
2.把该报文加入Ll中的FGF(新建或已有的FGF),具体步骤(见流程图4)为 2. 1根据FGF的定义,取报文相关字段,计算哈希(Hash)值;
2. 2根据哈希值在Ll中定位FGF,如果存在对应的FGF,则更新相应的FGF,并将其移动 到Ll的头部;如果不存在,则新建一个FGF,并将其加到Ll的头部;
2.3如果Ll的存储单元数量超过预先设的的长度,则用LRU策略淘汰链表最后的FGF
3.如果有FGF从Ll被淘汰,则将其分别加入LS广LSn,以加入LSl为例,具体步骤(见 流程图5)为
3. 1根据流的定义,取相关字段,计算哈希值;
3. 2根据哈希值在LSl中定位流,如果存在对应的流,则更新相应的流,并将其移动到Ll的头部;;
3. 3如果LSl中不存在相应的流,则从LSl的尾部开始检查流状态,用LRU-Size策略 选择一个流淘汰,并把新的流放入腾空的存储单元。然后把所有检查过的单元一起移动到LSI的头部,并更新其中的流状态值。 4.如果测量时间段还没结束,则转到步骤1,处理新的报文;如果已经结束,则把 Ll中的FGF分别归并到LS广LSn,向监控服务器报告测量结果,即保存在LSfLSn中的不同 类型的流,最后清空所有存储单元,转到步骤1,开始 新的测量时间段。
权利要求
一种高速网络环境下多类型大流并行测量方法,其特征是,它的步骤为1)在路由器或交换机类网络设备上设置端口镜像,使流经该网络设备的所有网络报文被复制发送到网络监控前置机;2)前置机采用TS-LRU算法,该算法采用1+n 的层次结构,每一层包含固定数量的存储单元;其中第一层用于保存细粒度流,其余的n层则保存需要测量的流类型,每一层保存一种类型的流;2.1)当网络报文到达时,首先在第一层聚合为不同的细粒度流,每个细粒度流占用一个存储单元,当存储单元被占满时,新到达的细粒度流用LRU替换算法替换一个旧的细粒度流;2.2)替换下来的细粒度流被同时归并到其余n层中,n层中的处理方法相同首先根据所在层的流定义字段集合查找相应的流,如果存在,则归并到该流中,如果不存在,则创建新的流;当数量有限的存储单元被占满时,则用LRU-Size 替换算法选择一个旧的流替换,丢弃被替换的流;2.3)如果测量时间段未结束,则继续处理新的报文;否则,把第一层中的细粒度流全部归并到其它n层中相应的流;3)在每一个测量时间段结束时,TS-LRU向网络监控设备报告流经该节点的大流,以及其中包含的报文数量或字节数量。
2.如权利要求1所述的高速网络环境下多类型大流并行测量方法,其特征是,所述步 骤2)中,细粒度流的定义字段集合是所要测量的多种流定义字段集合的并集,典型情况下, 细粒度流的定义字段为五元组集合,即〈源地址,目的地址,源端口,目的端口,协议〉。
3.如权利要求1所述的高速网络环境下多类型大流并行测量方法,其特征是,所述步 骤2)中,LRU-Size替换算法引入一个动态调整因子M,并为每一个流引入一个尺寸因子S, 当有属于该流的细粒度流到达时,细粒度流中的报文数量累加到尺寸因子S;当一个流因 长时间没有细粒度流到达而被LRU机制选中作为淘汰对象时,则检查S的值,如果S=0,则淘 汰该流;如果S>0,则S=S-M,继续检查链表中前一个流;其中动态调整因子M的值初始为1,当为了淘汰一个对象而检查的距离过长时,将其值 增加1。
4.如权利要求1所述的高速网络环境下多类型大流并行测量方法,其特征是,所述步 骤2) TS-LRU算法具体的处理流程为(1)从网络接口捕获一个报文,提交给TS-LRU;(2)把该报文加入第一层中的细粒度流,细粒度流为新建或已有的细粒度流,具体步骤为(2. 1)根据细粒度流的定义,取报文相关字段,计算哈希值;(2. 2)根据哈希值在第一层中定位细粒度流,如果存在对应的细粒度流,则更新相应的 细粒度流,并将其移动到第一层的头部;如果不存在,则新建一个细粒度流,并将其加到第 一层的头部;(2. 3)如果第一层的存储单元数量超过预先设的长度,则用LRU策略淘汰链表最后的 细粒度流;(3)如果有细粒度流从第一层被淘汰,则将其分别加入其他层,具体步骤为 (3. 1)根据流的定义,取相关字段,计算哈希值;(3. 2)根据哈希值在底一层中定位流,如果存在对应的流,则更新相应的流,并将其移 动到第一层的头部;(3. 3)如果第一层中不存在相应的流,则从第一层的尾部开始检查流状态,用LRU-Size 策略选择一个流淘汰,并把新的流放入腾空的存储单元;然后把所有检查过的单元一起移 动到第一层的头部,并更新其中的流状态值;(4)如果测量时间段尚未结束,则转到步骤(1),处理新的报文;如果已经结束,则把第 一层中的细粒度流分别归并到其他各层,向监控服务器报告测量结果,即保存在n层中的 不同类型的流,最后清空1+n层的所有存储单元,转到步骤(1),开始新的测量时间段。
全文摘要
本发明涉及一种高速网络环境下多类型大流并行测量方法。其步骤为1)在网络设备上设置端口镜像,使流经该设备的所有网络报文被复制发送到网络监控前置机;2)前置机采用TS-LRU算法,它采用1+n的层次结构,每一层包含固定数量的存储单元;第1层用于保存细粒度流,当存储单元不够时用LRU策略选择一个细粒度流淘汰;其余n层保存需要测量的流类型,每一层保存一种类型的流,第一层淘汰下来的细粒度流会被分别归并到n层中相应的流中,当存储单元不够时,用LRU-Size策略选择并淘汰一个流;3)在每一个测量时间段结束时,TS-LRU向网络监控设备报告流经该节点的大流,以及其中包含的报文数量或字节数量。
文档编号H04L12/26GK101834763SQ20101020327
公开日2010年9月15日 申请日期2010年6月25日 优先权日2010年6月25日
发明者林丰波, 王风宇, 胡毅, 郭山清, 龚斌 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1