- 1 -
一种基于流计算的网络故障诊断方法
王建强,赵耀**
(北京邮电大学网络技术研究院,北京 100876)
摘要:传统网络故障分析方法是采用典型的基于 SNMP 协议获取交换机或者服务器的 MIB、5
TRAP 信息来实现。但是这种方式存在诸多问题,比如故障告警时延大,可扩展性差,而且
不同网络环境需要的定制不同的分析系统,可移植性差。针对这些问题,我们提出一种基于
实时数据处理框架的网络故障分析模型来弥补传统网络故障分析领域的不足。
本文列出的实时数据处理框架采用分布式计算、流计算、P2P 等技术实现。实时数据处理架
构的引入,打破了传统网络故障分析领域格局。采用面向数据的网络故障分析技术,改变了10
传统面向设备或者网络环境的设计。不仅增大数据吞吐量,而且保证数据的处理时延尽可能
小。同时,统一的数据封装模型、业务逻辑处理模型使系统具有很好可移植性,业务逻辑的
脚本化也大大增加了系统的扩展性,也提高了客户使用体验。
关键词:大数据;网络故障分析;流计算
中图分类号: 15
A network fault diagnosis method based on flow calculation
Wang Jianqiang, Zhao Yao
(Institute of Network Technology, Beijing University of Posts and Telecommunications 100876)
Abstract: Traditional network fault analysis method is realized by using MIB, TRAP information 20
model based on SNMP protocol to get the switch or server. But this approach has many problems, such
as failure alarm delay, poor scalability, anddifferent network environment need to customize different
analysis system, poor portability. To solve these problems,we propose a model of network fault
management framework based on real-time data to make up for the shortage of traditional network
fault analysis field. 25
Real time data processing framework this article lists by distributed computing implementation
techniques, flow calculation, P2P etc.. The introduction of real-time data processing architecture,
breaking the traditional pattern ofnetwork fault analysis. The network fault data oriented analysis
technology, changed the traditional design for equipment or network environment. Not only increases
the data throughput, but also to ensure the processing delay of data as small as possible. At the same 30
time, the unified data encapsulation model, business logic processingmodel. So the system has good
portability, business logic script also greatly increases the scalability of the system,but also improve the
customer experience.
Key words: Big data; Network fault analysis;Flow calculation
0 引言 35
随着我国互联网使用的持续快速发展,企业对网络依赖度越来越大,网络中的问题及威
胁主要有:网络拥塞、丢包、拒绝;网络设备故障;非授权访问;路由错误等,及时分析处
理此类网络故障对企业的意义也愈发重大。传统网络故障分析系统,比如 Sniffer[1]等,能够
针对特定企业或者网络环境部署得当的网络故障分析环境,达到分析处理网络故障的目的,
但是这些传统的网络故障分析系统采用的模式越来越不适应日益庞大的网络数据、日渐增长40
的实时处理需求,而且面向网络环境和网络设备的模式,也越来越有局限性,丧失了一般性、
可扩展性和移植性等这些软件设计中的根本要素。
本文提出一种通用的网络故障分析模型,采用分布式计算、流计算[2]、P2P 等技术,提
- 2 -
供统一的数据封装模型、统一的业务处理模型和典型的面向数据故障处理模型,增大了数据
吞吐量、减小故障告警的时延。同时业务逻辑的脚本化,使的可处理的故障类型可定制、可45
扩展。综上,本文论述的是一种可扩展、可移植、时延小、通用的网络故障分析模型方法。
1 总体框架
综述
流计算平台
抓包节点
适配节点
数据
库
界面
处理
节点
处理
节点
处理
节点
处理
节点
处理
节点
图 系统框架图 50
Fig. System frame diagram
处理节点
PE容器
事件监听 事件分发 发射器
通信层
路由 负载均衡
容错管理
传输协议
PE1 PE2 PEn
图 处理节点结构图
Fig. The processing node structure diagram 55
图1,2所示,网络实时数据经过抓包服务器流入网络实时分析系统,网络实时分析系统
中的实时数据分析平台对数据流进行实时处理,产生的中间结果或者最终结果与界面交换或
者保存到数据库中。
- 3 -
网络分析系统由数据适配节点以及由数据分析节点组成的数据分析集群组成。数据适配60
节点通过获取外部网络中的数据包、接收系统外产生的数据分析请求等,将这些数据转换为
数据分析集群内通信所用的事件,并将事件发送到网络分析集群。此外,网络分析集群内产
生的处理结果,也通过事件方式发送到数据适配节点,由数据适配节点将其转换为对外通信
用的数据格式,并进而转发给数据库、日志、图形界面等进行后期记录和显示。网络分析集
群实时地对数据进行故障监测、分析、统计、排查和诊断等分析和处理操作,并将处理结果65
发送数据相应节点。
流计算技术
随着大量实时应用的发展,比如实时搜索、实时交易系统、实时欺骗分析、实时监控、
社交网络等,都需要一个高度可扩展的实时数据计算解决方案。数据的价值随着时间的流逝
而降低,所以事件出现后必须尽快地对它们进行处理,最好数据出现时便立刻对其进行处理,70
发生一个事件进行一次处理,而不是缓存起来成一批处理流中的数据元素在线到达,需要实
时处理; 系统无法控制将要处理的新到达的数据元素的顺序,无论这些数据元素是在一个
数据流中还是跨多个数据流;也即重放的数据流可能和上次数据流的元素顺序不一致; 数
据流的潜在大小也许是无穷无尽的; 一旦数据流中的某个元素经过处理,要么被丢弃,要
么被归档存储。因此,除非该数据被直接存储在内存中,否则将不容易被检索; 数据流系75
统涉及的操作分为有状态和无状态两种,无状态的算子包括 union、filter 等,有状态的算子
包括 bsort、join、aggregate 等。有状态的算子如果执行失败后,其保持的状态会丢失,重放
数据流产生的状态和输出不一定和失效前保持一致,而无状态的算子失败后,重放数据流能
够构建与之前一致的输出。 数据流计算可以看成是一个个算子(节点)和一条条数据流(边)
组成的数据流图。 流计算模型中,数据以流的方式进入服务器集群,服务器集群中的处理80
单元对实时数据进行一步一步的提取、过滤和分析等操作和处理,最后输出处理结果;其中
每个处理单元只负责完成自身的业务功能,各个处理单元地位平等。此模型适用于实时/非
实时的动态数据分析和处理。[3]
流计算技术在系统中应用
外
部
网
络
环
境
数据适配
实例1
数据分析节点1
分析实
例1
分析实
例n
分析实
例i
分析实
例m
分析实
例
分析实
例
数据分析节点2
数据适配
实例2 后期处理
85
图 流水线作业方式
Fig. Pipeline working way
如图 3 所示,流计算模型应用到系统中的流水线作业方式:
外部网络中的数据被发送到数据适配节点(即图 3 中的数据适配实例 1)中的数据收发
模块,该模块从数据处理容器模块中获得处理该数据的数据适配实例(即图中的适配实例90
- 4 -
中国科技论文在线
1),由数据适配实例将数据转化成数据分析节点能处理的事件,然后由事件收发模块选择
合适的数据分析节点(例如图中的数据分析节点 1),并将该事件转发给该数据分析节点。
a) 数据分析节点中的事件收发模块收到事件后,从数据处理容器模块获得数据分析实例,
将事件交给数据分析实例进行处理。数据分析实例对事件进行处理后,处理结果被直接
封装为一个或多个新的事件;每个事件都由事件收发模块分别选择并分发给下一个节95
点。
b) 事件收发模块在分发事件时,按照事件分发策略:根据待分发事件的类型,如果本节点
能够处理该事件,则优先选择本节点来处理该事件;否则,计算该事件的特征值(即根
据该事件的关键属性计算得到的hash 值),基于特征值并采用基于一致性Hash 的平衡
路由机制,结合各节点的可用状态和负载率,从所有能够处理该事件的节点集合中选择100
一个合适的目的节点进行事件分发。例如,图中数据分析节点1 中除分析实例i 以外的
各分析实例所产生的事件,由于数据分析节点1 能够处理,则均由数据分析节点1 进行
处理;但分析实例i 产生的事件不能被数据分析节点1 所处理,则转发给其他节点。
c) 整个处理流程按照步骤2)和3)不断循环,形成了对数据进行分析处理的流水线。最后,
分析完成产生的最终结果事件,被转发给数据适配节点。这可以通过配置数据适配节点105
所接收的事件类型来实现,即最终结果事件仅能由数据适配节点所处理。
d) 数据适配节点的事件收发模块将收到的最终结果事件交给数据适配实例,由数据适配实
例将事件转换为外部数据格式,由数据收发模块转发给相应的外部网络系统,进行结果
的后期处理。
e) 数据适配节点工作流程主要包括转化外部网络发送过来的数据,使其成为数据分析 110
- 5 -
中国科技论文在线
2 典型故障分析模型
典型故障分析流程
源数据包事件
IPID过滤事件
数据包丢失检测事件
超时结果事件
数据包丢失结果事件
PE0
PE1
PE2 PE4PE3
定时
器1
定时
器2
定时
器3
过滤条件事件
关键路径IPID过滤事件
路径分析事件
超时检测事件
PE5 PE6 PE7
路径分析结果事件
数据包
图 典型故障分析图
Fig. Typical failure analysis flow chart 115
如图 4 所示基于网络实时分析系统的典型网络故障分析模型,在 PE5 最终呈现的是全
局数据包超时的结果,其处理模型是 PE0 接收源数据包事件处理产生的 IPID 过滤类型事件
作为 PE1 的数据源,PE1 处理 IPID 过滤事件,将 IPID 相同的数据包分离产生超时检测事件
发送到 PE3 进行处理,PE3 接收到超时检测事件马上起定时器,对数据包进行定时分析。
最终将分析的结果发送到 PE6 上呈现出来。 120
另外两种故障处理模型与超时检测模型类似,但是有所不同,首先在 PE0 上就会做关
键路径的分流,即只允许属于关键路径的数据包流向下一个 PE,而数据包路径分析模型需
要跟实际的网络环境结合,读取真是网络环境的 TOPO 再做分析。[4-5]
- 6 -
中国科技论文在线
故障分析核心模块
客
户
端
适
配
器
UI
定时器模块
拓扑读取模块
脚本加载模块 Lua脚本
TOPOXML
故
障
分
析
模
块
数据包解析模块 源数据包
125
图 故障分析模块图
Fig. Failure analysis module figure
如图5所示,典型故障分析模块是由故障分析模块、数据包解析模块、脚本加载模块、
拓扑读取模块和定时器模块几个部分组成。每个模块负责的内容不同:
a) 数据包解析模块:负责解析流进系统的二进制数据包流; 130
b) 脚本加载模块:负责加载故障处理脚本;
c) 拓扑读取模块:负责读取真实网络环境的网络信息;
d) 定时器模块:负责典型故障分析中超时、丢包等功能的计时;
e) 故障分析模块:负责典型故障的分析。
在典型故障分析模型流程中,各个模块发挥着各自作用,最终故障分析产生的结果发送135
到界面呈现软件上。
- 7 -
中国科技论文在线
3 性能分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0 秒/s
千个
Inas
sniffer
图6 系统
吞吐量
Fig. 6 System Throughput 140
如图 6 所示,传统网络分析系统(sniffer)与本文论述网络实时分析系统每秒钟处理数
据包个数的曲线图。从图中我们明显可以看到传统网络分析系统的吞吐量是网络实时分析系
统的二分之一左右。实时性比较差,处理每万个数据包所需时间比本文概述的系统模型高一
个数量级。产生如此大的系统改价主要原因是我们系统模型采用了流计算机处理技术,流计
算技术是针对这种实时数据处理了的专用模型。 145
表 各项参数对比
Tab. Comparison of various parameters
系统 实时性(平均 s) 吞吐量(平均 Mb/s) 可扩展性 支持故障类型
传统数据分析系统 10 10 4 30
网络实时数据分析系统 1 50 5 100
如表 1 所示从实时性、吞吐量、可扩展性、支持的故障处理类型等各个方面,本文论述
的网络实时数据分析系统都改进了传统网络数据分析系统。
4 结论 150
本文给出了一种实时处理网络数据、分析网络故障的方法,从实时性、数据吞吐量、可
扩展性等方面对传统的网络数据分析系统所面临的局限进行相应的改进,系统经过单元测
试、集成测试、系统测试等,被证明是一种可以应用于实际环境的网络故障实时分析系统
[参考文献] (References)
[1] 路 建 华 .Linux 系 统 下 Sniffer 的 实 现155
[0L].[2009-9-17].
[2] Neumeyer L, Robbins B, Nair A, et al. S4: Distributed stream computing platform[R]. CA:In Data Mining
Workshops (ICDMW), IEEE International Conference on (pp. 170-177), 2010.
[3] 杨栋,Beyond MapReduce:谈 2011 年风靡的数据流计算系统[0L].
[4] 霍扬,龚俭.计算机网络故障分析及维护研究[J].硅谷,2008,(7):: 160
[5] 贺龙涛 , 方滨兴 , 云晓春等 . 网络监听与反监听 [J]. 计算机工程与应用 ,2001,37(18):20-21 ,
: