高效可扩展的应用层流量识别架构.doc_第1页
高效可扩展的应用层流量识别架构.doc_第2页
高效可扩展的应用层流量识别架构.doc_第3页
高效可扩展的应用层流量识别架构.doc_第4页
高效可扩展的应用层流量识别架构.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2008 年 12 月Journal on CommunicationsDecember 2008 第 29 卷第 12 期通 信 学 报Vol 29 No 12 高效可扩展的应用层流量识别架构 张众 1 2 杨建华1 谢高岗1 1 中国科学院 计算技术研究所 北京 100190 2 中国科学院 研究生院 北京 100039 摘 要 提出一种采用自定义识别方法描述语言和识别操作树的高效可扩展的应用层流量识别架构 ARTIST 在流量识别方法的描述模型分析的基础上 设计了识别方法和识别规则描述语言以及对应的识别引擎 实现各 种主要流量识别方法 并可动态扩展新的识别方法 采用识别规则树结构维护识别规则 缩短了协议识别流程 提高了识别性能 实验证明 ARTIST 不仅能够支持对各类的流量识别方法和规则的动态更新 而且能够提高系 统识别性能 关键词 流量识别 描述语言 识别方法树 规则更新 中图分类号 TP393 文献标识码 A 文章编号 1000 436X 2008 12 0022 10 Efficient and extensible architecture of traffic identification at application layer ZHANG Zhong1 2 YANG Jian hua1 XIE Gao gang1 1 Institute of Computer Technology Chinese Academy of Sciences Beijing 100190 China 2 Graduate University of Chinese Academy of Sciences Beijing 100039 China Abstract The application identification system is required to be extensible and efficient for abundant rules and their frenquent updating A new architecture of traffic identification ARTIST architecture of traffic identification with script and operation tree was proposed An identification description language and its engine have been designed to support deep packet inspection traffic statistics signature matching multi state combination based on a describing model for application identification method which can cover all existing identification methods in ARTIST New identification method can be updated online with the script expediently An identification operation tree structure is used to lessen the average identification rules quantity for packet checking The experiment result shows that the ARTIST can both support the dynamic update for identification methods and rules and acquire a higher performance for high bandwidth Key words traffic identification description language identification method tree rules updating 1 引言 应用层流量识别是流量工程实施 网络攻击 检测 业务部署优化的重要组成部分与基础 保 证关键应用的性能而采用的流量管理 整形等都 建立在应用层流量识别的基础之上 传统应用依 照 IANA 指定的固定服务端口 1 实现 因此 通过 应用端口识别流量的应用层协议 随着 P2P 技术 收稿日期 2008 08 10 修回日期 2008 11 12 基金项目 国家重点基础研究发展计划 973 计划 基金资助项目 2007CB310702 国家自然科学基金资助项目 90604015 中国科学院重大科研装备研制基金资助项目 YZ200824 Foundation Items The National Basic Research Program of China 973 Program 2007CB310702 The National Natural Science Foundation of China 90604015 The Major Research Equipment Development Plan of Chinese Academy of Sciences YZ200824 第 12 期张众等 高效可扩展的应用层流量识别架构 23 以及私有协议应用的广泛使用 大量的应用层协 议使用动态端口的方式实现数据传递 这导致传 统依据协议端口识别方法失效 为了能够正确识 别应用流量 人们不断提出了新的协议识别方法 2 4 7 9 更新流量识别系统 硬编码实现的流量识 别系统 每增加一种新的识别方法或者修改识别 规则都需要一个编写代码 重编译 系统重启的 过程 无法在线升级新识别方法和频繁改变的识 别规则 同时不断增加的网络带宽和繁多的识别 规则对流量识别系统的性能也提出新的要求 这 就需要可扩展高效的流量识别架构支持识别方法 和规则的在线动态更新 并具有高速识别性能 本文提出一种高效可扩展的应用层流量识别 架构 ARTIST architecture of traffic identification with script and rules tree 通过分析应用层流量识 别方法 抽象出识别方法的表示模型 将识别方 法表示为若干组基本识别操作按照特定关系的组 合 设计并实现了一种基于上述识别方法模型的 识别方法与规则描述语言和对应的识别引擎 达 到对识别方法和识别规则动态更新的目的 利用 各种长度范围的数据包中可能匹配的基本属性特 征不同 设计了识别规则树结构 缩短了整个识 别过程的处理流程 提高了系统的识别性能 评 估实验证明 ARTIST 不仅能够支持对各类流量识 别方法的动态更新 而且对比其他流量识别系统 具有更高的识别性能 2 相关工作 动态端口 内容加密等技术大量应用到新网 络中催生出多种多样的应用层流量识别方法 例 如基于特征的识别方法 7 8 9 和基于统计信息的识 别方法 3 4 10 对应多样而且不断变化的网络应用 和不断增长的网络带宽 可扩展性和高效性成为 评估应用层流量识别系统最重要的性能指标 BPF 11 是一种在网络流量检测应用中被广泛使 用的数据包过滤模块 集成在 libpcap 函数库中 BPF 通过链接高级语言编写的识别模块以实现扩 展识别方法的功能 因此无法实现动态在线升级 新的识别方法 采用链表方式组织识别函数 识 别函数不断增加会导致识别流程变长 性能线性 下降 L7 filter 12 是为 Linux 内核 Netfilter 流量过滤 模块设计的应用层协议识别模块 能够识别 Kazaa HTTP Jabber Citrix Bittorent FTP e Donkey2000 等协议 L7 filter 通过正则表达式特 征模式串与网络数据包内容的匹配实现流量识别 功能 所有的规则采用链表存储逐条匹配 受正 则表达式的功能限制 基于统计特征等识别方法 无法使用正则表达式描述 极大地限制了其可用 性 与 BPF 一样 链表存储的识别规则会随着规 则的增加造成系统性能线性下降 NetPDL 5 6 13 是一种基于 XML 的协议格式描 述语言 其目的是实现对各种类型数据包首部结 构与协议内容的通用描述 数据包处理引擎通过 支持 NetPDL 描述的 XML 脚本 能够在系统不重 启无需重编译的情况下支持新协议 这种语言已 经被证明能够非常有效地支持从链路层到传输层 的各类协议解析工作 并通过描述应用层协议结 构开始扩展对应用层协议识别的支持 然而它仅 仅能够描述那些通过解析协议格式实现的流量识 别 当前网络应用环境下 越来越多的私有应用 协议变得越来越复杂 使得很多应用无法用 NetPDL 来描述识别方法 Binpac 14 是另一种支持协议描述的实例 在 开源的防火墙 Bro 15 中被用以实现可扩展的协议解 析器 这种描述性语言被用来描述应用层网络协 议的解析方法 并利用 bison 一种产生解析代码 的 yacc 生成对应的高级语言代码 通过编译成 二进制代码然后链接进系统识别模块以达到对新 协议的支持 Binpac 系统实际上是间接实现的硬 编码系统 在更新过程中与硬编码系统一样需要 重新编译 而且 Binpac 系统也是采用链表组织识 别规则 识别流程随规则数增加而增长 上述应用层流量识别架构无法动态支持识别 方法和规则的增加 除 L7 filter 可以动态增加识别 规则外 识别架构的规则组织都使用链表方法 在规则增加情况下识别流程会变长 性能会降低 针对可扩展性和高效性 本文设计了识别方法描 述语言和识别规则树 提出了 ARTIST 应用层识 别流量架构 3 识别方法描述 3 1 识别方法分析 流量识别过程可以分解为数据流 flow 属性基 本匹配操作的组合 对流量识别方法进行抽象归类 首先必须分析数据流属性和相应的基本匹配操作 24 通 信 学 报第 29 卷 3 1 1 数据流属性 网络数据流的属性包括数据流中所有数据包 的属性和数据流的整体属性 其中流量识别方法 常用的属性包括以下几类 1 数据包长度 2 数据包应用层内容 传输层首部后的数据 Payload 3 数据流包长和统计值 均值 方差等 4 数据流双方向流量比值 5 数据流的传输层协议类型及端口号 异构网络中应用数据包时间属性受链路状况 影响较大 因此时间属性不被用来作为流量识别 针对的数据流参数 上述属性中 1 2 是单个数据 包的属性 而 3 5 是数据流的属性 数据流属性 可表示成一个向量表达式 a 1 其中 a 表示数据流的属性向量 pi表示数据流中数 据包 i ci和 li分别表示这个数据包的应用层内容 属性和长度属性 q s 和 v 分别表示数据流中包 长的统计值 数据流双方向流量比值以及数据流 传输层协议及端口号 3 1 2 流量识别基本匹配操作 基本匹配操作是判定若干操作对象之间是否 存在特定逻辑关系的操作 流量识别可以被视作 是一组对数据流属性向量中元素的基本匹配操作 的组合 流量识别方法中的基本匹配操作按照操 作对象可分为 3 类 a 单个属性和特征值之间的匹 配 b 单个数据包属性间的组合匹配 c 多个数据 包属性间的组合匹配 通过组合可以得到所有可 能的流量识别基本匹配操作类型 结合实际应用 情况过滤其中不适合的属性间匹配性操作 例如 某数据包长度和数据流传输层端口号之间特定关 系的匹配性操作 在实际应用中是不可能出现的 通过这样的筛选 得到构成流量识别方法的基本 匹配性操作类型如下 1 数据包内容与特征串匹配 a 2 数据包长度与特征值匹配 a 3 数据包内容中的不同部分之间匹配 b 4 数据包内容与数据包长度的匹配 b 5 数据流端口号与特征值匹配 a 6 数据流包长统计值与特征值匹配 a 7 数据流双方向下流量比值与特征值匹配 a 8 多个数据包内容和包长度之间特征关系的 匹配 c 每一种识别操作后的括号中是按照前面的分 类规则划分的分类号 集合 p p1 p2 p8 p9 表示 流量识别方法使用的基本匹配操作 每一个元素 对应上述 8 种基本匹配操作之一 p9表示无匹配 操作 3 1 3 识别方法表示 流量识别过程可表示成数据流属性向量与基 本匹配操作集合的组合 定义流量识别方法向量 表达式 m 2 表达式 m 中的 sj表示流量识别方法中对于某 一个数据包的属性的一组基本匹配操作 pi为基 本匹配操作集合中针对数据包属性的匹配操作 如果 pi是对多个数据包属性的组合关系匹配 则 pi被包含在它所涉及的每一个数据包的基本匹配 组中 当且仅当针对数据包属性的一组基本识别 匹配操作成功 才认为这个基本匹配操作组的识 别结果成功 即 si p1 p2 pn 1 pn 3 实际的流量识别方法向量表达式往往只在部 分维度上包含内容 即只是匹配操作部分的数据 包属性和数据流整体属性 当且仅当一个流量识 别方法表示向量的所有维度的匹配操作组值都为 真的时候识别方法结果为真 即 m m1 m2 mn 1 mn mi表示 m 向量第 i 维基本 匹配操作组的匹配结果 识别方法匹配过程中 mi被匹配检查为真的情 况下才会进行 mi 1匹配操作 结合数据流中数据 包出现的先后顺序 能够将针对多个数据包属性 的识别方法表示成一个识别状态机 其中每个状 态对应一个流量识别基本操作组 依据之前数据 包已经被识别的状态决定对当前数据包的识别操 作组 下面举例说明 某种识别方法 a 定义为 对数据流中的一个数据包的包长匹配 且匹配此 数据流中此数据包的后续数据包的应用层数据段 内容 这个识别方法可以看作是两个识别状态的 组合 表示为 ma p1表示检查此数 据包长度 p2表示对数据包内容进行特征匹配 当现在的识别状态为 0 的时候 对数据包进行 第 12 期张众等 高效可扩展的应用层流量识别架构 25 p1识别操作 当进入状态 s1后 将对数据包进行 p2操作 对识别规则的表达 只需要在识别方法表达 的基础上为每一个基本匹配操作加上参数即可 识别规则表达式为 M 大写的变量表示这 是一个实例化对象而不是识别方法表达式中的类 型对象 增加的变量 Ai为基本识别匹配操作实例 Pi的参数 由流量识别方法表达式可知 识别方法的基本 匹配操作种类是有限且固定的 识别方法的变化实 际上是基本匹配操作之间组合方式的变化 对于识 别规则而言还包括基本匹配操作参数变化 识别方 法和识别规则的动态更新能够通过对识别方法中基 本匹配操作的组合方式和参数的动态表示实现 前 面已经说明识别方法向量表达式能够通过状态机表 示 在识别引擎实现基本识别操作 动态创建表示 识别方法中各基本识别操作组合关系和参数的状态 机即可实现对识别方法和识别规则的动态更新 3 2 识别方法描述 对流量识别方法和规则的动态支持需要能够 描述基本识别操作 操作参数和操作组织结构的 方法 XML 语言对于元素对象和组织结构的表示 能力很强 选择 XML 语言实现 ARTIST 流量识别 架构的识别方法和规则描述 3 2 1 数据包内容与特征串匹配 内容与特征串匹配操作描述如图 1 所示 元 素 content 表示这是一个数据包内容与特征模 式串匹配操作 包含 3 个子元素作为参数 value 特征字段的内容 此处表示为字符串 BitTorrent protocol 也可正则表达式的特征串例如 GET exe offset 特征字段所处在数据包中的 位置 负数表示是从 payload 的尾部向前的偏移量 特征值 SEARCH 表示没有固定偏移 特征字段在 数据包中的位置不固定 图 1 中的偏移表示从应 用层数据的第 1byte 开始 应用层首字节偏移值为 0 length 存储特征字段的长度 图 1 中长度 19 为 BitTorrent protocol 字符串的长度 BitTorrent protocol 1 19 图 1 内容与特征串匹配操作描述 3 2 2 数据包内容不同部分匹配 数据包内容不同部分特征关系匹配操作描述 如图 2 所示 元素 content content 表示数据包 内容中不同部分特征关系的匹配 包含 6 个参数 元素 offsetX 表示两个比较目标参数的位置 width 表示比较内容的位宽 op 为第二个目 标的修正操作 value 为修正操作参数 plus 表 示补充值 图 2 中的识别操作表示偏移 0 的内容 V1 和偏移 1 的内容 V2 之间存在 V1 V2 2 0 的特征关系 2 3 1 add 2 0 图 2 数据包内容不同部分特征关系匹配操作描述 3 2 3 数据流包长统计值与特征值匹配 数据流包长统计值与特征值匹配操作的描述 如图 3 所示 元素 stream length 表示数据流包 长统计值与特征值匹配操作 包含 3 个子标签 dir 表示统计值是单方向的或者是双方向的 单方向用 c2s 和 s2c 区分 average 数 据流保持均值 range 波动范围 c2s 750 20 图 3 数据流包长统计值与特征值匹配操作的描述 图 3 表示对象数据流 c2s 方向的数据包长度均 值是否处于 750 20 750 20 范围内的匹 配操作 3 2 4 存储 buffer 存储 buffer 操作的描述如图 4 所示 元素 store buffer 表示将数据包内容 数据包长度或 者常量存储在 buffer 中的指定位置中 设置此 buffer 操作组用来实现多个数据包内容和包长信息 26 通 信 学 报第 29 卷 的特征关系匹配 通过将各个数据包的属性存储 在 buffer 中实现整体的特征关系匹配 Buffer 是对 应每个数据流的数据结构 各个数据流之间的识别 操作互相不影响 本元素包含4 个基本元素 store flag 标识源操作数来自于包长 内容或 者常量 0 0 0 2 图 4 存储 buffer 操作的描述 dst offset buffer 中欲存储数据的位置 source offset 如果被存储数据是包内容或者 buffer 内容 指定数据位置 width 存储数据 的位宽 3 2 5 操作 buffer 内容 操作 buffer 描述如图 5 所示 元素 op buffer 表示对 buffer 中数据进行处理操作 包含 5 个操作元素 b1 1 1 1 add 图 5 操作 buffer 描述 argX 操作数的表示有 4 种 1 buffer 内容 b11 表示 buffer 中偏移为 11 的数据 2 数据包内容 c11 表示数据包中偏移为 11 的数据 3 数据包长度 l 4 常量 数值例如 25 result 结果存储位置 width 操作数位宽度 op type 操作类型 可以是算数操作 逻辑操作和位操作 3 2 6 识别操作组状态属性 识别操作组状态属性的描述如图 6 所示 元 素 state 表示识别操作组在状态机中的关联信息 用以表示识别操作组之间的组成关系 包含 4 个 子元素 NO STATES 0 BT0 NO STATES 图 6 识别操作组状态属性的描述 pre state 表示进行此识别操作组需要此 数据流被识别现在处于的状态 finalstate 表示此识别操作组是否是状态 机识别的最后一部分 如果是 则表示这一组识别 操作通过 即可以认为此数据流被识别规则识别 after state 表示通过此识别操作组后 此数据流被标识的状态 back state 表示没有通过此识别操作组 此数据被标识的状态 3 2 7 协议和识别规则组织结构 图 7 是使用描述脚本实现的一种应用的识别 规则描述文件的基本结构 S E P 图 7 协议识别操作组织结构的描述 根元素 protocol name 用以表示此元素 是描述的何种应用的识别方法 次级标签 tcp 和 udp 区分同种应用的 tcp 和 udp 流不同的识别方法 在构建协议识别方 法表的时候对不同的应用层协议分别构建特征匹 配方法表使得识别流程更短 method 标签 method 标签由 state 标签 len start 标签 len end 标签 priority 标签和其 第 12 期张众等 高效可扩展的应用层流量识别架构 27 他基本识别操作标签组成 一个 method 标签标识 对一个数据包属性的一组识别匹配操作或者一个 对数据流整体属性的识别匹配操作 即识别方法 表达式中一个维向量中的内容 len start 标签 len end 标签 priority 分别表示包长限制 优先级 包 长限制和优先级能够帮助实现识别规则树 在第 4 章会详细描述 3 3 实例分析 以一个 bittorrent 的 tcp 流量识别规则转化为 脚本为例 如图 8 所示 说明如何描述一条识 别规则 bittorrent S E P NO STATES 0 BT0 NO STATES BitTorrent protocol 1 19 S E P BT0 1 BT1 NO STATES 168 5 图 8 识别脚本实例 此识别规则的向量表达式为 M S1 P1 A1 S2 P2 A2 其中 P1表示数据包内容匹配特征串操 作 A1表示匹配操作的参数是数据包应用层内容 偏移位置 1 开始的 19byte 的特征串 Bittorrent protocol P2表示的内容如下 1 填充基本元素协议名和传输层类型 对应 M 中的每一维设定一个 method 元素 2 依据识别操作的先后顺序设定 method 中的 state 标签内容 3 在每个 method 标签中填充优先级 特 征出现的数据包长度范围元素的内容 这些值来 自对以往流量识别结果的总结 4 将向量表达式中所有 Pi Ai 加入描述文件 首先按照 Pi代表的基本识别操作类型将对应标签 加入 Pi对应的 method 标签下 并将 Ai数值填 充在基本识别操作元素中 4 ARTIST 的实现 图 9 是基于 ARTIST 协议识别架构实现的流 量识别系统的结构框 系统使用脚本解释器解析 出读入的识别脚本中所描述的识别规则 并将结 果交给识别规则树维护模块 识别规则树维护模 块按照脚本中描述的识别规则的包长限制信息和 优先级信息构建识别操作树 协议识别引擎使用 数据包 数据包所属流表的流记录以及识别规则 树信息实现流量识别工作 4 1 识别规则描述脚本解释器 识别规则描述脚本解释器按照 3 2 节提到的描 述语言关键字解析识别规则脚本 然后将解析得 到的信息交给识别规则树维护模块 4 2 识别规则树维护模块 识别规则树维护模块从脚本解释器得到识别 图 9 ARTIST 实现 28 通 信 学 报第 29 卷 规则描述脚本所存储的识别规则的基本匹配操作 组合方式和参数 以此为基础构建识别规则树 识别规则树对属于不同包长区间的数据包建立有 区别的识别规则链表 缩短每个数据包的处理流 程从而提高了识别效率 4 2 1 识别规则树结构 图 10 是识别规则树的结构 识别规则树存储 了识别过程中用到的所有识别规则 其基本结构 是按照包长区间分界点划分的树状结构 每一个 叶子节点链接对应这个数据包长度范围内出现的 识别规则链表和特征串匹配 DFA ARTIST 将这 些识别规则分为针对数据包属性的基本识别操作 组以及数据包内容特征串匹配操作 而存储两种 识别规则的结构分别是识别规则链表和特征串匹 配 DFA 1 识别规则链表 识别规则链表中的每一项代表描述脚本中一 个 method 元素中的内容 即识别规则中一个 状态的识别操作组 每一项由一个识别规则头和 若干基本识别操作信息块组成 识别规则头 识别规则头指向一组基本识别 操作信息块 这些信息块代表这个状态识别基本 操作组中的基本识别操作和参数 当一个识别规 则只有一个识别状态的时候 一个识别规则头和 其指向的操作信息块成为一条独立的识别规则 该识别头中主要包含的元素为 此识别操作组的 状态信息 对应应用名称 状态信息存储了描述 脚本中 state 元素的内容 即这个识别操作组在 整条识别规则中的结构信息 基本识别操作信息块 对应 3 2 节中的各种基 本识别操作 存储其类型和参数 2 特征串匹配 DFA 一个对象串中是否包含多种特征匹配串的高 效多模式匹配算法是基于 DFA 结构实现的 DFA 结构同时支持对正则表达式匹配的实现 因此采 用 DFA 实现对多个特征串的高效匹配 4 2 2 识别规则树建立 建立识别规则分为两个步骤 一是建立识别规则树框架 即各个长度区间 分界点 识别规则树维护模块从解析器获得识别操作 组和其包长限制信息 如果长度分界点选取不当 可能导致一个识别操作组出现在多个长度分区中 从而导致识别规则树缩短识别流程的能力下降 因此 ARTIST 中采用基于识别规则包长限制的最 大值中位数的分组方法 得到所有识别操作组的包长限制最大值的中 位数 以此中位数将识别规则分为两组 若一个 识别规则的包长限制最大值小于中位数则直接将 其分配到小于中位数的组 L 若识别规则的包长限 制最小值大于中位数 则直接将分配到大于中位 数的组 B 若中位数介于该特征的最小包长与最大 包长之间 则要分裂该特征 分裂为两个特征 SL 和 SB 其中 SL的最大包长设置为 Median 将 SL 分配到组 L SB的最小包长设置为 Median 1 将 SB分配到组 B 中 对上述分裂的两个识别规则 组 L 和 B 继续用上述分组方法分组 若识别规则 组中其包长限制最大值小于该组包长限制最大值 图 10 识别规则树结构 第 12 期张众等 高效可扩展的应用层流量识别架构 29 中位数的规则小于等于 3 条时 停止分组 二是根据建立的识别规则树框架将识别规则 分布到所属的叶子节点 并建立识别规则链表和 特征串匹配 DFA 4 3 协议识别引擎 协议识别引擎是使用数据包属性 数据流记 录和识别规则树信息实现流量识别工作的功能模 块 协议识别引擎的工作分为两个步骤 1 根据包长找到对应的叶子节点以及所属的 识别规则链表和特征串匹配 DFA 2 使用识别规则链表和特征串匹配DFA 实现 多个流量识别规则的一个状态识别操作组的匹配工 作 图 11 为识别引擎遍历识别规则链表的流程 识别引擎内部包含所有基本匹配操作的实现 通 过从基本识别信息块获取得到的参数就能够完成 对应的基本识别操作 只有当一个基本识别操作 组的所有操作都识别为真的时候 判定识别操作 组的匹配结果为真 根据识别方法头中存储的状 态参数 修改数据流识别状态或通知识别成功并 将应用类型填充在数据流表项中 图 11 识别规则链表遍历流程 4 4 动态更新实现 ARTIST 新增识别方法和规则的实现分为以下 两个步骤 1 识别规则脚本解释器读入并解析新识别脚本 2 解释器将识别规则信息传递给识别规则树 维护模块 识别规则树维护模块按照识别规则树 包长分界点和新加入识别规则的每个基本操作组 的包长限制信息 判断新加入它们所属的叶子节 点 按照每个基本操作组的优先级将它们插入在 各自所属的叶子节点的识别规则链表中 修改识别方法和规则的实现分为以下两个步骤 1 识别规则脚本解释器重新读入并解析所有 识别脚本 2 解释器将识别规则信息传递给识别规则树 维护模块 识别规则树维护模块重新建立识别操作 树 识别规则链表和特征串匹配DFA 完成构建后 30 通 信 学 报第 29 卷 识别操作数模块用新建的识别操作树替换原有操作 数 两种改变方式的区别在于 新增规则不需要 重建操作数 而修改规则会引起识别操作数的重 建 两种识别规则的变化都能够动态实现 5 应用实例与实验分析 应用层流量识别架构的评价指标包括支持的 识别方法和识别规则可扩展性以及 识别效率 通 过对比 ARTIST 实现与 L7 filter 系统和 NETPDL 系统在识别方法支持种类和实际识别数量上的比 较 证明 ARTIST 具有很好的可扩展性和有效性 比较 ARTIST 实现 L7 filter 系统和硬编码识别 系统的实际识别速度 证明 ARTIST 的高效性 实验测试流量是从中科院计算技术研究所出口 链路上抓取的3 个 10GB trace 捕获时间分别2007 年 7 月 23 日 2007 年 9 月 13 日 2008 年 5 月 18 日 包含数据包个数分别为 2 054 107个 2 173 107个 1 986 107个 实验测试机配置为 2 4GHz 至强 CPU 内存 2 0GB 操作系统为内核 版本 2 6 25 的 Linux 系统 表 1识别方法支持 系统名称特征串 匹配 深度包解析 不包括特 征串匹配 多状态 识别 数据流统 计特征识 别方法 新识别 方法支持 NetPDL不支持部分支持支持不支持 支持 需要 重编译 L7 filter支持不支持支持不支持不支持 ARTIST支持支持支持支持支持 表 1 列举了3 种流量识别系统对4 种主要的协 议识别方法的支持情况 以及对识别方法的支持情 况 其中L7 filter 系统对应0 9 版本 NetPDL 系统 对应0 1 版本 对比其他实现 ARTIST 对 5 类识别 方法都能够支持 能够不需要重编译升级新识别方 法 表 2 是识别系统对于实验 Trace 流量识别的结 果 NETPDL 系统并没有完全开放 没有对比测 试 采用具有高可靠性的识别特征标记实验 Trace 中的流量应用类型 以此作为流量识别率的判断 标准 ARTIST 实现能够识别更多的网络流量 主 要原因是 L7 filter 实现只支持特征串匹配 而不能 支持别的识别方法 现在很多的应用流量不能使 用特征串匹配的方法进行流量识别而需要别的流 量识别方法 导致 L7 filter 可识别协议种类有限 而 ARTIST 从识别方法本质结构出发 能够支持 各类主要识别方法并支持新识别方法的动态增加 多样化的识别方法支持使得 ARTIST 实现对更多 的实际流量能够有效识别 表 2实验 Trace 流量识别率 系统名称Trace1Trace2Trace3 L7 filter32 8 25 9 30 2 ARTIST73 4 68 1 78 1 通过比较 ARTIST 实现和其他流量识别系统 在平均包检测时间 最大包检测时间 上的差别 对 ARTIST 的识别性能做出评估 识别系统配置 的协议和识别方法数目会影响识别流程的长度 对识别速度有直接影响 因此实验中各个系统采 用相同数量的识别对象协议和识别方法 以达到 实验的公平性 各种识别系统都使用 libpcap 函数库从 Trace 文件中读取数据包内容 采用相同的 2 4 层解析 方法 仅记录识别过程的时间进行对比以达到真 实反应识别性能的目的 实验中支持的协议包括 Bittorrent Edonkey Thunder POCO QQLive PPStream PPLive QQ MSN HTTP 下载 RTSP SIP 共 12 种 一共支持 TCP46 个 UDP12 个 共 58 种识别方法 表 3 的结果说明在处理性能上 ARTIST 实现 优于硬编码系统 主要原因在于 ARTIST 实现的 树型结构和优先级策略使得平均每个数据包的处 理流程要短得多 对比不采用识别规则树的 ARTIST 实现 更能体现识别规则树对系统性能 的提升 采用识别规则链表存储识别规则的系统 对于无法被任何识别规则匹配而要遍历整个规则 链表的数据包处理流程很长 可以从最大单包处 理时间上验证 而 L7 filter 系统采用正则表达式 匹配而又没有采用 DFA 等方法合并各个匹配特 征 所以同样有匹配流程长的缺点 实验结果证 明 ARTIST 通过识别规则树结构成功的缩短了识 别流程 提高了系统性能 表 3性能对比 系统名称平均每包处理时间 s 包 最大单包处理时间 s 包 硬编码系统4 0221 740 第 12 期张众等 高效可扩展的应用层流量识别架构 31 L7 filter6 9042 948 ARTIST2 693232 6 结束语 为了提供对不断出现的新识别方法和识别规 则的动态更新支持 同时应对不断增长的链路带 宽 本文提出了一种高效可扩展的应用层流量识 别架构 通过对流量识别方法分析并抽象出识别 方法的表示模型 基于此表示模型设计了流量识 别方法的描述办法 这种描述办法能够从根本上 表示各种可能的流量识别方法 以此为基础设计 了 ARTIST 实现对新识别方法和规则的动态更新 功能 实现系统可扩展性 通过设计识别规则树 缩短数据包的识别规则匹配流程 实现系统性能 提升 通过实验证明 ARTIST 不仅能够通过支持 更多识别方法类型 识别更多的实际网络流量 而且 ARTIST 流量识别系统的识别规则树结构有 效地缩短了识别流程 使得 ARTIST 比其他系统 具有更高的识别性能 下一步工作将结合流量识别规则的数据挖掘 办法 设计一种能够自动获取流量特征并生成和 验证新的识别方法和规则描述脚本的技术 此外 ARTIST 针对的流量识别匹配对象还是网络中的一 个独立的 5 元组数据流 将进一步分析利用多个 数据流相关性实现的流量识别方法 并得到其抽 象表示 最终希望在 ARTIST 中实现对这种方法 的支持 并验证其有效性 通过这些研究一方面 能够将 ARTIST 发展成为一种更加智能的流量识 别系统 另一方面也提升了 ARTIST 对流量识别 方法支持的全面性 参考文献 1 IANA IANA port number list EB OL http www iana org assignments portnumbers 2 MOORE A ZUEV D Internet traffic classification using bayesian analysis techniques A Proceeding of ACM SIGMETRICS C Banff Canada 2005 50 60 3 ERMAN J ARLITT M MAHANTI A Traffic classification using clustering algorithms A Proceedings of IEEE SIGCOMM C Pisa Italy 2006 281 286 4 ZUEV D MOORE A W Traffic classification using a statistical approach A Proceedings of Passive and Active Measurement Workshop C Boston USA 2005 321 324 5 BALDI M RISSO F Using XML for efficient and modular packet processing A Proceedings of IEEE Globecom C USA 2005 447 452 6 RISSO F Mario baldi NetPDL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论