当前位置:首页 >> 信息与通信 >>

分布式网络流量监控系统的设计与实现_图文

兰州大学 硕士学位论文 分布式网络流量监控系统的设计与实现 姓名:范鹏飞 申请学位级别:硕士 专业:计算机应用技术 指导教师:申永军 20070501

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现





网络的应用形式由传统业务向P2P、Web2.0等形式转移,急需高效的流 量监控系统对网络的各类业务进行及时、准确的分析和控制。本论文以”基于 IPv6的P2P弹性重叠网络智能节点的研制(CNGI-04-12-1D)”项目为研究 背景,设计并实现了一种新的基于分布式的网络流量监控系统。
本论文的主要研究内容: 1、研究了两种流量监控系统的架构方案,结合项目总体技术要求,采用分 布式架构方案,实现对网络的多个关键出口实时高效的监控。

2、研究了监控系统的网络数据采集技术及接入网络方式(串联、旁路),
并根据项目的实际需求,采用旁路接入方式对网络进行监控。

3、研究了当前的端口匹配、特征码匹配技术以及流量控制技术,设计并实
现了基于应用层协议监控策略动态配置技术,采用一次匹配、二次匹配、
PASV

F『P匹配相结合的应用层协议分析技术和优化的TCP流量旁路阻断技术

的网络流量监控系统。 4、对该系统的功能和性能进行了测试,测试结果表明该系统的功能达到了 设计要求,具有很好的稳定性、可扩展性和可操作性等优点。 论文的创新之处:为优化应用层协议的分析与统计性能,提出了应用层协 议监控策略动态配置技术,组合了一次匹配、二次匹配和PASV_FTP匹配等应 用层协议分析技术,同时对TCP流量旁路阻断技术也进行了优化。 关键词网络流量;旁路监控;一次匹配;二次匹配;PASV_F丁P

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

Abstract
The network application is changing

formIy from

traditional

business to P2P,Web2.0 and other forms,high-efficiency network traffic monitoring and controlling control

system(NTMCS)is
kinds of business
on

needed network

urgently

to

analyze

and

promptly and

accurately。This

paper based on“The

Research&

Manufacture of P2P Resilient Overlay
on

Network

Intelligent Node based


IPv6。’project
on

has designed

and realized

new NTMCS

which

based

distributed system.
as

The main research content of this paper is 1.Analyzed

below:

two

kinds of the NTMCS framework,get united with

project’s
real?-time network.

request,distributed sy’stem structure is selected and

to

realize of

high?—efficiency

monitor

for

some

key

output

2.Analyzed

network data

gathering

technology

and
on

access

network(series
requirement of network.

connection&bypass

connection),based
is selected

actual

project,bypass

access

to

monitor the

3.Analyzed recent port match,characteristic code match and
flow control,has designed and realized
on

monitor

poly

dynamic

configuration technology which based

application layer protocol,

application layer protocol analysis technology is based first matching &second

matching&PASV-FTP

matching,TCP

flow

bypass

preventation technology is optimized. 4.A testing based
on

function and performance is done for this

system,the result shows the function of this system is achieving the demand of the
to use.

project;the

system is stable|expandableI and easy

The innovate point of this paper includes:To optimize analysis

and statistics performance of application layer protocol,application
.n.

兰州丈学硕士学位论文

分布式网络流量监控系统的设计与实现

layer

protocol

monitoring&controlling

dynamic

configuration

technology is given,combined first matching,second matching and PASV same FTP matching time.TCP for application layer protocol interdicl:ion analysis.At the is also

traffic

bypass

technology

optimized.

Keywords

Network Traffic;Bypass Monitoring and

Controlling;

First Matching;Second Matching;PASV_FTP

.IⅡ.

原创性声明

本人郑重声明:本人所呈交的学位论文,是在导师的指导下独立进行

研究所取得的成果。学位论文中凡引用他人已经发表或未发表的成果、 数据、观点等,均已明确注明出处。除文中已经注明引用的内容外,不
包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究成

果做出重要贡献的个人和集体,均已在文中以明确方式标明。
本声明的法律责任由本人承担。

论文作者签名:数



期:2婴Z工!∥

关于学位论文使用授权的声明

本人在导师指导下所完成的论文及相关的职务作品,知识产权归 属兰州大学。本人完全了解兰州大学有关保存、使用学位论文的规定, 同意学校保存或向国家有关部门或机构送交论文的纸质版和电子版, 允许论文被查阅和借阅;本人授权兰州大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用任何复制手段保存和

汇编本学位论文。本人离校后发表、使用学位论文或与该论文直接相 关的学术论文或成果时,第一署名单位仍然为兰州大学。
保密论文在解密后应遵守此规定。

论文作者签名:数师签名:

论文作者签名:;幽暨垒导师签名:

日期:地t,∥

兰型查兰堡圭兰堡篁塞

坌查耋垦竺堡苎些丝至竺竺塞婪皇童堡

第1章绪论
互联网的飞速发展,不仅仅体现在其规模的不断扩大、复杂性不断增加以 及其异构性的不断增大,而且也体现在各种网络业务的不断涌现及更新,这给
网络管理提出了新的挑战。如何更加有效的管理网络成为一个亟待解决的问 题。基于当前形势,本文提出了一种新的解决方案:基于分布式的网络流量监 控系统。

1.1论文选题背景
本文是在项目”基于IPv6的P2P弹性重叠网络智能节点的研制(CNGI一

04-12-1D)”(以下简称RON)的研究背景下提出的。 RON中国科学院声学研究所承担的关于CNGI项目,其研究目标是;研制
P2P智能节点设备,在CNGI网络上构建基于结构化P2P模型的IPv6弹性重

叠网络。通过弹性重叠网络,实现CNGI上的分布式资源管理平台;监控链路
状态,屏蔽网络故障和变更,为应用层提供可靠、高效的资源定位和查找服

务:利用智能节点探测网络路径和性能,为应用提供路由优化等网络服务;实
现基于智能节点的分布式流量监控及病毒监铡架构;并为CNGI提供~种分布 式网络管理工具。 本人自2006年2月份到中科院声学所实习,2006年3月份,启动RON 项目的基于智能节点的分布式流量监控及病毒监测系统,到2006年6月开始 负责该系统的设计与实现。 本文是由RON项目中的基予智能节点的分布式流量监控及病毒监测系统架 构演化而来,实现了对网络流量的分布式监控。

l-2需求分析
Peer—to—Peer(P2P)t1】应用的不断涌现及web2.0[2】时代的到来。给网络
及网络运营商带来了不容忽视的冲击。P2P新技术,通过Internet允许建立分 散的、动态的、匿名的逻辑网络。P2P为对等连接或对等网络,点对点网络技

术,可应用于文件共享交换,深度搜索、分布计算等领域。它允许个体的PC通 过Internet共享文件。据统计分析表明P2P应用约占宽带流量的50%~ 60%(白天)到90%(晚上),一些重要应用(如Web、E-Mail)的服务质
量受到严重影响,也给运营商的网络管理带来很大麻烦并增加了其运营成本
(OPEX)【31。

网络运营商亟需通过可靠、有效的网络流量监控系统[4,5t6,7]XTt其网络的各 个出口以及网络所承载的各类业务进行及时、准确的流量和流向分析。对网络

兰些查兰堡圭兰竺丝兰

坌童塞塑竺篁量些些垂竺竺塞兰皇窒墨

中的诸如P2P应用的流量进行监控,进而挖掘网络资源潜力,控制网络互联成

本,净化网络环境,并为网络规划、优化调整和业务发展提供基础依据。

1.3网络管理现状
在网络发展早期,网络规模非常小,网络管理几乎无事可做,对网络的管 理停留在使用ICMP和PING的基础上。通常一个或几个系统管理员采用一些 临时措施来完成初期的网络管理工作。一般。管理员开机登录,执行命令完成 所需的管理操作。在能够使用诸如login,rsh,telnet等远程访问的命令和程序 后,管理工作相对简化了一些,因为管理员可以在某个地方连接到远端的多台 机器。但这些机器必须处于正常的运行状态,远端访问才可用。UNIX系统工具 比如“ping”常被用来检查某个设备是否已连接到网络。Ping命令向指定设备发 出询问,如果指定设备处于运行状态并且己连接到网络,该设备就会返回一个 应答。另外一个工具是”traceroute”,它能够跟踪数据包在网络上从一点到另 外一点的路径,这个工具常用来清查网络配置。 随着网络规模的增大,网络管理者需要知道有关计算机网络的大量信息以 进行有效的管理。为了帮助网络管理者完成这些工作,逐渐出现了网络管理的 概念。网络管理是控制一个复杂的计算机网络使得它具有最高的效率和生产力 的过程。根据进行网络管理的系统的能力,这一过程通常包括数据收集、数据 处理,然后提交给管理者,用于在网络操作中使用。它还包括分析数据并提供 解决方案,生成对管理网络有用的报告。 网络管理系统不仅仅只是完成常规任务,作为发现问题的辅助手段,它可 以持续的监视网络,还可以产生网络信息日志并利用这些信息日志去研究和分 析网络,同时也可以控制网络行为。 互连网络的飞速发展,国内网络建设的加快,以及网通、联通、中国移动 等在IP领域的竞争,中国各大骨干网对于网络管理系统的需求的迅速增加。这 一方面促进了网管系统的销售,但同时也更加剧了这一领域的市场竞争。当网 络规模和复杂程度到达一定地步时,网管系统的需求就会极为强烈,但现有的 国产网络管理产品通常是架构在由国外网管供应商提供的网络管理平台上,功 能单r、扩展性差,技术实现与网络管理的实际需求存在很大的差距。多年来 中国的网络管理一童依赖于国外的产品,这些网管软件供应商包括:HP、 SUN、IBM、CA等。但是,随着国内网络规模的逐步扩大以及网络互联的日 益加剧,人们对网络管理和安全的考虑越来越深入了。我国信息业相关主管部 门从国家长远发展考虑,积极提倡和鼓励开发国内自己的网络管理系统,并逐
步取代国外产品。

本文结合运营商网络环境,从网络流量监测与控制入手,开展网络管理基
.,.

1.4网络管理与网络流量监控
今天的网络给我们的生活、工作和人与人之间的沟通带来了极大的方便, 网络业务日趋丰富,网络流量高速增长。同时,网络运营商之间的竞争也逐渐 激烈,以高投资为特征,追求简单规模扩张的粗放型竞争模式已经不适应当前 的形式。挖掘现有网络资源潜力,控制网络互联成本,提供有吸引力的增值业 务,提高网络运维水平,这些成为在激烈竞争中的制胜策略。而要实现这些, 都离不开可靠、有效的网络流量监控的有力支撑。 网络流量监控主要为对网络数据进行连续的采集,通过连续采集网络数据 监控网络的流量。获得网络流量数据后对其进行统计和分析,根据控制机制对 网络流量进行实时的控制,维护网络及其主要成分的性能指标,定期形成性能 报表,同时维护网络流量数据库或日志存储网络及其主要成分的性能的历史数 据,网络管理员根据当前的和历史的数据就可对网络及其主要成分的性能进行 性能管理,通过数据分析获得性能的变化趋势,分析制约网络性能的瓶颈问 题。此外,在网络性能异常的情况下,网络流量检测系统还可向网络管理者进 行告警,使故障及时得到处理。 实际上,网络流量监控中采集数据所用到的方法对于网络管理的其他方面 也是适用的。例如,对于计费管理来说,现在一般的路由器中都有流量记载, 网络流量信息通过路由器时,其流量信息都会在路由器的缓存CRAM)中保留下 来,它的记录格式由四个字段组成,分别为源IP地址、目标IP地址、包和字 节数。所以计费系统所要完成的操作就是把这些流量信息从路由器中提取出 来,经过特定分析后,就可以生成以IP地址流量为粒度的计费单了,这与流量 检测实现的途径是一致的。在网络流量检测的基础上,管理员可对感兴趣的网 络管理对象设置阈值范围以配置网络阈值对象,阈值对象监控实时轮询网络获 取定义对象的当前值,若超出阅值的上限或下限则报警,帮助管理员发现网络 瓶颈,这样即可实现一定程度上的故障管理。而网络流量监控本身也涉及到安 全管理方面的内容。 在长期的运营过程中,网络运营商发现目前拥有的网络管理工具并不能满 足网络实际的运营需要,在业务不断增长的压力下,迫切需要建立一套实时网 络流量统计、分析与控制高度融合的网络运维系统,达到如下三个目标: 1)网络维护:针对重要链路、用户、业务进行流量检测和分析,掌握流量 基线,为地下网站检测、用户流量日志、路由负载均衡、数据网络性能 优化等提供资料依据; 2)网络安全:异常流量的检测、DoS攻击的检测、蠕虫病毒的监测等;
.R.

兰州大学硕七学位论文

分布式网络流量监控系统的设计与实现

3)决策支持:业务带宽成本分析、网络带宽成本分析、网络建设的决策支 持等资料分析、对行业业务的成本和发展情况做出判断,最终为业务发
展的策略的制定提供好的依据。

综上,网络流量监控是网络管理中一个非常基础也非常重要的一个环节。

1.5论文研究内容及意义
随着宽带互联网在中国的迅速发展,全国各大网络运营商的网络规模都在 不断扩张,网络结构日渐复杂,网络业务臼趋丰富,网络流量高速增长。网络 运营商需要通过可靠、有效的网络业务流量监测系统对其网络以及网络所承载 的各类业务进行及时、准确的流量和流向分析,进而挖掘网络资源潜力,控制 网络互联成本,并为网络规划、优化调整和业务发展提供基础依据。 目前国内网络运营商的网络管理系统所能实现的流量监控功能非常有限。 远远不能满足需求。近年来,网络运营商对网络流量的监控管理(网络应用协 议的监测、病毒检测及告警、流量控制等),特别是对网络的实时监控管理变得 越来越难,某些监控系统在对网络应用的监控方面也没有好的可扩展性。针对 以上目前存在的主要特点,本论文设计和实现了一种基于分布式的网络流量监 控系统,主要研究内容如下: 1)对网络数据采集技术(SNMP、Netflow和流量镜像)进行了研究讨
论;

2)研究了应用层协议的识别技术,对应用层协议识别统计按照一次匹配、 二次匹配、PASVj可P匹配进行分类优化处理; 3)对TCP流量的旁路阻断技术进行优化处理的研究; 4)结合项目技术要求,对流量监控系统的分布式架构进行分析; 5)对各种流量信息,包括网络出口的上下行流量、应用层流量等统计信息
进行图形化处理;

6)设计一套安全的API接口,方便其他网管系统调用; 7)提供应用层协议动态监控的用户终端命令,方便应用层协议动态监控? 8)对系统的功能及性能进行了理论分析与测试,测试环境分别是中科院声 学所高性能网络实验室网络和性能实验测试环境。 此系统的设计与实现将会为网络管理提供一个更为人性化的网络流量监控 平台,也为其他的网管平台的设计与实现提供了一个接口,便于扩展,充分体 现了网络流量监控是网络管理中一个非常基础也非常重要的一个环节a

1.6论文结构安排
论文针对网络管理对网络流量监控的需求,对分布式的网络流量监控技术

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

进行了深入的研究和探讨,并在Linux-2.6内核上设计和实现了该系统。论文 的主要内容包括三部分: 第一部分包括第1章和第2章。第1章为绪论,介绍了论文的研究背景与

研究意义,剖析了网络管理现状;第2章为论文的主要技术研究概述,介绍了
网络流量监控的关键技术:应用层协议分析与应用层协议分析控制技术,网络 流量控制技术等。 第二部分包括第3章和第4章。针对目前网络监控的需求,第3章给出了 系统总体目标及系统的分布式架构方案,同时对系统功能进行了描述。第4章 讲解了系统的详细设计与实现,同时对系统环境及开源工具包进行了描述。

第三部分即第5章和第6章。根据系统需求及测试内容,第5章对系统功 能及性能的测试作了描述,分析了系统的优点,以及系统仍需改进之处。第6 章对论文做了描述性的总结,并指出下一步的工作内容和研究方向。

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

第2章应用层协议分析与控制技术
2.1应用层协议分析技术
对应用层协议的分析,本文首先研究了基于端El识别技术、基于应用层协 议特征码【8,9,10】识别技术,以及基于P2P协议流的特征识别技术。最后针对


EP协议的特殊性,讨论了被动FTP[11】(PASV FTP)的识别技术。

2.1.1端口识别技术
端口识别技术,就是根据端口号是否匹配的~种协议识别技术。这些端口 一般为知名端口,目前有相当部分流控产品及防火墙都是基于这种技术实现

的。下面从端口的性质进行分类说明。 (1)知名端口(Well
Known Ports);这类端口也常称之为“常用端口”。

这类端口的端口号从O到1024。它们紧密绑定于一些特定的服务。通常这些 端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用 对象。例如:80端口实际上总是HTlP通信所使用的,丽23号端口则是 Telnet服务专用的。这些端口通常不会被木马这样的黑客程序利用。 (2)注册端口(Registered Ports):端口号从1025到49151。它们松 散地绑定于一些服务。也是说有许多服务绑定于这些端口,这些端口同样用于 许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据需要 自己定义。 (3)动态和/或私有端13(Dynamic and/or Private Ports):端口号从 49152到65535。理论上,不应把常用服务分配在这些端口上。实际上,有些

较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口 常常不被引起注意,容易隐蔽。
综上所述,端口识别技术仅仅局限在知名端口范围内,但情况不容乐观, 目前已有部分P2P应用开始使用这些端13进行通信,比如KaZaA[12]就是可以 使用端13 80(通常是http/web使用)来通信的,从而穿透传统的基于IP和 端口的舫火墙和包过滤器。

2.1.2协议特征码识别技术
随着P2P应用的不断增长,更多的通信协议被使用,识别和分类P2P的技

术必须快速、简单,以适应这种技术的变化。但由于大多数P2P应用都使用动
态端13技术或者强行使用一些知名的协议端13进行传输,所以简单地通过端口 识别技术对它们进行识别可能会失效。 现在,识别P2P通信的方法是分析数据包的应用层(Layer 7 of OSI)信

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

息,即对TCP或UDP的有效载荷(payload)进行检查,以判断他们是否符 合某些应用协议的特征码,这也就是协议特征码识别技术。

2.1.3一次匹配、二次匹配识别技术
对于传统的协议(如active FTp[11]、HTTP【13]、SMTPll4]、POP3[1s] 等)的识别~般可基于知名端口,即基于端口的一次匹配技术。但基于知名端 口的识别技术对于P2P应用协议是不起作用的,要准确识别一些新协议(如 P2P协议),还需根据应用层(Layer
7 of

OSI)信息(如应用层协议特征

码)进行识别、分析,即基于特征码的一次匹配技术。

部分应用层协议要在协议识别的基础上进行识别、分析。例如,当盯客
户端下载时,必须进行Tracker查询,Tracker通过H'FI'P的GET命令的参 数来接收信息,而响应绘对方(下载者)的是Bencoded编码的消息。在 HTTP请求报文中,携带了BT的特征值User-Agent:BitTorrent[16,17】。

因此。首先须识别H丌P协议,然后基于HTTP协议对此会话进行进一步的
探测识别。针对该情况,可以根据特定的应用层数据包(如H丌P数据包),在
会话的基础上对其进行深层的分析(如根据BT关键字“BitTorrent”,从 HTTP数据包中识别BT应用)。即在协议识别基础上,基于会话重组对应用 层协议进行深层分析的二次匹配技术。
2.1.4

P2P行为特征识别技术

这种识别P2P流量技术的主要依据是P2P通信时所表现出的行为特征。该 技术是基于P2P端到端的连接模型,根据端和端的通信连接,对其数据传输上 下行流量及连接行为进行分析、统计,以此识别P2P流量。下面是P2P通信时 所表现出的行为特征研究: (1)P2P通信的上下行流量基本相当,有别于传统C,S模型的流量特 征。相对于网页浏览,邮件、流媒体等传统业务,下行流量远大于上行流量。 P2P通信时不仅要获得数据,同时也为提供数据,因此它的流量更多体现为上 行下行基本对称的模型。 (2)P2P通信的端和端连接数量较其它协议更多。由于一个非P2P的用 户同时只是和少数的几个用户或服务器进行连接,其连接数一般比较小。而对 于P2P通信来说,由于P2P协议自身的特点,它会与众多的P2P用户连接并 交换信息,其连接数量一般较大。 (3)P2P通信时,节点既是服务器端,又是客户端。从P2P通信连接来 看,当一端要从其它连接端下载数据时,其扮演客户端的角色;当为其它连接 端上传数据时,则扮演服务器端的角色。

兰州丈掌硕士学位论文

分布式网络流量监控系统的设计与实现

(4)P2P通信的监听端口的连接特点与传统主机不同。P2P客户端使用动 态、随机端口,若有一个主机(Host A)加入P2P网络的时候,须向超级节点 发送其IP地址和监听端13号(Host
A.ip,Host A.port),超级节点必须传播

这个消息(Host A.ip,Host A.port)给其他P2P客户端(Host others), 以便Host others连接Host A。如果有10个客户端连接Host:A,那么这10

客户端都连接Host A的Host A.port,而这10个客户端都随机选择一个端 口,即理论上有10个不同的IP地址与10个不同的端口与Host A.port进行
连接。

前3个特征是对P2P通信端进行有效识别的前提条件,第4个特征是从 P2P通信端的通信流量中识别出P2P协议流的重要特征。

2.1.5被动FTP(PASV二FTP)的识别技术
FTPLl9】使用2个端13,一个数据端13和一个命令端13(也可Ⅱq做控制端 口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作 方式的不同,数据端13并不总是20。这就是主动与被动FTP[11】的最大不同之
处。

主动方式的FTP:客户端从一个任意的非特权端口N(N>1024)连接到 F-I-P服务器的命令端口21。然后客户端开始监听端口N+I,并发送FTP命令
“port

N+1”到FFP服务器。接着服务器会从它自己的数据端口(20)连接到

客户端指定的数据端口(N+1)。

在被动方式丌P中,命令连接和数据连接都由客户端发起,当开启一个
FTP连接时,客户端打开两个任意的非特权本地端口(N>1024和N+I)。 第一个端口连接服务器的21端口,但与主动方式的F1。P不周,客户端不会提 交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样 做的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORT 命令给客户端。然后客户端发起从本地端口N+I到服务器的端口P的连接用来 传送数据。 需经过分析、提取FTP 21端口通信时的应用层信息,方可知道被动FTP 的数据传输端El,然后根据此端口号对被动FFP传输进行端口匹配,这就是 PAS、,_FTP的识别技术。

2.2应用层流量控制技术
2.2.1基于TCP的应用层流量控制技术
串联方式接入网络的控制系统,目前对应用层流量控制技术均是根据一些分 组丢弃算法【18】或TCP速率控制【19,20】等算法实现。但是这些技术仍存在一些不

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

足,例如由于TCP的重传机制,流量带宽仍然被浪费了一部分,也浪费了系统 的一部分处理能力;其最大的威胁来自流量控制设备以串联的方式接入极易形 成网络瓶颈。 旁路方式接入网络的控制系统,对应用层流量控制技术还不成熟,基本上

是根据TCP协议的特征,构造并发送特殊的TCP分组(如FIN分组、RST分
组等)中断应用协议的部分TCP连接而实现对网络流量的控制。这种旁路接入 网络方式,难以实现网络流量的精确控制。但这种接入方式对网络本身的稳定 性没有影响,监控系统的瘫痪不会影响到网络的正常运维。

2.2.2基于UDP的应用层流量控制技术
对于串联方式的控制系统,实现对UDP流量控制【zl】是比较容易的,但其
对网络的威胁也是比较大的,很容易造成网络的瓶颈,成为单点故障;如果采 取丢弃UDP报文实现流量控制,对于许多实时流媒体通信将是不能容忍的,这 方面的技术还待进一步研究。 对于旁路方式的控制系统,对UDP的控制一般采用旁路干扰的机制来实 现,目前还不成熟。

2.3网络流量监控技术
根据对网络流量的采集方式可将网络流量监控技术分为:基于SNMPp卫_zJ 的监控技术、基于Nettlow[6,23】的监控技术和基于网络流量全镜像(24】的监控技
术三种常用技术,下面分别介绍。

2.3.1基于SNMP的流量监控技术
SNMP的工作始于1988年,是由最初的简单网关监控协议SGMP发展而
来。基于SNMP的流量信息采集实质上是通过提取网络设备Agent提供的

MIB(管理对象信息库)中收集一些具体设备及流量信息有关的变量。基于
SNMP收集的网络流量信息包括:输入字节数、输入非广播包数、输入广播包 数、输入包丢弃数、输入包的错误数、输入未知协议包数等。但只能对网络的 重点链路和互联点进行简单的基于端1:3的流量监视和统计,更无法提供端到端

的准确的流量信息,因此对流向的统计手段不明确。

2.3.2基于Netflow的流量监控技术
NetFIow是Cisco公司提出的网络数据包交换技术,该技术首先被用于网

络设备对数据交换进行加速,并可同步实现对高速转发的IP数据流(Flow)进
行测量和统计。经过多年的技术演进,NetFIow原来用于数据交换加速的功能 已经逐步改由网络设备中的专用集成电路(ASIC)芯片实现。 Ne明OW流量信息采集是基于网络设备提供的NetflOW机制实现的网络流
.14.

兰州大学硕七学位论文

分布式网络流量监控系统的设计与买现

量信息采集,其优点是易于部署,部署成本较低,缺点是数据格式没有形成统

一的标准,而且数据检测的颗粒度较粗,数据的准确度较低,数据的内容难以 扩展,与之相对应的检测以及追溯功能也难以定制、扩展。

2.3.3基于网络流量全镜像的监测技术
网络流量全镜像采集是目前IDS主要采用的网络流量采集模式,其原理是 通过交换机等网络设备的端口镜像或者通过分光器、网络探针等附加设备,实 现网络流量的无损复制和镜像采集。和其他两种流量采集方式相比,流量镜像 采集的最大特点是能够提供丰富的应用层信息,这也是本论文选择网络流量全
镜像技术的一个重要依据。

网络流量全镜像的监测技术适合旁路式的网络监控系统。通过分析镜像流 量,探测网络流量分布、分析网络状态,为网络管理提供参考。

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

第3章分布式网络流量监控系统总体设计
3.1系统总体目标
想要对web2.0时代的网络进行检测、控制,像P2P应用(BT、
eDonkey[2s]、eMule[26J、Maze、PPlive、迅雷等),就必须对这些网络应用

进行有效地识别,然而,许多P2P应用使用了不同的通信技术和协议,使用传
统的技术来识别它们非常困难。许多P2P协议不使用固定的端口,而是动态地

使用端口,包括使用一些知名服务的端口。KaZaA[35]就是可以使用端口80 <通常是http/7web来使用)来通信的,从而穿透传统的基于IP和端口的防火 墙和包过滤器。所以,通过简单的基于IP和端口的分类技术(分析IP包头、 IP地址、端口号等)很难识别、跟踪或控制这类通信。过去有一段时间,有人

使用监测6881,,,6889端El来识别BT(BitTorrent),饵这种做法现在早已失

效一一盯已不再使用固定的6881,,,6889端口来通信,而是动态地使用随机
端口。随着P2P应用的不断增长,更多的通信协议被使用;识别和分类P2P的

技术必须快速、简单,以适应这种技术的变化。 因此,系统的目标就是根据网络当前的需求对传统的应用进行端口识别分 析的同时,也能根据需求对P2P应用进行识别、分析和控制,真正实现对网络
流量的实时监测及控制。

3.2系统分布式架构
分布式网络流量监控系统是在Iinux最新的内核版本2.6环境下设计、实

现的。系统利用网络流量全镜像的监测技术对网络的多个关键节点进行网络数
据采集。同时对所采集数据利用.f℃P/IP协议栈的分用机制对其进行分析处 理,对应用层协议,特别是P2P应用在会话重组的基础上进行深层次的分析处

理,并对最后分析数据以图的形式显示出来,以此来架构系统,实现对网络多 个关键出口流量的监控,系统架构如图3-1所示。 图3—1中,还给出了网管服务器NMS(Network
Management

Server)。NMS是管理员监控网络流量监控系统的入13,管理员通过NMS可
以对NTMCS进行操作(删除规则、修改规则、添加规则)控制。

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

图3一l网络流量监控系统NTMCS拓扑示意图 在网络流量监控系统中,NTMCS负责网络出口流量的全面的统计、识别及 分析,并通过深层次的数据包分析,对基于TCP的应用层协议进行控制。同

时,NTMCS还负责分析运营商网络内部的异常行为,如DDOS攻击、蠕虫病 毒攻击所造成的异常行为【27,28】。
NTMCS以旁路的方式部署在网络出口,如果该网络域有多个网络出口,需

要在该域内部署多台NTMCS。一台NTMCS至少需要两个网络接口,一个网
络的侦听端口,一个网络的管理端口。通过网络流量全镜像的方式将网络出口 流量导入NTMCS的网络侦听端口。图3—2中给出了在一个城域网中NTMCS 系统典型的分布式部署示意图。

图3-2 NTMCS系统在城域网中部署示意图

3.3

NTHCS系统功能设计

NTMCS系统采用旁路接入的方式,对网络流量进行统计、分析,对吞噬大 量的网络资源的应用,尤其是P2P应用,加以控制。 NTCMS系统对侦听端口的数据报文进行分析,本文主要针对以太网报文进

行分析、讨论,对于其他类型的网络摄文分析、统计,系统提供了良好的接口
供扩展。

同时,NTMCS系统目前对基于TCP的应用实现了控制的功能,对于UDP 协议应用的控制,系统提供了良好的接口供扩展。
NTMCS系统功能示意图如图3-3所示。

兰州大学硬士学位论文

分布式髓络流量监控系统的设计与实现

图3-3 NTMCS系统功能示意图

3.3.1网络流量监测模块设计



底层协议分用:由于OSI的7层协议模型,协议数据是从上到下封装后发 送的。对于协议分析需要从下至上进行。如对链路层、网络层的协议识别后进 行重组还原然后剥去协议头部,将里面的数据交给上层去分析,这样~直进行 下去直到传输层。即利用协议的包头信息对协议进行的基本的处理,是进行会 话重组的前提。 会话重组:七层的协议识别是以会话处理为基础的,所以要求会话处理引擎 必须能够实时、高效的处理TCP、UDP以及其他网络协议会话,保持会话记 录,识别垃圾会话(特别是在遭受网络攻击的情况下),为协议识别提供有效的 数据源,由于网络传输问题不可避免,数据包可能会经过不同的路由传输到目 的地,并且到达目的地的数据包可能顺序会发生改变,而且,在传输过程中, 协议对数据的传输进行控制,对在传输过程中丢失的数据包,系统将会重新传 送(TCP协议),会话在重组的时候必须能够处理错序、重传等问题,实现会话
的高效重组。

协议识别:协议识别引擎是系统的核心,HTTP、P2P等七层的协议识别都 是在协议识别引擎实现的,协议识别引擎不仅能够根据协议的特征与会话的重 组数据进行商效的匹配,丽且能够基于会话的数据交互特征以及访闯对象特征 进行细致的分析。 应用层协议分析[16】:在会话重组的基础上对应用层协议进行分析,对于一 些采用了专用端1:3(如80 port)来实现的P2P应用,是在协议识别基础上, 基于会话重组迸行深层识别、分析等。对应用层协议的分析,需要从以下四个
方面着手。

(一)基于会话进行协议识别 通过会话重组处理后,对网络中的每个会话进行采样识别。在系统中按照 一定的策略维护一张会话表,NTMCS可同时处理256木1024个会话,而识

兰州大学硕十学位论文

分布式网络流量监控系统的设计与实现

别每个会话仅仅需要处理会话的前几个数据包,一般不会超过16个数据包, 其后的数据包按照相应的控制策略进行相应的操作。由于P2P应用的连接数 多,数据传输量大的特点,对P2P连接进行有效的分析、处理,需要基于会
话的协议识别技术。

(二)基于端口、特征码进行协议识别 对于传统的应用,如Telnet、SSH、DNS等可以由端口简单的识别,但 P2P应用转向使用动态端口或知名端口(如80 Port)。对于这些应用,可 根据特征码进行识别、分析。 这些应用是根据RFC规范实现的,或者其实现协议是公开的,对于这类 的应用,我们可以分析、研究其实现协议,即可取其特征码。由于其识别是基 于会话进行,只要对会话的前几个数据包进行模式匹配即可。对于这种应用的 会话进行采样识别,一般不会超过8个数据报文,而且可以根据网络实际需求 进行动态的调整,具有很好的灵活性,也极大地提高了系统性能。 (三)基于应用层协议分析在会话基础上进行深层的协议识别 为了躲避检查,像P2P这样的应用开始转向使用随机端口和专用端口
(如HTTP 80端口)。对于这类型的应用,需要在应用层协议分析的基础

上,基于会话对其进行深层次的协议探测。 当BT客户端下载时,必须进行Tracker查询,1-racker通过HTTP的 GET命令的参数来接收信息,而响应给对方(下载者)的是Bencoded编码的

消息。在H丌P请求报文中,携带了B丁的特征值User-Agent: BitTorrent。因此。首先须识别HTFP协议,然后基于H丌P协议对此会话
进行进一步的探测识别。 针对该情况,可以根据特定的应用层数据包(如HTTP数据包),在会话的 基础上对其进行深层的分析(如根据BT关键字”BitTorrent”,从HTTP数据 包中识别BT应用)。
(四)对未知P2P协议的识别

为了尽量多的识别应用层协议,特别是P2P应用,需要对一些未知 p2p[29,30,31】应用进行探测。同时,也有一部分P2P应用走上了加密通信的道 路,这给网络管理带来了一定的挑战,为了识别这些流量,加以统计、分析, 本文实现了对这部分流量的近似统计。这种方法主要依据是P2P协议有别于 其他协议的一些最基本的特点,只需对数据包的头部信息进行检测,不需要检 测数据包的有效载荷,是一种简单、高效的识别方法。

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

(五)PASV FTP的识别

对已经识别的FTP应用进行分析,若客户端发出PASV命令,则提取
F丁P

21端口返回的应用层信息:被动F『P的数据传输端口,然后根据此端口

号对被动FTP传输进行端口匹配。

3.3.2网络流量控制模块设计
网络流量控制是对大量吞噬网络资源的应用(如Bittorrent等P2P应用的 行为)进行流量限速、会话阻断等操作,以保证网络资源的合理利用。 如图3-3所示,根据协议识别引擎的分析结果,对应用层协议(包括 H1_rP、FTP等传统应用及Bitl.orrent、PPIive等P2P应用)进行全面的识 别、分析后,通过分析、统计应用层协议的流量情况,根据流量控制策略,实 时对应用层协议的监控功能;对于网络异常流量、异常行为等由系统进行日志 记录,并向NMS报警。 本文TCP流量控制采用旁路控制技术进行设计。该机制由速率估计器、连 接标记器和阻断分组生成器三个功能部件组成,如图3—4所示。

图3-4 TCP流量旁路控制机制结构图

其中速率估计器的功能是根据收到的分组信息,并与历史信息相结合来估 计到达分组的平均速率。连接标记器则是根据速率估计器计算出来的速率,遵 循一定的策略给某些连接加以阻断标记来标志需要阻断的连接。当一个连接被 加以阻断标记后,则会根据阻断分组生成器来生成伪造的阻断分组,达到阻断 此连接的效果。

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

第4章分布式网络流量监控系统的详细设计与实现
分布式网络流量监控系统是在linux最新的内核版本2.6环境下基于GCC 编译环境实现的。 本章主要介绍了实现过程中所使用的开源工具包以及系统日志输出和流量 统计数据显示界面。系统对网络出口流量的统计数据以rrd文件存储,并定时 生成、更新png图片,这些png格式的图片可通过WEB页面浏览。

4.1系统的详细设计与实现
基于当前P2P网路状况及运营商的管理需求,本文将设计一种按需动态调 整、按需扩展的实时性较好的分布式网络流量监控系统。网络管理员即可以实 时地从系统终端通过提供的终端命令管理网络流量,也可以通过提供的API接 口实现从NMS端的流量管理。本节将讨论系统功能的详细设计。

4.1.1应用层协议动态策略配置文件设计
所有配置文件中,都以符号’孝’为注释符。

(一)监听接口配置文件设计: 参数名称
path

参数值 Ivar/www/NTMCS
ethO或ethi等

说明

系统统计的流量数据以rrd文件形式 及图片文件形式保存的绝对路径

interface

系统监听(Libpcap[321操作)接口

系统在初始化时要读取该文件,据此在相应的监听接口进行网络流量的统 计、分析,并将统计的数据以rrd文件和png文件的形式存放到指定路径
path。

(=)局域网内IP(V4或V6)地址配置文件设计:
#family 4 6


#network ip start 159.226.219.0 1:2:3:4::0 202.210.1.0

#network ip end 1S9.226。219。255

1:2:3:4:简:ffFF:仟阡:仟阡
202.210.1.255

为V6,就由数字6代之;network

ip

start和network

ip end指的是地址

的开始值与结束值,即为局域网内的IP地址范围。 着某个IP地址(如1:2:3:4:216:ecff:fel4:2ef)在1:2:3:4::0和
1:2:3:4:ffff:ffff:ffff:仟fF之间,就可知此Ip地址为局域网内IP。

系统在初始化时,读取该文件,并以LocalNetlpRange结构链表的形式

害!;;攀兰茎攀篁圣,

坌查苎塑竺堡塞竺丝重篁篁丝竺量耋里

存放到内存中,然后据此结构列表对网络出口的流量进行内外网流量的识别。。
LocalNetIpRange结构定义如下;

typedef struct uint8 t

locaf-net_ip_mnge{ family;/*AF_INET,or AF_INET6术/

union{ structf
struct in_.addr/p_start; struct in_.addr ip end;

_}|pv4一addr; structf
struct in6_addr ip_start; struct加6_addr ip_end;

)lpV6一addr; }ip_addr;

#define,p”tstart
#define

ip_addr.ip纠Laddr.ip_start
ip

ip饲Lend

addr.加矿taddr.ip_end

#define砸v6_start
#define|pv6_end umt32_t umt32 uhltS_t uint8 t

ip_addr.Ipv6一addr.ip_start ip_addr.|pv6_addr.ip_end

ip纠Lstart_hostorder;
ipv6_start_hostorder[16]; ip矿6-end_hostorder[16];

t帕ytend_hostorder;

struct local_力eLip_range木next;

}LocalNetIpRange; (--)传统的端口方法识别应用层协议配置文件设计
#protocol #port #tc_speed #Group_protocol

(kBytes/s)
FTP 聋TELNET SSH DHCP SMB 20 23 22 67 68 445 —1 —1 —1 —1 0 FILE L7 L7

其中,protocol是指应用层协议名;port是指将哪些端口的流量归结到该 协议;tc_speed是对该协议的流量控制指标(负值表示对该协议不进行流量限 制;零值表示完全阻止该协议;正值表示对该协议流量的限制,其最大值不超
.22.

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

过该正值);Group_protocol是对该应用层协议的分组标记名,用于对应用层 协议进行分组统计,是管理员想把protocol域对应的协议放到那个大的类中, 以便更新协议分组图,此域将和二次识别配置文件下的相同的域进行合并,以 便统计协议类流量。 系统初始化时要读取该文件信息。然后初始化PortStrProtocol结构链 表,并将该列表调入内存,对TCP会话和UDP数据传输进行基于端1:3的协议 识别。PortStrProtocol结构定义如下:
typedef struct port_str_protocol



cha厂string_protocol[MA汇PRO亿l-LEN];
u_short

port[WELL_POR丁S_SIZE]; pattern;/宰store compilned regular expression牛/

TrafficCounter counter; regex_t

GroupProtocol斗group_point;

曲8r

groupstrfng[MAX_GRO帔LEN];
info[MAX INFO_LEN];

u_char intidx;

int tc_speed; struct ip_conn ra抛tc_rate; struct port_str protocol车next;

,PortStrProtocol;
(四)识别应用层协议对应的特征码配置文件设计:
#protocol HTTP #string #tc_speed 一1 #Group——protocol

HTTP/(O\.911\.011\.1)kx 2011-5】【0—9】[0- 9】\X20。木(Connection:I C ontent-Type:IContent- Length:lDate:)lPOST、x2 o.*、)x20HrrP/【0l】\.[019 】

WEB

MSNl33]

“((CHGIUBXINLNIFLNjB YElHSGICAL).术@.水\..宰)l (QNG\x20..\xod\xoa)¥

-1

IM

PPlive

“[\x39Vx3d]\xOO\)(OO\x oo¥ “.BitTorrent\x20protocol “220.木[Ff](TPItp)

200

P2P

BirTorrent FTP

300 一1

P2P FILE

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

其中,protocol是指应用层协议名;string是指识别该协议的特征值;

tc_speed是对该协议的流量控制指标(负值表示对该协议不进行流量限制;零 值表示完全阻止该协议;正值表示对该协议流量的限制,其最大值不超过该正 值);Group_protocol是对该应用层协议的分组标记名,用于对应用层协议进
行分组统计。

系统初始化时要读取该文件信息,然后更新PortStrProtocoI结构链表, 并将该列表调入内存,对1℃P会话和UDP数据传输进行基于特征值的协议识
别。

(五)被动FTP识别及二次识别配置文件设计: 二次识别,根据其定义,它首先要匹配一个端口或者是特征码;被动FTP 的端口号是FTP信令数据包中的一部分,因此,首先需找到携带被动FTP信息 的信令数据包,然后提取相应的IP地址和被动端口号,接着根据提取到的信息 对后来新建连接进行识别,类似于二次识别,但却有本质区别:二次识别是对 同一应用的同一会话而言,被动FFP是对同一应用的两个不同会话而言,本文 将被动FTP和二次识别设计到了同一个配置文件,利用一个标记符(y或n)
即可进行区分。

被动FTP识别及二次识别配置文件如下:
#protocoI FTP PPlive #string #information y


“(\x32\X32\x37\x20)I(\×50\x4f_\xS2\x54) “\xe9kx03\x41tx01\x98kxab\x01tx02j事

才可标记此次会话为对应的协议,然后更新计数器。 被动FrP对应的结构定义如下:

struct

passive_ftp{
src; port;

unsigned|nt u_short

time_t

creationTime;
宰next;

struct ip_port pairs

}; 二次识别对应的结构定义如下: regexp_cmp_again{ string_protocol[MAX_PRO兀)_LEN];

typedef struct char

兰州大学硕士学位论文

分布式网络流量监控系统的设汁号实现

叻al-pattern[MAX_PA7TER^LLEN];
regex_t int u_char

pattern;/车store compilned regular expression V
/(ix;

info[MAX_INFO_LEN];
*proto_point; 49roup_point;

TrafficCounter TrafficCounter int struct ip tc speed; conn_rate

+tc rate; 搴next;

struct regexp_cmp_again

}RegexpCmpAgain; 如果端口配置文件、特征码配置文件和被动FTP识剐及二次识别配置文件 中有协议相同的,则要进行合并等处理。如多个端口、一个特征码,对应~个 协议,或对FTP进行被动FTP处理标记,或对PPlive进行二次识别标记等,
然后更新结构列表PortStrProtocol及二次识别结构链表
RegexpCmpAgain。

(六)PortStrProtocol结构列表、RegexpCmpAgain与被动F丁P键构 链表的关系 被动FTP结构链表是系统启动后建立的。系统提取FTP信令报文中的被动 端口等信息架构被动FTP结构链表。下面对P0rtStrProtocoI结构列表、 RegexpCmpAgain与被动FTP结构链表的关系加以说明,如图4—1所示。

始押
图4-1结构链表问的关系 (七)IPV6[34】协议识别配置文件设计:

#potnum
l 0

#protocol HTTPv6 I=TPv6

#string

#port 80

#tc_speed —1 -1

#groul:

WEBv6
FILE

“220\x20.宰(FTPIftp)

兰州大学硕七学位论文

分布式弼络流量箍控系统的设计与实现

名;string是指识别该协议的特征码,若没有。则留空;port是根据
port

num提供的端口号,应和port num吻合;tc_speed是对该协议的流

量控制指标(负值表示对该协议不迸行流量限制;零值表示完全阻止该协议: 正值表示对该协议流量的限制,其最大值不超过该正值);group是对该应用层 协议的分组标记名,用于对应用层协议进行分组统计。 基于IPV6的被动FTP结构体PAS、LFTPV6定义:
struct pasv

ftp_v6{
addr addr; port;

struct in6 unsigned int

time_t
int

timeout;
idx; *counter_pro; *counter_gro;

TrafficCounter TrafficCounter

struct pasv_ftp_v6"next;

>: 在系统初始化时,PASV_FTPV6的处理是根据IPV6协议识别配置文件中 是否有FTP要识别而实现的。即如果配置文件中要求对IPV6下的FTP进行识 别处理,则系统根据这一要求在初始化时就建立一个PASV—FTP结构链表,否 则系统将不处理PASV_FTP。 下面对动态策略配置文件的解析过程做简要说明。在读文件时,首先检查 文件的完整性,跳过注释行(以。孝。开始的行)、空行以及错误行,然后提取文 件各个域的信息更新PortStrProtocol、RegexpCmpAgain等结构链表。在插 入新的节点时是在已建链表的尾部进行操作。配置文件文件的读取顺序:端口 配置文件,特征码配置文件,二次识别配置文件,IPV6协议识别配置文件。

4.1.2网络流量检测模块
利用LibPcap实现对流经监听接口的网络包的采集,由图4-3可知,对采 集的数据需经分析处理,即进入packet analyzes模块,packet analyzes处 理过程如下:
1)

对采集的网络数据进行底层协议的分析;

兰州大学硕=}=学位论文

分布式网络流量监控系统的设计与实现

2)

根据源IP地址(SIP)、源端口号(SPORT)、目的IP地址

(DIP)、目的端1:3号(DPORT)和传输层协议(TCP或 UDP)五元组进行会话重组处理;
3) 4) 5)

根据会话状态对数据进行应用层协议的分析: 统计流量、更新流量计数器,对流量进行限速等控制操作: 最后对流量统计结果图形化存储、显示。

4.1.2.1旁路监听 分布式网络流量监控系统对网络出口流量的采集是利用了开源代码
Libpcap(Packet Capture

library),即数据包捕获函数库。Libpcap提供的

接口函数主要实现和封装了与数据包截获有关的过程,可用于需要采集经过网 络接El(只要经过该接口,目标地址不一定为本机)数据包的系统开发上。该 库由Berkeley大学Lawrence
0.9。 Berkeley National

Laboratory研究院的

Van.]acobson、Craig Leres和Steven

McCanne编写,目前的最新版本为

该函数库支持Linux、Solaris和*BSD系统平台。它是独立于系统的API 接口,为底层网络髓控提供了一个可移植的框架,可用于网络统计收集、安全监 控、网络调试等应用.很多Unix或Linux下的网络程序都需要libpcap才能够 运行。 下面对系统用到的Libpcap的主要库函数做一简要说明,见表4-1。 表4—1分布式流量监控系统调用Libpcap的主要接口函数一览表:
接口函数原形
Char +pcap Iookupdev

说明

用于返回可被pcap_open—live()i/拥的网络设备名指针。
如果函数出错,则返回NULL,同时errbuf中存放相关的错误
消息。

(char 4errbuf) pcapj
+pcap open_live

获得用于捕获网络数据包的数据包捕获描述字。device参数为 指定打开的网络设各名;snaplen参数定义捕获数据的最大字 节数;promisc指定是否将网络接口置于混杂模式;to_ms参 数指定超时时间(毫秒);ebuf参数则仅在 pcap_open—live()函l数出错返回NULL时用于传递错误消
息。

(char+device,
int snaplen, int promisc, int to_ms, char

4ebuf)

pcap_dumper_t ‘pcap_dump_open

打开用于保存捕获数据包的文件,用于写入。



(pcap._t
char

4P,

Dame参数为”一“时表示标准输出,出错时返回NULL=P参数

4fname); 为调用pcap_open_offlineO=Jr,pcap—open一¨ve()函数后返
回的pcap结构指针;Dame参数指定打开的文件名,如果返

回NuLL,则可调用pcap_geterr()函数获取错误消息。
pcap_t 。pcap_open~offline

打开以前保存捕获数据包的文件,用于读取。
fname参数指定打开的文件名(该文件中的数据格式与

(char‘fname.
char

tcpdump和tcpslice兼容),若Dame为”-”表示标准输入; ebuf参数则仅在pcap_open_offline()i函数出错返回NULL
时用于传递错误消息.

4ebuf)

int pcap_dispatch

捕获并处理数据包。

(pcap-t+P,
int‘cnt, pcap——handler callback,

cnt参数指定函数返回前所处理数据包的最大值,cnt=一1表示 在一个缓冲区中处理所有的数据包,cnt=O表示处理所有数据 包,直到产生以下错误:读取到EOF或超时读取;
callback参数指定一个带有三个参数的回调函数,这三个参数

u_char‘user)

为:一个从pcap_dispatch()函数传递过来的u_char指针, 一个pcap_pkthdr结构的指针,和一个数据包大小的u_char
指针; 如果函数调用成功,则返回读取到的字节数,读取到EOF时则

返回零值。出错时则返回一1,此时可调用pcap_perrorO或 pcap_geterr()i函数获取错误消息。
int

功能基本与pcap_dispatchO函数相同,只不过此函数在cnt 个数据包被处理完或出现错误时才返回,但读取超时不会返

pcap_loop

回。

(pcapj
int cnt,

4P,

而如果为pcap_open_liveO函数设置了超时值,然后调用 pcap_dispatch()i蟊数,则当超时发生时pcap_dispatchO函
数会返回。

pcap_handler callback,

cnt参数为负值(一般为-1)时pcap Ioop()函数将始终循环
运行,除非出现错误。

u_char。user)

系统启动时,首先要初始化与网络接口相关的参数。如初始化监听接口属 于什么类型,是FDDI还是Ethernet等(如表4—2所示,该分布式网络流量 监控系统是以EthernetlOHb及以上类型接口为侦听接口);以及初始化文件 保存路径等信息。接着启动packet_sniffer进程调用LibPcap库的
?28?

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

pcap—loop()函数对该接I:1网络数据进行采集。 数据采集流程如图4-3所示,数据分析处理(packet analyses)部分的
输入是通过LibPcap库采集到的数据包。


表4—2系统定义的网络接口类型
定义的常量名
DLT NULL 值
0 l 2 3 4 5 6 7 8 9 10

国图 围 /l——■—■————■—●—■■●■●
如匕变窭互]
图4-3网络数据的采集示意图 说明
no link-layer encapsulation

DLT._ENl0MB DLT_EN3MB
DLT_AX25

Ethernet(10Mb,also
Experimental

for 100Mb and

up)

Ethernet(3Mb)

Amateur Radio AX.25 Proteon ProNET Token Ring C:haos IEEE 802 Networks ARCNE『r Serial LIne IP Point-to-point Protocol FDDI

DLT_PRON ET
DLT_CHAOS

DLLIEEE802
DLT_ARCNET
DLT._SLIP DLT PPP

D££FDDI

4.1.2.2底层协议处理 从链路层到传输层的协议处理,本文采用了基于连接的处理方式,如图4—
4所示。

(1)采集网络数据,进入链路层分析,继而进入IP层分析,判断源IP是 否为局域网内IP地址,算法描述见表4-3,接着传输层,根据报文源IP、目的 IP、源port、目的port、TCP或UDP五元组判断此报文所属会话; (2)若此会话不存在,则根据五元组建立一个新的连接,然后进行传输
.29.

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

层的处理分析;

(3)若此会话已存在,并且此会话所属协议已识别,则进入流量控制和
流量统计模块;

(4)若此会话己存在,但此会话所属协议未被识别,则进行七层协议的
处理分析。

图4-4底层协议处理流程 表4—3判断SIP为局域网内地址算法 ip_rang_cmp(int family,const void*addr){ switch(family){
case

/nt

AF_lNET:

根据局域嘲的l脚4地址范莓翔断addr是否为两内地址;
ifaddr为两内地址return
else
case AF

i;

return-1;

IN曰r6:

根据局域嘲的l脚6毡址范围翔颧addr是否为网内地址:
ifaddr为网内她垃return
else default:
return o:

1;

return-1;

, , 4.1.2.3会话重组 该模块对应一个会话哈希链表,节点结构session定义如表4—4所示。对于 所有的正常的TCP通信,系统将根据SIP、SPORT、DIP、DPORT、TCP/‘UDP 五元组与哈希链表中查找或建立相应的会话记录。对TCP会话的重组过程实际
?30?

兰州大学硕士学位论文

分布式两络流量监控系统的设计与实现

上就是对链表的插入和删除的过程。针对每一次TCP会话建立一个TCP

session,以后每当捕获一个数据包则检查该数据包所属的TCP会话是否已经 在链表中,如果存在,找到相应的TCP会话过程,根据序列号将其插入到适当 的位置。如果所属的TCP会话不在链表中,则新建立一个TCP session,插入到 哈希链表的相应位置。在此过程中,如果一个数据包与链表中某一个数据包的 序列号和数据长度相同的话,则说明是重发包,做丢弃处理。最后链表的每一 个数据包序列号连续,且第一个数据包为SYN包,最后一个数据包为FIN包 (或是连接复位包RST),此时认为报文是完整的。
表4-4 session结构定义:

struct

session{ mac_src[6]; mac_dstl6】;

unsigned char unsigned char

uint32_t ip_src; uint32一t ta_dst; Uintl6一t S00rt; uintl 6_t dport;

time_t ujnt

lastseen;

proto;

Tra币cC0unter*point;
TrafficCounter*group_point;

址一c厅a厂upda缝一flags[MAX_INFO_LEN];
struct ip_conn_rate宰tc_rate; int tc_speed; u—Char f|ags;

/★init with?1’7

址曲a厂session_state;
U.char tcp_stare; int protocol_info; unsigned int*port_/ist; u_char virus_suspected

/’for flags;/卑O:it
雒a

virus ports 4l is


virusl

or

not;1:|t iS

suspected virus|卑f

uh7跹t cmpSum;
tcp_node tcplisthead: struct session木next;

/鼍TCP分组链表头书点鲁f

);

兰州大学硕士学位论文 struct

分布式网络流量监控系统的设计与实现

tCp_node{

intsyn; intf}n: uint32_t seq; intlen; struct tcp_node*prey; struct tcp.node*next;

uin妞t data[MAXETHERLEN];

. ‘

) 4.1.2.4应用层协议分析 对应用层协议的分析,本文研究了基于端口和应用层协议特征码【8,9—10】识

别的一次匹配技术、二次匹配技术,讨论了被动FT眦111(PASV_FTP)的识
别技术和未知P2P识别技术。图4—5说明了一次匹配、二次匹配、 PASVj可P及未知P2P识别的层次关系。

图4-5一次匹配、二次匹配、PASV_FTP及未知P2P识别的层次关系图 所有应用层协议的识别都是基于会话session基础之上的,并且对每个会 话session的识别处理不会超过8个报文。对未知P2P协议的识别可根据P2P 行为的4个基本特征实现(参见2.3.4),并且这4个特征要同时成立。 下面主要针对一次匹配、二次匹配、PASV_FTP匹配【35,36,37,38,39,40】的实 现加以描述。 一次匹配、二次匹配、PASv_FTP匹配算法如下: 说明部分: 一次匹配对应port_str__proto绩构链表 二次匹配对应RegexpCmpAgain结构链表 PASV—FTP对应P艇N—FTP维构链表 会话霹酿session结构
Input:the captured packet and its session Initialized:


一次匹配:

壁垒生苎丝卫丝塑:≥盟鱼f姐三塑2

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

f4 取值:n或Y.其中n:一次匹配.y:--次匹§≯l port_str_proto一>info?111-’y’; f卑 取值:n或’1f.其中n:不更新应甬层协议流量计数器. Y:更新应用县协议流量计数器≮} port_str_proto->info[2]=o; /卑 次匹配。y:get lnfo from FTP packet卑/
=次匹配:

取值:0、n或Y.其中0;只进行~次匹配.n:斯--
其中.n表示二次匹配,Y表示get
lnfo from

RegexpCmpAgain一>|nfolo】-fnl或者yt;
f寓
FTP packet肆{

户饵Sl,二FTP:

/车insert
session:

passive FTP info to

PAS止FTP V

session一>u口aate-f|ags【01初始化为0 session->uoaatej|ags【11初始化为0 /聿

session一>update_fiags[2]删0
get Passive ftp return:

session?>update_flags一一霹应于port_str_proto一>info卑}

if(session->updatejlags【0】==,y9/★二次匹配或get FTP|nfo卑/_【 if(session一>update_flags[2]==,y9/卑get FTP info卑7{
tnfo(ip、port)and insert沌to PAS、,.J吖P;


else

if(session一>update—nags[2]=='n9/*二次匹琶萨K
遍历二次殛配RegeXpCmpA9aln链表; if(Layer 7 info ofpacket==info stored in RegexpCmpAgain)?毒二次匹配残写铲}弋 session->update_flags【01=In’; session->update_flags[1]=IyI;
return:

) , }else/|卑一次匹配啤/t


/*cmp_sum_pkt:the num packets matched of session is less

the set(SET VALUE)4f if(session一>cmp_sum_pkt<SET_VALUE){ 遍历port str_proto结构链表; if(the port of the packet==port_str__proto一>port【.】){
then

{聿端口匹酎{

mark the session with Layer 7 protocol,

苎箜蔓!塑二兰业塑坠丝鲣坦2三卫垒生苎延臣塑鲤:三尘鱼2盟:


.33.

兰州大学硕士学位论文

分布式网络流量监控系统的没计与实现

session一>update_flags[I]=port_str_proto->info[11; session一>update—flags[2]=port_str_proto->info【2】;
return:

’ if(the加厂D of the }卑特征码匹配4f

packet==port_str

proto一>taro){

,”ark the session with Layer 7 protocols

session一>update—flags[O]=port_str_proto->infof01; session->update_flags[11=port_str_proto->info[11;
returnt

session->upda缱flags[2]=port_str_proto->info[2];

session‘>cmp_sum_pkt++;

) , ≯p怂N—FTP匹毳≯f if(session is not marked

with Layer 7

protoc01){

1遍历二次匹配RegexpCmpAgain链表;

if(RegexpCmpAgain->info==Iy9/*get passive FTP inf04/{ 弹(Layer 7 info of packet==lnfo stored 殛RegexpCmpAgain)≯二次匹配或功盘f{ get info of Passive FTP and insert it to pA昏{—FTP;
return;

, ) if(PASv—FTP
is not

NULL)/*P氏Sv—F1P匹;《p}t

遍历pAS也FTp链表;
if(ip,n厂D ofpacket==PAS眨FTP一>和 &&port info ofpacket==户饵S-LFTP一>port) }_匹配戒写铲K

session一>upda缱nags[O]=钾?
session->update_flags[I]=y;

mark the session with Layer 7 protocol; free the ip and port pair加尹渔S0二FTP list; 印豳把PAS也玎P list with time;
return:

, ) ) Output,the
session marked with

Layer

7 protocol

or

not

该算法的三个结构链表理论上可满足当前对协议分析的要求,具有很好的 可扩展性。
.34.

兰塑奎兰塑三兰堡丝塞

坌童塞塑垒鎏兰兰塞量竺墼至兰皇童塑

一次匹配、二次匹配、PASV盯P的实现流程如图4.6所示。会话
session的标记是由其中的update flags[MAX_INFO_LEN]描述_。

图4-6应用层协议的识别处理流程图 对于新建的session或没有标记的session,其protocol一.info的值为 0。对于tcp或udp的session,在进入相应的处理函数后,首先判定其 protocoLinfo的值是否为非0,对于没有标记的session,进入端口匹配和特 征字串匹配流程,在匹配返回后,根据protocol—info的值进行更新计数器。 对于每个session,它是一个session结构,其中的一个元属是 TrafficCounter木point,这个指针在匹配过程中被更新,若匹配,则被指向 Pc)rtStrProtocoI类型的单向链表中相应节点的TrafficCounter counter元
属。

4.1.3网络流量控制模块
本文TCP流量控制的实现是采用旁路控制机制,该机制由速率估计器、连 接标记器和阻断分组生成器三个功能部件组成,如图3-4所示。 基于该阻断机制,本文实现了一个基于应用层协议分析的丁CP流量控制系 统,并通过大量实验和理论分析,确定了速率估计器的时间窗口的合适取值 [19,41】;同时提出了一种有效的阻断连接的标记算法;此外本文讨论了构造有效
阻断分组的方法。
4.1.3.1

TcP速率估计器

兰州丈学项+学位论文

分布式网络流量监控系统的蹬汁与实现

速率估计器是本文提出的阻断机制实现的必要前提。该机制在进行包发送速 率计算时,借鉴了TSW(Time Sliding Window)速率估计器的速率计算思 想,在一个时间窗口内估计业务流的平均到达速率f19,35,36,41,42]。本文通过对不

同时间窗口进行了效果对比测试,并对其偏差进行了分析,确定了一个合适的
时间窗口大小O.3。 TSW速率估计器算法如下:

Bytes_in_TSW=Avg_rate木Win_length New_bytes=Bytes_in_TSW+pkt_size,
Avg

rate=New_bytes/(now—T_front+Win_length),

T_front=now;

算法中,now是当前包到达的时刻,pkt_size是到达的包的大小, Win_length是时间窗13。Avg_rate即估计的速率。理想状态下,此速率估计 器所估计的速率,应该能和同样的时间窗口的吞吐量保持一致。

时间窗口TSW的大小反映了对过去历史业务流的记忆程度。下面是在不同
的时间窗口下,进行了TCP阻断的对比效果,并确定了TSW的值。 首先,同等的理想环境下,设定相同的预设阈值lOOK,观测不同时间窗口

下实际吞吐量的变化趋势。阻断效果如图4-8所示:
图4—7是在多种时间窗口下(0.003,0.03,0.1,0.3,1,5,10, 50),测试对TCP的阻断效果,其中横坐标表示不同的时间窗口,其单位为秒 (s)。纵坐标表示在相应的时间窗口下,得到的实际吞吐量值,单位为 Kbytes/s。由图4—8可见,时间窗口偏小或偏大时,限制效果和预设阈值相差 较大。在W=0.3或W=1时,实际吞吐量值则可限制在IOOK左右,和所设 定的预设阈值100K相吻合。

T■H■自HI^¨

图4-7不同时间窗口下的阻断效果趋势图 如果时问窗口比较小,表示将要记忆相对较短的历史业务流,这种情况下

到达数据包彼此之间的速率依赖性小,较为独立,与某段时间内的平均吞吐量
.36.

兰州丈学硕士学位论文

分布式网络流量监控系统的设计与实现

相比出入较大,易造成连接的过度阻断,带宽限制不准确;如果时间窗口比较 大,表示将要记忆相对较长的历史业务流,这时计算出来的数据包的速率不能 反映业务流的即时动态特性,而过多的依赖前一段时间历史吞吐量,根据这样 的速率进行连接阻断,易造成连接的阻断力度不够,同样达不到理想的带宽限 制效果。因此,选择一个合适的时间窗口是速率估计器的核心所在。 然后根据图4-7中时间窗口的交化趋势,选择典型时间窗口O.003,0.3,
1,

并在多种预设阈值下,对阻断效果进行了进一步的对比测试,其效果对比 图4—8是在6种预设阈值下(50K,100K,150K,200K,250K,

如图4—8所示:

300K),时间窗口在0.003,0.3,1时的实际吞吐量的对比图,其中横坐标表 示上述6种预设阈值,纵坐标表示实际吞吐量,两者均以Kbytes/s为单位。 图中的W代表时间窗口,其单位为秒(s)。图中的四条线分别表示采用不同时 间窗口时实际吞吐量和预设阈值之间的相符程度,其中BEsT情况为基准曲 线,为实际吞吐量和预设阈值一致的情况,用来判断其他曲线代表的控制效 果。由图可见,在这三个值中,W=0.3时,控制效果最接近理想值。

{隆
图4—8不同预设阈值下的吞吐星比较 为了选取最合适的时间窗口,我们对图4-8中各个时间窗口下的实际值与 预设限定值的偏差(deviation)进行分析,偏差值记为dev。 本文对偏差定义如下;是指在不同的预设阙值时进行测试,实际吞吐量值 和预设阙值的差的绝对值,和预设阙值鲍比值,郢

dev=(∑ITraffic.一Commitl,Commit)IⅣ,其中,\『表示样本个数,


Traffic。表示第,个样本的实际流量,Comm朦示预设阙值。
按上述定义,偏差值clev的范围为【0,1】。当实际值等于理想值时,偏差 为0;最大偏差为1。本文选择时间窗口的标准就是使偏差dev尽量小,尽量接
近0值。

图4—9是对图4-8中的各种情况进行了偏差分析。横坐标仍表示上述6种预 设阙值,纵坐标表示实际值与预设限定值的偏差。可见,当W=O.3时,偏差最

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

接近于O,故本系统选择0.3作为时问窗口的大小。

图4-9不同时间窗口下的偏差分析
4.1.3.2

TCP连接标记器 连接标记器的基本思想是:当一个分组到达时,根据速率估计器可计算出分


组所属协议的速率,然后由标记器分析速率是否超过速率上限,如果超过则根 据某种算法对该包所属的连接加以阻断标记,以便阻断该连接。通过比较分 析,本文采用了~种密度相关的概率阻断算法,改进了现有阻断算法的不足, 使效果更加接近理想值。 现有的大部分系统均采用直接阻断算法。该算法的基本思想如下,根据速 率估计器计算出的业务流速率,进行判断:如果大予业务流的预设阙值,则直 接对该连接加以阻断标记。 算法描述如下:
speed_committed:committed information rate of avg_rate:rate of arrival packet estimated by If(avg_rate>=speed_committed)




tra疗7:c flow,

rate estimatorj

功e session
Else 丁方e session

is marked with blocking flag,

can

be passed without being marked。

该算法的缺点在于;采用此算法在某个连续时刻会阻断多个连接,这样必然会 造成了速率的大幄下降,同时引起流量的分布不均衡,降低了带宽利用率。 为了改进这~算法缺陷,提高带宽的利用率,使连接的阻断更加离散化,本 文提出了密度相关的概率阻断算法,避免了在一个时间区域内阻断多个连接, 均衡了流量分布,提高了带宽利用率。 密度相关的概率阻断算法【43】的基本思想是:在业务流的给定阈值之上,设 置一个允许出现的峰值,当分组经过速率估计器后得到的业务流速率超出峰 值,则对该分组所在的连接直接加以阻断标记,而当速率在给定阈值和峰值之 间时,根据全局阻断概率给连接加以阻断标记即可。

兰州大学硬士学位论文

分布式网络流量监控系统的设计与实现

该算法描述如下:

speed_max:committed peak rate of



tra所C

flow?

speed_min:committed information rate of a tra开ic flow:
avg_rate:rate of arrival packet estimated by P:global probability,


rate estimatori

if(avg_rate>=speed_max)
The session is marked with blocking flag, else If(avq rate>=speed min)

with P,the session is marked with blocking flag if(the session is marked)P decrease else P increase slowly by degrees, else

multiplicatively,

The

session

can

be passed without being marked。

其中P为全局阻断概率,和速率无关,只是根据连接的阻断密度变化。本算 法中,当业务流速率在speed min和speed_max之间时,连接以全局概率 P被标以阻断标记。当连接被成功加以阻断标记后,以后的阻断概率P会以指 数形式快速降低,从而降低大量连接被同时阻断的概率;丽当连接没有被阻断 时,阻断概率P缓慢增长,增加以后的连接被阻断的概率。 这种标记算法的主要目的是减少持续阻断多个连接的可能,并将会聚的持续 的连接阻断改变为间隔的非持续性阻断,从而达到了在一个时间窗口平滑流量 突发状况,提高带宽利用率的目的。
4.1.3.3

TCp阻断分组生成器 如图3—4所示,对需要进行流量控制的应用层协议,首先由速率估计器对

其进行速率计算,然后根据协议限速阈值由连接标记器对该连接进行标记,最 后通过阻断分组生成器调用Ubnet库构造发往局域网内的TCP RST分组来阻 断该TCP连接。阻断分组生成器根据捕获包的内容、流向和TCP的特性,计算 伪造包的有效序列号,发送同向或反向阻断报文,中断TCP连接,从而有效地 控制了应用层协议的流量。 限速策略:在配置文件中可以设置各种协议的速率限定值。当速率限定值 为一l时表示不需要对该协议限速。当速率限定值大于O或等于O时,就需要进 行限速。如果速率限定值等于0,代表完全阻断,这时就不需要计算协议速率 了,直接发送RST分组。当速率限定值大于0时,则根据计算的协议的当前速 率,和协议速率限定值进行比较,来决定是否需要进行阻断操作。当需要进行
.39.

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

阻断时,由连接标记器对该连接进行标记,同时由阻断分组生成器发阻断包,
直至该连接被阻断。.

发阻断包时,采用的向局域网内部机器发包,这就需要根据捕获包的流 向,构造同向或反向阻断包。如图4-10所示的阻断系统发RST包情况:黑线 表示数据传输;红线表示监听,绿线表示阻断包发送。

图4?10阻断分组生成器发包情况 与现有测试环境较合适,以后还会根据网络环境的改变来调整发包策略。 向外网发包难以控制,很多防火墙都设置了过滤RST包,这样就会导致阻 断包发送失败,若发送大量的RST包会影响网络性能。 外网环境比较复杂,难以知道什么情况下向外网发包才合适。所以,从效 果上来说,向内网发RS丁包已经完全可以实现阻断。

4.2系统环境及开源工具包
功能 开发及运行环境 报文捕获 画图 控制管理(构造TcP报 文) Libpcap库 rrd库,包括在NTMCS系统中

具体环境及工具包
GCC-4.0.0、Linux一2.6及以上内核板本

gd库,libpng库,zlib库
Libnet库 Apache组件

WEB服务

下面就GCC、rrd库、Gd库、libpng库、zlib库、libnet库和Apache 组件作一介绍,libpcap库在旁路监听模块设计章节已经提及(参见
3.4.3.1)。 4.2.1

GCC编译器

NTMCS系统是在gcc环境下采用C语言实现完成的。下面对gcc做一简
要介绍。

Linux系统下的gcc(GNU



Compiler)是GNU推出的功能强大、性能

优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上 编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

高20%一30%。 gcc编译器能将C、C++语言源程序、汇编程序和目标程序编译、连接成 可执行文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属 性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类
别。

gcc的执行过程。虽然我们称gcc是C语言的编译器,但使用gcc由C语 言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相 互关联的步骤:预处理(也称预编译,Preprocessing)、编译(Compilation)、 汇编(Assembly)和连接(Linking)。如图4-11所示






.o目标文件
a.o‘It

.c琢程序

.I预处理后的C程序

._虻箱程序

图4-11 GCC执行过程流程 命令gcc首先调用C或cpp进行预处理,在预处理过程中,对源代码文件 中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调 用ccl进行编译,这个阶段根据输入文件生成以.O为后缀的目标文件。汇编过 程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语 言源代码文件和汇编、.S.为后缀的汇编语言文件经过预编译和汇编之后都生成 以.O为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用Id来完成 最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排 在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在 的档案库中连到合适的地方。
4.2.2

RRD库
robin database,是产生time—series(时间连续)

RRD库,即round

的图文件(如流量,负载,温度,人数…..)的工具。它的log文件可以自己设定,且 大小不变,时间轴灵活,可以每分钟采集一次。通过设置rrd文件,可以查看 任意段时间的值。可以对取得的值进行多种数学运算然后表现在图上。可以表 现多种资料,并可把画出的多个图叠加到一个图上,利于比较查看。图4—12是 用RRD检测系统memory的示例:

图4—12(a)以小时为单位的memory变化情况

图4-12(b)以天为单位的memory变化情况
综上所述,通过设定,可用RRD画出任意时间段的值,且可以画出多种资 料的值。还可以做多种运算,比较灵活,满足系统画图的需求。
4.2.3

Gd库、LibPng库和Zlib库

Gd图形库用于生成PNG,JPEG图像,不支持GIF格式,因为PNG,
.1PEG的使用可以不受限制(无专利),使用更广泛,压缩效果也更好。Gd图形 库允许程序员利用点、线、弧和文本迅速生成自己的图像,支持多种颜色,也 支持从其他图像中“摘取“部分图像元素,并且将生成的图像保存为PNG格式或 JPEG格式。这在WEB上显示定制的图像是特别有用的,而且,PNG和]PEG 已经成为了IE和Communicator两种浏览器默认支持的图像格式。 Gd是专为程序员设计的工具,它通过程序生成图像代码,而不是提供了一 般用户另一种处理图像的工具。它需要Libpng和zlib开源软件的支持。

Libpng是官方的PNG参考库,提供最底层的函数调用,支持所有的PNG
特征,全部采取标准C设计,需要配合zlib库工作。引入Libpng库的目的就

是为了提高程序写PNG文件的效率,Libpng使用zlib实现PNG的压缩和解
压缩,其最终目的是为了促进PNG文件格式的推广和使用。 zlib被设计用来作为免费、通用的无损数据压缩,可以在认识软件、硬件 环境下使用,具有良好的跨平台性能。与UNIX下的compass及GIF文件中

使用的LZW算法不同,在本质上从不会使压缩后的数据膨胀(即压缩后文件大 小反而增加了)。zlib压缩算法库提供了内存操作完成压缩和解压缩功能,包括
-42-

兰州大学硕士学位论文

分布式两络流量监控系统的设计与实现

解压缩后数据的完整性校验。压缩可以一次完成(有足够大的Bur fer)或分几 次完成(多次调用压缩函数,每次调用后将上一次压缩的结果输出到外设)。 zlib采用所谓的“deflate”压缩算法,实际上是将hal 合二为一,以实现更好的压缩比和提高压缩速度。 本文使用c语言编程,为了生成PNG图片需要第三方库,即Gd库。Gd 库生成png图片文件需要Libpng库配合,而Libpng库压缩生成的PNG图像 文件又需要zlib库配合。
4.2.4 f

man算法和LZ77算法

Libnet库

Libnet库函数提供基于tcp/ip协议族模型的一系列接13,实现和封装了数 据包的构造和发送过程。利用Ubnet提供的接13函数可以构造从应用层到链路 层的各层协议的数据包头,并将这些包头与有效数据有序地组合在一起发送出 去。NTMCS系统通过Iibnet库函数构造发向局域网内部的TCP RST报文实
现对TCP流量的控制。

兰州大学硕士学位论文

分布式羁络流量监控系统的设计与实现

第5章系统测试与性能分析
本章描述了对系统的测试,测试环境为中科院声学所高性能网络实验室网 络。测试内容包括系统日志记录测试,网络流量监控统计数据图形化处理测 试、系统安全接口APl及终端命令管理测试,并对系统的性能加以分析。

5.1系统日志信息记录



NTMCS系统在启动过程及其运行过程中都会有重要信息,这些信息或以终 端显示,或以文件日志形式保存。终端信息一般为系统当前运行状态说明或系 统错误信息,文件日志信息一般记录与网络行为等相关的信息,以便分析网络 之用。其信息记录如下:
终 端 显 示 信 息

严系统启动时信息+/
Welcome to NTMCS.IOA
By 10A NetwDrk Team 2006.06

NTMCS-S姗一MGMT.NTMCS RUNSTA俚:PREINIT(n N1MCS一蹦lT:Used N皿vICS.S姗一MGMT:NTMCS RUNST舡E:RUN“) NTMCS一硼m也AD.MGMT.PCAP
RUNSTATE:INIT(2) Dcvice:『eth0 1
Packet Sniffer
On

NTMCS—STm.MGMTt NTMCS

Thread(t30854952161 for

Network

eth0 Idle Hosts

NTMCS.THREAD.MGMrr:MleScan Thread(t30645155041 for
&Session Detection

NTMCS.INIT-Welcome to
Collecfion

the RRD

NTMCS.THREAD.MGMT.RRD
Collection

Tllread(t3054025648)for

Data

NrMCS.THREAD.MGMT.RRD Thread∞043535792)for NTMCS.INIT:StartTime:<April
10 13:48:57>

1砌c

,.系统运行状态信息?,
,.系统终止时信息‘/

一NTMCS

is about to be

NTMCS.TERM:NTMCS Catch Signal NTMCS.STATE-MGMT.NTMCS

NTMCS—PCAP.S1’ATS:55.1 packets received by filter on eth0 NTMCS.PCAP-STATS:1 10 packets dropped(according to libpcap)

terminated= RUNS咖:S}Ⅱ『TDOWN(7) 16,004
2 collection

NTMCS.TERM:Sniffer

iS Shutdown thread stopping

THREADMGMT[t3054025648]:RRD:Data 『pl 826]State>RUN NTMCS.TERM:IdleScan iS Shutdown

兰州大学硕士学位论文

分布式两络流量监控系统的.设计与实现

NTMCS-TERM:RRD is shutting down... NTMCS-TERM:RRD is Shutdown,Thanks RRD! NTMCS?-STATE-?MGMT:NTMCS RUNSTATE:TERM(S)

NTMCS—TERM:Shutdown Tune:<April
日 志 信 息
April.1l-18:32:38ICⅣ皿pingingattack Apm.1I-18:4l:54IC~tP piagingattack
April.12.14:35:17 tep syn April-12.14:35:20tep syn ADril.12。15:08:09
scan

12 19:52:28>

66.130.40.66一->124.16.130。3

66.130.40.66一>124.16.130-36 124.6.145.60一->124.16.130.129
124.6.145.60-->124.16.130.10 217.199.185.43~>124.16.130.39 222.218.124.234-->124.16.130.56

sc肌 slammerWAR

Apnl.12.15:08:11 IC~伊pinging attack April.12.15:08:14 slammerSUS

124.163.184.82?->124.16.130.37

S.2流量监控统计信息图形化处理
在NTMCS系统中,为了向用户提供比较好的流量统计信息显示方法,系统 通过rrd库、gd库、libpng库和zlib库等,将流量统计数据以.rrd形式存储,并 据此生成、更新pngm片,然后通过..Apache服务,管理员可通过WEB页面浏览
流量统计信息。

以下是测试的应用层协议及其分组情况。
(1)一次匹配配置文件信息:

a)、F丁P,端口号20与(控制信令的)特征码,分组:TCP;

b)、N盯B10S,137、138和139端口,未分组;
c)、SMB,445端口,分组:TcP; d)、SSH,22端口,分组:1℃P. e)、HTTP,特征码,分组:TCP; f)、MSN,特征码,分组:IH; g)、BItTOrrent,特征码,分组:P2P; h)、PPlive,第一特征码,分组:P2P。 (2)二次识尉及PASV—FTP对应置文件信息: a)、FTP,(识别携带IP地址和被动端口号信息数据包的)特征码,标记:
Y,分组:TCP;

b)、PPlive,第二特征码,标记:n,分组:P2P。 通过web浏览器可以看到如图5?1所示的网络流量在-d,时内的分析统计结 果。其中, 协t20ther=¥统捕获的IP流量一FTP流量一NETBIOS流量-SMB流量一SSH
流量一HTTP流量一MSN流量 -BitTorrent流量-PPlive流量;

分组OTHER=系统捕获的IP流量-TCP分组流量-IM分组流量一P2P分组流

兰些奎兰堡圭兰堡鎏耋
量。

坌塞兰窒丝堡塞坚丝重篁塑堡兰耋壅蝥

图5—1(a)协议识别统计结果

图5?l(b)协议分组统计结果

5.3安全接口API与终端命令
=:

堕塑:壅量递塑

pfof protocol,insert、modify or delete4}
struct protocol_se(-msg{ char*vl;

char术佗j
char蠢v3;
char木y47

7聿H—p“,"-h“卑7 /*protocol name搴/ /|卑"-portH H-pattern”r“-delH聿7 /*port value,pattern Value木/


char卑vs; char卑v6;

7卑”-group“,‘一delH卑7 /*group value聿f

}卑for

protocol speed setting社}
.46.

蔓£型垡旦塑鱼嫂上至应曼里生盟盟i

一——

兰州丈学硕:上学位论文

分布式网络流量监控系统的设计与实现

char+flags;

/木’'-setspeed”奉/ char*protocol_name;/*protocol name4f /*speed value肆}

int tc_speed;

/4for getting protocol jnf047
struct

return~protocol—mfo( s_name[16]; char s_group_name[1 6]; int i_port[s]; 曲ar s_pattern[8292]; int l-speed;
char

/|卑protocol name聿/ /*group name鼍f /髯port value鼻f ≯string pattern锋f /*protocol speed肆}

),

二、

接口API

下面给出了部分API接口的说明及应用举例。 (1). 木strmsg); 返回值为字符串类型,表示对协议处理的结果说明,或者是错误处理;参 数num为用到的struct protocol_set_msg中的成员个数;参数strmsg说
明见struct protocol_set_msg的定义。
char木

setpmtocol(int

num,struct

protocol

set—msg

(2).struct return_protocoLinfo木getprotocol(char木msg); 返回值为struct return_protocol_info指针,可通过下标引用,如

return—protocol—infoEi].Lname,可处理512种协议(分组);参数msg
是字符串类型,是用户提供的getprotocol函数的参数,取值分别为:”一 getprotoco”,表示获取所有被识别协议,取值为:”一getoroup”,表示获取所 有识别协议的分组列表;同时参数msg也用来返回函数执行状态(成功与
否)。

(3).API应用举例
拳indude<stdio.一> 带indude<string.打> 嚣include l'ntopapLh“ int

main-0f
char
4a:

/*set protclcol D,,CP术术术术木事卓术术术s臼rf专/ struct protocol—set—msg术strl; strl=(struct protocol_seLmsg

—malloc(sizeof(struct

色盟塑£Q上兰皇上盟苎金丛:
.47.

兰州大学硕士学位论文

分布式两络流量监控系统的设计与实现

if(strl==NULL){ printf(I'ERR\n”); ) memset(strl,0,sizeof(struct protocol_seLmsg));
strl->vl=“-pH; strl->v2=“dhcp“;

strl->v3=“?poft'? strl->v4="67'?
strl->vS="group"; strl一>v6=“UDP“:

a=setprotocol(6,strl); printf(“%s\∥,a);
/+set protocol DHCP丰木车宰¥木木木木牛e仃d专/ /木get protocol info木宰木车车年丰宰木术s厶,厂C专/

retum~protocol,info char宰msg=”一getprotocol';" b=getprotocol(msg); printf(“%s\n”,msg);
struct

4b;

inti=o:

while(strlen(bm.s_name)>1).【 printf(”pfo:%s\n“rb【i1.s_name); printf(t'grouppro:%s\n';b[i]。s_group_name); printf(1'speed:%d\nHrbli】.i_speed);
intj=0:

while(blil.i_port[j]){ printf(1'port[O/odl:%d\n“,j,bli】.i_portD】); 1+斗; )
i++;

, /术get protocol info木木木水木木术搴术术end掌/
/4set protocol FTP'speed with 1000车木拳术木丰牟木爿‘木start车/ struct protocol_speed msg*msg_s;
ms9Ls=,

(struct protocol_speed_msg protocolspeed_msg)); if(msg s==NULL){ printf(。ERR\n“); , memset(msg—S,0,sizeof(struct protocol_set—mSg));
mSg—s一>flags=“一Setspeed“;

msg_s一>protocoLname=HFT叱
msg_s一>tc_speed=1000;

a=setprotocolspeed(msg_s)j printf(“%s\妒,a);
/木set protocol FTP,5peed with 10008爿【+木丰卑:lc术木木end专/
.48.

兰州大学硕士学位论文 return o;

分布式网络流量监控系统的设计与实现


三、 终端命令 (1)添加协议相关操作 添加端口号port.. 若给定协议和port都存在,不做处理;若给定协议存在,但port不存

在,加入给定协议的port[]数组;若给定协议不存在,添加一个结构到一次匹
配链表尾,并作一些初始化工作(如idx附值等),若给出分组协议,要进行相 应处理(分组存在,一次匹配节点的相应指针指向分组,分组计数器加一),若 分组协议不存在,须添加一分组节点到分组链表尾,然后进行相应的操作。

添加协议特征码pattern: 若给定协议存在,并且没有存储pattern,则添加该pattern;若协议存
在,并且其已有pattern值,替换;若协议不存在,新添一个一次匹配节点到

链表尾,若提供分组,则进行如port一样的操作。
(2)删除一个协议的相关操作 删除一个端口号port: 对于给定协议,若该port存在,删除之,若删除后的协议节点(一次匹 配节点)没有了其他port也没有pattern,此时,若该节点所指向分组协议没 有其他一次匹配节点所指,删除协议节点和分组节点,若该节点所指向分组协 议还有其他一次匹配节点所指,那么分组节点计数减1;若还有其他port或有

pattern,只是简单地删除给定port。
删除协议特征码pattern= 若给定协议存在,该pattern存在,那么删除pattern,此时若给定协议

没有port,需要删除给节点,同时处理其指向的分组节点;如果有port,简单
地删除pattern即可。 删除一个协议规则:

对于给定协议,删除之,同时要处理其所指向的分组节点。
(3)终端命令:ntmcs 帮助help:

ntmcs--hi。-_-help
添加协议规则add protocol,usage: ntmcs-p protocol(FTP)-pattern(”A220”)/-port(20)[-group

protocoI【FILE)】
删除协议规则delete protocol,usege:

兰州大学硕士学位论文

分布式网络流量监控系统的设计与实现

ntmcs—P protocoI(FTP)[-pattern(”“220.术”)/-port(20)]-del

5.4系统性能分析
对NTMCS的性能测试,本文借助了SmartBits(I.AN一3100a—Port
统的监听接口为ethi:100BaseT-HD。
2B一

05)测试工具。对TCP旁路阻断的测试,实验环境如图5—2所示。NTMCS系

阳.触潞翱娜ItB№
图5—2系统性能测试环境 实验1:NTMCS的性能测试

SmartBits的发包情况:背景流量…—TCP,数据全为0;发包速率…- 83.7 Mbps;发包数量…一5,805,428。
NTMCS对背景流量的统计处理如图S一3所示。NTHCS系统的吞吐流量 达到了87.0Mbps,采集的数据包量为5,805,428,丢包数量为5,027,丢包 率约为0.086591%(5,027/5,805,428)。其中造成丢包的原因是LibPcap 的处理能力所致,但这个丢包率是允许的。 实验2:NTHCS的性能测试

一◇

SmartBits的发包情况:背景流量….TCP,数据全为0;发包速率…一 94.62 Mbps;发包数量…一303,172,994。
NTMCS对背景流量的统计处理如图5-4所示。NTMCS系统的吞吐流量 达到了98.0Mbps,采集的数据包量为303,172,994,丢包数量为 289,290,丢包率约为0.095421%(289,290/303,172,994)。其中造成 丢包的原因是LibPcap的处理能力所致,但这个丢包率是允许的。

图5-3 NTMCS对SmartBits流量的统计
-50-

兰升{大学颈士学位论文

分布式弼络流量监控系统的设计与实现

图5-4 NTHCS对SmartBits流量的统计

实验1和2表明,NTMCS可以胜任100Mbps压力下的工作,其丢包率 对流量分析统计的影响微不足道。 实验3:TCP旁路阻断测试 测试环境如图5—5所示。测试内容为NYMCS对PPlive的限速测试,测试 结果如图5?6所示。由于采用了密度相关算法对TCP连接进行阻断,从而 PPlive的速率被平滑的控制在所设阈值左右,而没有出现流量的突然上升与下 降之现象。

图5—6 PPlive的限速测试统计结果

兰州大学硕十学位论文

分布式网络流量监控系统的设计与实现

第6章总结
6.1论文结论
本论文针对网络流量监控的需求,结合RON项目的技术要求,设计并实现 了一种新的基于分布式的网络流量监控系统。该系统采用旁路接入方式,基于 会话重组、监控策略动态配置,通过一次匹配、二次匹配、PASVj叮P匹配和

未知P2P识别技术和TCP流量旁路阻断技术,实现了对网络多个关键出口的分
布式实时监控,同时提供了安全的API接口与管理终端命令。 对系统功能和性能的测试结果表明,该系统的功能达到了项目设计要求,

并具有良好的稳定性,可扩展性、可操作性。对实验及测试结果进行深入的分
析,得出结论主要如下:

① ⑦ ③

分布式的系统架构,对网络不同的出口分别进行监控管理,不但可 以减小系统的负载压力,而且还提高了其监控的精确度。 本系统可以方便地以旁路方式接入网络,不会引起网路瓶颈问题, 且对网络性能不会造成负面影响。

对网络业务的监控采取了按需动态调整、按需扩展的策略,实现了 对网络业务的实时监控,不但提高了系统性能,同时也体现了以人
为本的观点,考虑了入的参与的主动性。



对网络流量的监控采用了基于会话的实现方法,实现了TCP流量的
旁路阻断功能,该方法便于网络业务的识别统计,也利于对其的控 制操作。



提供了安全的API库,供其他系统(如NMS)调用,方便扩展。
对统计结果进行图形化处理,方便用户管理。



6.2论文进一步研究方向
根据论文的研究内容及论文的一些不足,提出了论文待完善的部分和论文 的下一步研究方向。



当系统的协议识别数量达到一定值时,PortStrProtocol结构列 表、RegexpCmpAgain结构链表与被动FTP结构链表都会线形的 增长,虽然采取基于会话的协议识别方法,但随着链表长度的加 大,肯定会使协议匹配效率有所下降。针对此种情况,应设计一种
优化链表的算法,使协议匹配效率不会或极小地因协议识别数量的

兰州丈学硕士学位论文

分布式刚络流量监控系统的设计与实现

增大而下降。 ② 针对加密协议进行分析等研究

③ ④ ⑤ ⑥

针对应用层业务的不同特征,研究多策略的阻断算法。 针对网络中大量的UDP流量,研究UDP的旁路干扰阻断技术。
针对主机lP,研究用户网络行为。 研究针对各种入侵和病毒的阻断技术以保障网络安全性。

兰州大学硕L学位论文

分布式网络流量监控系统的漫计与实现

参考文献
1罗杰文,Peer to Peer(P2P)综述,中科院计算技术研究所,2005—11-3 2梁珂,Web2.0现况研究,第十九届全国计算机信息管理学术研讨会,2005 3许宗章,减少光核心网的CAPEX/OPEX成本,光通信技术,VOI.27,2003 4粱鸿,刘芳,基于TCP/IP的网络流量监测系统模型的研究,计算机系统 应用,no.6,2006

5柯栋梁,万燕,基于SNMP协议的流量监测系统的设计与实现,微计算机信
息,no.1X,2006

6熊齐邦,黄明哲,基于Netflow和异步服务的网络流量监测系统,计算机工
程,no.13,2006 7蔡文郁,金心宇,张昱,基于Linux的网络流量控制机制,江南大学学报(自然 科学版),2006

8李信满,赵宏,马士军,潘宁川,分布式网络协议分析系统的设计与实现,小型 微型计算机系统,第21卷第10期,2000年10月


/layer7一protocols/protocols。http:||17- filter.sourceforge.net/layer7一protocols/protocols,2006 10 L7 filter source,http://17一filter.sourceforge.net/,2006
11】.Postel,】。Reynolds,ISI,RFC0959 FILE TRANSFER PROTOCOL (FTP),October 1985

Index

of

12陈维义,P2P导致流量异常对策,网管员世界,2006 04
13

T.Berners-Lee,MIT/LCS,R.Fielding,UC Irvine,H.Frystyk, MIT/LCS,RFCl945 Hyptertext Transfer Protocol HTTP/1.0,May
1996

14】.Klensin,RFC2821,Simple Mall Transfer Protocol,April 2001
15 j.Myers,M.Rose,RFCl939,Post Office Protocol-Version 3,May 1996 16 Bittorrent

ProtocoI

Specification

v1.0,

http://wikl.theory.org/BitTorrentSpecifieation,Sep 2006 17吴梦洁,BT控制七种武器与DoS httP:Hwww.media.edu.cn,2006-07-20

防护三部曲,

18景志钢,李乐民,孙海荣,RED分组丢弃算法性能研究,电子学
报.V01.28,No.4,2000

19陈字,张乃通,自适应调整TCP阻塞控制窗El算法研究,计算机工
程,voI。31,2005

20鲁宏伟,龚雄斌,孔华锋,基于接收端应用的TCP流量控制策略的研究,小型微
型计算机系统,v01.27,2006

21杨晓萍,陈虹,肖萍萍,UDP流量对网络性能影响及对策,第二十四届中国控制
会议论文集,2005
22 RFCll57.J.Case.A Simple (SNMP).May 1990 53~57 23 Netflow, NetFIow Network Management and Protocol

Services

Applications

http:llwww.cisco.comlwarplpublic/cc/pdliosw/ioftlneflctltech/na
-54.

兰州大学硕士学位论文

分布式髓络流量监控系统的设计与实现

PPs.wp.pdf.2001-11-2

24葛鹏,IP网监控接121盒TAP应用浅析,电信网技术,no.7,2005
25 EDOnkey2000,

http:IIencyclopedia.thefreedictionary.com/EDonkey+2000,2006
26 YOram Kulbak,Danny Bickson,The eMule Protocol Specification, ]anuary 17,2005 27 Brent N。Chun,Jason Lee and Hakim Weatherspoon.Netbait:a Distributed WOrm Detection Service.2003 28 DShield.org.Distributed intrusion detection


system.

http://www.dshield.org,November 2000

29 Hanyu Liu,Yu Peng,Mao Yang,Yafei Dai,Characterization of P2P File-Sharing System,2004 30涨朝江,林盈达,没有固定port应用程式的侦测与过滤:L7一filter classifier 32 McCanne S,Leres ump.org,2004 33 MSN 06 34 R,Hinden,Nokia,S,Deering,Cisco Systems,RFC2373:IP Version 6 Addressing Architecture,July 1998 35 W.Richard Stevens,TCP/IP Illustrated Volume l:The Protocols,机

31彭伟豪,林义能,林盈达,P2P协议行为与解析方法 C,Jacobson.Libpcap[DB/0L】.http://ww.tcpd
Messenger,

http://www.yuanma.org/data/2006/062B/article_995.htm,2006-

械工业出版社,2000
36 Gary R.Wright,W.Richard Stevens,TCP/IP Illustrated Volume 2: The Implementation,机械工业出版社,2000 37 Christian Benvenuti,Understanding Unux Network Internals, O‘Reilly Pubtisheb December 2005 38 Daniel P.Bovet,Marco Cesati,Understanding the Linux Kernel, 3rd Edition,O。Reilly Publisher,November 2005 39 Index 40

of/pub/linux/kernel/v2.6, http:llkernel.org/pub/linux/kernel/v2.6/,2006 netfilter/iptables,http://netfilter.org/projects/iptables/index.htmI, Window
Three

2006 41 Fang W,Seddigh N,Nandy B.A Time Sliding Colour Marker(TSWTCM)。RFC2859,2000-06

42 Clark D,Fang W.Explicit AIlocation of Best Efrort Packet Delivery Service.IEEE/ACM Transaction on Network,1998,6(4):362—373

43景志钢,李乐民,RED分组丢弃算法性能研究,电予学报,V01.28,NO.4,2000

.55.

兰型查耋堡圭兰堡鎏塞

坌童塞塑堡鎏塞竺堡至垒墼璧鎏耋童堡

攻读学位期间发表的学术论文
范鹏飞,申永军,孙向辉,于真,郑光明。基于分布式的网络流量监控系 统设计与实现,微计算机应用,2007第lO期录用。

兰』、II大学硕上学位论文

分布式网络流量躲控系统的设计与实现

致谢
值此论文完成之际,我很荣幸地向曾给予我帮助和关一IL,的各位老师、同学 和亲人们表示感谢。 我特别要感谢我的导师申永军教授,这不仅在于他多年来对我的指导和关 心,更有他严谨的治学态度和做人原则,这些都深深的影响着我。申老师崇高 的敬业精神,乐观、平易近人的待人处世以及一丝不苟的T。作态度,是我们学 习的榜样。在此向申老师及家人表示衷,IL,的感谢和祝福。 感谢各位任课老师的无私奉献和悉心指导,他们幽默诙谐的讲课风格、由 浅入深的讲解方法,给我们留下了深刻的影响,使我们终生受益。 感谢中科院声学所的唐辉、赵治军、孙向辉、周旭、谭红艳等各位老师在 我实习期间的关心和指导。感谢他们为我们提供了良好的工作环境。他们豁达 的性格,丰富的学识,以及在技术上给我的帮助,给我留下了深刻的印象。感 谢于真博士在技术支持方面给予的无私帮助。在此忠心的向他们表示感谢。 感谢和我一起来到中科院声学所实习的文学飞、万程、藏凯、杨飞鹏、刘 丽群等各位硕士在生活上和技术上给予的支持和帮助。 感谢张桂东、张晓炜、齐爱琴等各位老师,感谢李骁勇、李钧、刘少臻、 王东来、郑光明等各位硕士在技术与生活上给予的支持与帮助,使我顺利完成 论文工作,和他们合作的FI子是快乐的、难忘的。 最后要感谢我的各位老师、朋友、同学和亲人,他们是我生活与学习中的
良师益友。


相关文章:
基于SNMP的网络流量监控系统的设计与实现_图文.pdf
基于SNMP的网络流量监控系统的设计与实现 - 网络与通信 基于 !#$ 的网络流量监控系统的设计与实现 西安长安大学研究生部 !#$$%&’ 段宗涛 林莎 摘 要:...
分布式监控系统的设计与实现-尤勇_图文.ppt
分布式监控系统的设计与实现-尤勇_计算机软件及应用_IT/计算机_专业资料。对分布式非常专业的分析 CAT (Central Application Tracking) 自我介绍 尤勇 ?众点评 基础...
分布式文件监控系统的设计与实现_图文.doc
分布式文件监控系统的设计与实现 - 龙源期刊网 http://www.qikan.com.cn 分布式文件监控系统的设计与实现 作者:黄云祥 朱艳辉 姜杉彪 谭鹏 来源:《企业科技与...
分布式网络行为监控系统设计与实现.doc
分布式网络行为监控系统设计与实现 【摘要】 本文主要探讨了分布式网络行为监控系统的设计问题,针对分布式 网络行为监控系统设计的要点进行了探讨。同时,本文还论述了...
关于网络监控系统的设计与实现.doc
关于网络监控系统的设计与实现 - 现在随着局域网和广域网的不断升级, 网络流量越来越大, 对于监控系统的需求就不断 增多。 网络监控系统顾名思义就是对局域网...
网络流量监控及分析工具的设计与实现.doc
网络流量监控及分析工具的设计与实现 - 网络流量监控及分析工具的设计与实现 摘要
用户视角的分布式网络运维监控系统的设计与实现_论文.pdf
用户视角的分布式网络运维监控系统的设计与实现 - 2016 年第 9 期 信息与电脑 China Computer&Communication 计算机工程应用技术 用户视角的分布式网络运维...
基于.NET分布式集中控制系统的设计与实现_图文.doc
基于.NET分布式集中控制系统的设计与实现 - 龙源期刊网 http://www.qikan.com.cn 基于.NET 分布式集中控制系统的设计与实 现 作者:吴志强 潘永才 马应智 唐文龙...
SOA架构的分布式网络监管系统的设计与实现_论文.pdf
SOA架构的分布式网络监管系统的设计与实现 - 为加强企业信息系统安全性所研发的基于广域网的大型分布式监控管理系统,采用SOA架构、WCF、NDISHOOK等技术及多线程机制...
网络信息监控系统设计与实现_论文.pdf
网络信息监控系统设计与实现 - 互联网的无政府状态,使得网络犯罪日趋严重,其中问题之一在于对各种公共上网场所缺乏有效监控。本文结合网络协议分析的应用技术,提出了...
网络与业务运行监控系统的设计与实现_论文.pdf
网络与业务运行监控系统的设计与实现 - 随着网络规模的增大以及网络业务复杂性的增强,网络运行监控与业务运行监控的研究已成为网络界非常关注的课题。该文提出了一种...
基于Windows平台的网络流量统计及控制系统的设计与实现.pdf
基于Windows平台的网络流量统计及控制系统的设计与实现 - 介绍了一种Windows平台下的针对个人微机的网络流量统计及控制系统的总体设计及各个功能模块的实现,给出了...
一种分布式网络流量监测系统_论文.pdf
一种分布式网络流量监测系统 - 为了便于网络性能分析和网络规划设计并为网络升级与故障分析提供有效依据.设计了一种基于J2EE的分布式网络流量监测系统。该系统由一个...
基于Web的互联网络性能监控系统的设计与实现.pdf
基于Web的互联网络性能监控系统的设计与实现 - 维普资讯 http://www
气象实时数据库服务监控系统设计与实现_图文.pdf
气象实时数据库服务监控系统设计与实现_计算机硬件及网络_IT/计算机_专业资料。...服务监控系统往往以分布式方式采集来自于信息服务系统各相关设备、 应用程序的日志...
分布式网络管理系统中SNMP的开发与实现.doc
分布式网络管理系统中SNMP的开发与实现 - 龙源期刊网 http://www.qikan.com.cn 分布式网络管理系统中 SNMP 的开发与实 现 作者:刘宝华 田亚丽 陈端迎 来源:《...
分布式端口扫描检测系统的设计与实现_论文.pdf
分布式端口扫描检测系统的设计与实现 - 本文提出了一种基于MPI分布式的分析主机应答包而进行端口扫描检测的方法,扫描者在扫描网络时需要得到目标的应答,根据应答的情况...
分布式大型污水处理上位监控系统设计_图文.pdf
(2014)11-0060-05 分布式大型污水处理上位监控系统设计张 晋瑜 1,郑萍 1,文...网络控制技术 ; 郑萍 (1957 ),女, 教授 , 研究方向为网络 控制技术与仪表...
分布式网络视频监控系统的架构_论文.pdf
分布式网络视频监控系统的架构 - 为满足基于TCP/IP的网络视频监控系统的设计要求,结合网络视频监控系统应用范围广、组网灵活等特点,提出了基于TCP/IP的分布式网络视频...
大流量分布式水计量及控制系统的设计..doc
流量分布式水计量及控制系统的设计摘要:介绍了 XX 供水工程中供水计量及控制...对主要设备的要求,阐述了文丘里管流量计系统和计算机远程监控网络的技术 应用与...