(管理科学与工程专业论文)网络信息的监测与分析.pdf_第1页
(管理科学与工程专业论文)网络信息的监测与分析.pdf_第2页
(管理科学与工程专业论文)网络信息的监测与分析.pdf_第3页
(管理科学与工程专业论文)网络信息的监测与分析.pdf_第4页
(管理科学与工程专业论文)网络信息的监测与分析.pdf_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

独创声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成 果。掘我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得( 注:如没有其他需要特别声 明的,本栏可空) 或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对 本研究所做的任何贡献均已在论文中作了踢确的说明并表示谢意。 i 学位做作者虢脚 、 翩签字 学位论文版权使用授权书 , 本学位论文作者完全了解堂撞有关保留、使用学位论文的规定有权保留并向 国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权堂 垄奠可以将学位论文的全部或部分内容编入有关数据库进行检索。可以采用影印、缩印 或扫揣等复制手段保存、汇编学位论文。( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 飙、和? 、 签字慨z 。古年j 月,f 日 导师签字: 签字日期:2 0 。f 车、元荫 山东师范大学硕士学位论文 摘要 诗算机网络技术今天莅缀多领域愿致了广泛蛉应恩,网络的功能日益强大但 复杂性也随之提高。这一方面给用户带来了方便,另一方面也使得设计、维护和 保证网络安全变得困难。因此,对用于分析、诊断、测试网络性能和安全性的工 具的需求不断增加。这些工具需要获得网络传输的数据并在网络工作时捕获它, 实现对网络数据的实时监控。网络信息监测是网络安全问题的一个重要方面,它 对于网络故障的判断和网络的管理具有重大意义。 本文对在局域网中实现数据包捕获功能、数据包过滤功能、数据包分析功能 以及统计功能的基本原理散了深入研究,在此萎础之上,设计并实现了一整套网 络监控软件系统n e t m a s ,所做的主要工作包括: i 、本文对w i n d o w s 环境下弱络监铡开发包w i n p c a p 饿了深入研究,提出了 提高数据包捕获效率的几种有效办法:( 1 ) 设置适当大小的内核缓存( 2 ) 设置适 当大小的用户级缓存( 3 ) 设霉最为严格的过滤条件,并论述了如何将其作为本 课题研发的软件n e t m a s 的底层接口。 2 、在设计n e t m a s 时,提出- - , 9 新的方法,将网络中的各个协议设计为具 有继承关系的一系列的类,并对这些类分剐设置了合理鸽数据成员( 例如描述各 层协议头的结构变量) 和方法( 例如给这些结构赋值的方法和获取这些结构中各 个域的数值的方法) ,如果以后要增加一种协议,只需在类继承系统中找到相应 的父类,派生出一个子类,再实现其相应的方法即可,从而扩大了网络监测程序 的应用范涵。 3 、本文给出了一种数据包过滤模块的实现策略,其中对每个协议都定义了 个常数,这种常数的定义方法使得每个协议都有一个不同的比特位为1 ,其余 的比特位均为0 。针对协议过滤树有一个变量u i n tmp a m m s u m ,每当鼹户选 择了一个协议,那么就让这个协议对应的常数与m - - p a r a m s u m 做位或操作,当 用户取消选择该协议时。就让它对应的常数取菲后与m _ p a r a m s u m 做位与操作, 这样通过最后得到的m p a m m s u m 就可以知道用户选择了那些协议。具体方法 是让m p a r a m s u m 与某个协议对应的常数做位与操作,如果结果还是那个常数 本身,就说明用户选择了该协议。 山东师范大学硕士学位论文 4 、本文给出了网络监控软件系统n e t m a s 的详细设计和实现过程,用u m l 图示既明了其各个功能的流程,并针对每个模块的实现解释了如何利用面向对象 的方法使系统具有很好的扩展性。 关键词:网络监铡w i n p c a p ,u m l ,面向对象,n e t m a s 山东师范大学硕士学位论文 a b s t r a c t c o m p u t e rn e t w o r kt e c h n o l o g y i sw i d e l ya p p l i e di nm a n yf i e l d st o d a y , t h e f u n c t i o no fw h i c hi sm o r ep o w e r f u ld a ya f t e rd a ym e a n w h i l et h ec o m p l e x i t yo fw h i c h i sr a i s e d a l lo ft h i sb e n e f i t sp e o p l em u c hw h e r e a st a k e sag r e a td e a lo fd i f f i c u l t yt o p e o p l ew h e nt h e yd e s i g n ,m a i n t a i na n ds e c b r et h ep r o d u c t sa b o u tn e t w o r k a sa r e s u l t t h et o o l sf o ra n a l y z i n g ,d i a g n o s i n ga n dt e s t i n gt h ep e r f o r m a n c ea n ds e c u r i t yo ft h e n e t w o r ki si n c r e a s i n gn e e d e d t h e s et o o l sh a v et oa t t a i nd a t ai nt h el i n ew h e nt h e n e t w o r ki si nu 鸵a n di n s p e c tt h en e t w o r kd a t ai nr e a lt i m e i n s p e c t i n gi n f o r m a t i o no f t h en e t w o r ki so n eo ft h ei m p o r t a n ta s p e c t so ft h en e t w o r ks e c u r i t y , w h i c hd og r e a t i m p o r t a n tt ot h ed i a g n o s i sa n dm a n a g e m e n t o f t h en e t w o r kd e v i c e s t h ew o r ko ft h i sp a p e ri sb a s e do nt h ed e 印r e s e a r c ht ot h ep r i n c i p l eo ft h e n e t w o r kf u n c t i o n sa b o u tc a t c h i n gd a t ap a c k a g e ,f i l t e r i n gd a t ap a c k a g e ,a n a l y z i n gd a t a p a c k a g ea n ds t a t i s t i c a sa r e s u l tas e to fs o f t w a r es y s t e ma b o u tn e t w o r ki n s p e c t i n g n e t m a si sd e s i g n e da n di m p l e m e n t e d 。t h ew o r km a i n l yi n c l u d e : 1 w ed os o m ed e e pr e s e a r c ho nt h et o o l k i tw i n p c a pf o rn e t w o r ki n s p e c t i n g u n d e rw i n d o w se n v i r o n m e n t ,t h e ns e v e r a lf e a s i b l em e t h o d sf o rr a i s i n gt h e r a t eo fa t t a i n i n gd a t ap a c k a g ea r ep r o p o s e d ( 1 ) c o n f i g u r ek e r n e lc a c h eo f a p p r o p r i a t es i z e ( 2 ) c o n f i g u r e c a c h eo fa p p r o p r i a t es i z ef o ru s e r s ( 3 ) c o n f i g u r et h em o s ts t r i c tf i l t e rc o n d i t i o n w ea l s od e s c r i b eh o w t ou s et h e t o o l k i ta st l l eb o t t o mi n t e r f a c eo f o u rs o f t w a r e - - n e f l v l a s 2 t h ec h a r a c t e r i s t i c so fn e t m a sl i ei nt a k i n gt h ep r o t o c o l si nt h en e t w o r ka s 謦“ s e r i e so fc l a s s e so fh e r i t a b l er e l a t i o n se a c h a tt h es a m et i m ea p p r o p r i a t ed a t a m e m b e r s ( f o re x a m p l et h es t r u c t u r ev a r i a t i o nf o rd e s c r i b i n gh e a d so fp r o t o c o l s o fe a c hl a y e r ) a n dm e t h o d s ( f o re x a m p l et h em e t h o d sf o rv a l u i n gt h o s e s t r u c t u r e sa n da t t a i nt h ev a l u e so ft h es t r u c t u r e s ) i fak i n do fp r o t o c o lh a s t oa d d e d ,w eo n l yn e e dt of i n dc o r r e s p o n d i n gf a t h e rc l a s si nc l a s sh e r i t a b l e s y s t e ma n dd e r i v e sas u b c l a s s ,t h e ni m p l e m e n tc o r r e s p o n d i n gm e t h o d s a sa r e s u l tt h ea p p l i c a t i o nf i e l d so f t h en e t w o r ki n s p e c t i n gp r o c e d u r ei se n l a r g e d 3 a ni m p l e m e n tp o l i c yo fak i n do fd a t ap a c k a g ef i l t e r i n gm o d u l ei sp r o p o s e d 山东师范人学硕士学位论文 w ed e f i n eac o n s t a n tf o re v e r yp r o t o c 0 1 t h ew a yw ed e f i n et h ec o n s t a n t m a k ee a c hp r o t o c o lh a sad i f f e r e n tb i tp l a c ev a l u e d1 ,t h er e s to ft h eb i tp l a c e s v a l u e d0 t op r o t o c o lf i l t e rt r e et h e r ei sau i n tv a r i a t i o nm p a r a m s u m , w h e n e v e ru s e rs e l e c tap r o t o c o l ,m p a r a m s u mw i l ld ob i to ro p e r a t i o nw i t h t h ec o r i s t a n tc o r r e s p o n d i n gt ot h ep r o t o c o la n dd ob i ta n d o p e r a t i o nw h e n u s e rc a n c e ls e l e c t i n gt h ep r o t o c 0 1 w ec a l lk n o ww h i c hp r o t o c o lu s e r s s e l e c t b yt h el a s tv a l u eo fm _ p a r a m s u mw h i c hd ob i ta n do p e r a t i o nw i t ht h e c o n s t a n tc o r r e s p o n d i n gt ot h ep r o t o c 0 1 i ft h el a s tv a l u eo ft h ec o n s t a n ti sn o t c h a n g e d ,u s e rs e l e c t e dt h ep r o t o c 0 1 4 t h ep a p e rp r o p o s e st h ep r o c e d u r eo ft h ed e t a i ld e s i g na n di m p l e m e n to ft h e n e t w o r ki n s p e c t i n gs o f t w a r e 一n e t m a s u m li su s e dt od e s c r i b et h ef l o w o fe v e r yf u n c t i o n t ot h ei m p l e m e n to fe v e r ym o d u l ew ed e s c r i b eh o wt o s t r e n g t h e nt h ee x p a n s i b i l i t yo f t h es y s t e mu s i n gt h e0 0m e t h o d s k e y w o r d :n e t w o r ki n s p e c t i n g ;w i n p c a p ;u m l ;o n e c to r i e n t e d ;n e t m a s 6 山尔师范大学硕士学位论文 第一章绪论 1 1 网络监测的意义 计算机网络技术今天在很多领域得到了广泛的应用,i n t e m e t 已经成功走进 了学校、公司、政府部门乃至许多家庭,每天都有新的应用与技术产生。网络的 功能日益强大但复杂性也随之提高。这一方面给用户带来了方便,另一方面也使 得设计、维护和保证网络安全变得困难。因此,对用于分析、诊断、测试网络性 能和安全性的工具的需求不断增加。这些工具需要获得网络传输的数据并在网络 工作时捕获它,实现对网络数据的实时监控。 通过对网络信息的监测与分析,可记录网络中数据的流量,对网络信息给予 适当控制,并有助于分析网络的性能,监控网络各层的协议和服务,分析网内各 主机的处理能力,提高对网络的管理。网络信息监测的意义还体现在以下几点: 可用于调试网络应用程序,判断应用程序是否正确的发送或接收了数据包;可以 维护网络环境,杜绝不健康站点的不健康内容;可应用于安全防范,监视信息内 容、保障网络安全,截获情报、分析怀有敌意方的网站,在计算机网络上实施有 效的攻击与保护。 i n t e m e t 基于t c p b p ,而t c p i p 是一个包交换协议,这意味着在共享媒体上 传输的数据对同网段上的机器是可见的。同时目前使用最广泛的以太网技术,采 用带冲突监测的载波侦听多路访问协议( c s m a c d ) 作为介质访问控制协议, c s m 刖c d 使用广播机制,所传输的数据包能被共享信道的所有主机接收,这是 在以太网上实现数据监测的物理基础。但是,大量的通讯技术和协议的存在使这 个工作变得很固难,而且为了在高速网络上无遗漏的捕获数据,对性能也提出了 较高的要求。目前来说,主要有两种方法从网络上捕获数据:第一种是基于特定 的硬件:第二种是在普通p c 或工作站上用软件实现。后者是用计算机的网络适 配器从网络上获得数据帧。然后用软件进行大量的捕获处理。这种方式比第一种 方式性能差,但是它便宜,容易修改和升级,因此得到了广泛的应用。本文所讨 论的正是用软件实现的网络数据监测与分析。 1 2 网络监测软件的现状 目前市场上已出现一些专用的网络监控和协议分析软件,它们的共同特点 山东师范大学硕士学位论文 是:能够访问本地网络上数据链路层传输的所有数据包,并按用户的要求对这些 包进行相关处理;对各种协议进行分析,从而可以对网络负载流量情况、网络所 有的各种通讯协议进行监控。 商用化的工具产品如美国网络联盟公司的s n i f f e r 网络协议分析仪就是很好 的例子。s n i f f e r 对网管具有重要意义。网管通过s n i f f e r 可以方便的确定某种网 络协议拥有的通讯量、哪台主机是主要的通讯目的地、主机相互间发送报文的时 间间隔、发送报文占用的时间等,这些信息为网管判断网络问题、管理网络提供 了非常宝贵的信息。 近来由意大利人f u l v i or i s s o 和l o r i sd e g i o a n n i 等人提出的w i n p c a p 系统是 一个功能较为强大且开放源代码的数据包捕获接口软件,对其进行适当的修改后 可作为网络监测软件的基础。 w i n p c a p 体系结构是一种在w i n 3 2 环境下用于实现高效数据包捕获的开发 包。它向上呈现两种不同层次的编程接口,为在w i n d o w s 系列平台中开发高性 能的网络监测程序提供了基础。本课题所研发的网络监控软件n e t m a s 的底层接 口就是基于w i n p c a p 改进而来的。 w i n p c a p 的基础结构是受b p f 结构的启发而得来的。它可以分为三个独立 的部分:数据包捕获驱动程序n p f ( n e t g r o u pp a c k e tf i l t e r ) 、底层的动态链接库 p a c k e t d u 和高层的动态链接库w p c a p d l l 。其中n p f 处于内核级别,而p a c k e t d l l 和w p c a p 叫处于用户级别。 处于最下方的是网络适配器( n i c ) 驱动,它用来管理n i c 捕获网络中传输 的数据包。为了让n i c 能够截获网络中的全部数据包,应将其设为“混杂模式”。 n i c 驱动上面是n p f ,它工作在核心态。n p f 是w i n p c a p 体系结构中最底 层的模块。它可以和n i c 驱动交互,并向上提供一组函数,用于从网络中读取 数据包和向网络中写入数据包。n p f 具有高效和迅速的特点,即使在流量很大的 快速局域网中也能正常的进行包捕获,丢包率小并且占用的系统资源少。 接下来是p a c k e t d l l ,它为上层提供了一个与平台无关的包捕获接口。上层 的程序不用经过重新编译就可在不同版本的w i n d o w s 系统中运行。而w p c a p d l l 使用了由p a c k e t d l l 导出的函数,向上层的应用程序提供更易于使用的编程接口。 处于最上层的包捕获应用程序可以和用户进行交互,并通过下层提供的功能 山东师范大学硕士学位论文 截获用户所需要的数据包,然后对其进行相应处理,再用预定的方式向用户显示 结果。 在网络监测与分析软件的开发方面,由于绝大多数的u n i x 系统都提供了一 套方便应用程序直接和网络交换的系统调用,这些系统调用对于类似数据包捕获 的应用程序很有用,所以目前u n i x 环境下网络监控程序的开发包有很多。面 w i n d o w s 平台除2 0 0 0 带有一个非常简单的i p 过滤器( 利用w i n s o c k 2 0 的新特 性实现) 外,其他系统都没有包含该方面的功能,现有的一些包捕获系统要么功 能有限( 如n c t m o n a p i ) , 要么是商业性质的软件包。但随着w i n d o w s 的普及使 用,它在p c 机上已经成为了主流操作系统,而且针对w i n d o w s 的网络安全问题 也日益增多,因此很有必要在w i n d o w s 平台上开发出许多高质量的网络分析与 安全维护工具。 9 山东师范大学硕士学位论文 第二章网络监测相关技术 2 1 局域网技术 2 1 1 局域网的工作特点 局域网是由一组在物理地址上相隔不远的计算机和其它数据通信设备组成 的,以允许用户相互通信和共享诸如打印机和存储设备之类的计算机资源的方式 互连在一起的通信系统。从i s o r m 看,它仅包含了低两层( 物理层和数据链路 层) 的功能,所以连到局域网的数据通信设备必须加上高层协议和网络软件才能 组成计算机网络。 2 1 2 以太网技术 以太网( e t h e m e t ) 指基带总线局域网,是最成功的,也是当前应用最广泛 的一种局域网。其基本工作原理可以归结为:分布式控制、广播式通信、多向( 地 址) 访问、竞争发送与无冲突接收。 分布式控制指在网络中,不设中央控制机构和公共定时单元,而是将控制分 散给各个结点。广播式通信指网络的每个结点所发送的信息都送给总线,能被网 上所有结点收听到,但并非为每个结点所接收,信息只被与其地址有关的结点所 接收。多向访问是指目的地址的方式有三种:单地址访问、分组访问和广播式访 问。竞争发送和无冲突接收指的是:以太网中的每一个结点都主动争取发送信息 的机会,以提高网络的利用率。每个结点在发送前,要进行载波监听,以寻找网 络空闲的机会。信息包发送出去之后,结点要进行冲突检测,以决定信息包是否 要重发。一旦冲突发生,接受结点应把已收到的信息作为错误信息丢弃,随后再 进入准备接收阶段。这就是c s m a c d 访问方法。 在以太网的世界中存在着四种不同的帧格式,即e t h e m e tv 1 ,0 ,e t h e m e t v 2 0 ,i e e e8 0 2 3 ,i e e e8 0 2 3s n a p 。目前e t h e m e t v i 0 已基本被v 2 0 所取代。 而i e e e8 0 2 _ 3s n a p 的出现是为了解决e t h e r n e tv 2 0 和i e e e8 0 2 3 之间的向后 兼容性问题。 2 1 3n d is 及其结构 n d i s ( n e t w o r k d r i v e r i n t e r f a c es p e c i f i e a t i o n ) 全称网络驱动程序接口规范, 是m i c r o s o f t 和3 c o m 公司联合制定的,它是网卡驱动程序与下层的各种网卡、 0 山东师范大学硕士学位论文 上层的各协议驱动程序及操作系统进行通信的接口。个n d i s 驱动程序一般通 过n d i s 接受和发送包( p a c k e t ) ,也通过其获得操作系统服务,如缓冲区管理、 端口i o 操作等。其实,n d i s 是一个有许多n d i s 函数构成的函数库,组成了 n d i s 驱动程序的编程环境。w i n d o w s 定义n d i s ,使网络驱动程序的开发和操 作系统对各种网络的支持变得十分方便,如遵从n d i s 的网卡驱动程序可以方便 的与许多其它的符合n d i s 的协议驱动程序绑定,在编写网卡驱动程序时,也只 需要满足n d i s 的搜定,调用n d i s 函数,丽不用考虑操作系统内核的细节及同 其它驱动程序交互的接口问题。 处在最底层的是网卡,然后是硬件抽象层h a l 。h a l 负责与真正的硬件打 交道,为内核屏蔽了除c p u 之外的硬件差异,这就使得内核的大小可以减小, 并且增加了可移植性,内核只需要关心c p u 体系的差异。 n d i s 库利用了h a l ,从而也获得了硬件无关性。n d i s 输出了许多例程或 宏供驱动程序使用,比如n d i s s e n d ,n d i s r e q u e s t ,n d i s r e s e t 等。n d i s 驱动程 序( 包括微端口驱动程序、中闻驱动程序以及协议驱动程序) 应该使甩这些例程, 从而获得硬件可移植性和源代码兼容性。一般情况下,n d i s 驱动程序通常需要 向n d t s 注册一组例程。一边n d i s 在适当的时候能够调用驱动程序注册的例程, 而驱动程序可以在这些例程里面进行相应的处理。一般来说,如果驱动程序需要 在上边与n d i s 通信,那么它需要向n d i s 注册一组形如m i n i p o r t x x x 的例程, 使得该驱动程序对于更上层的驱动来说。看起来好像是一个微端口;如果驱动程 序需要在下边缘与n d i s 通信那么它需要向n d i s 库注册一组形如p r o t o c o l x x x 的例程使得该驱动程序对于下面的驱动程序来说表现的好像是一个协议驱动程 序。实际上,这些注册的例程是在适当的时候被n d i s 调用的,是为驱动程序栈 中其它层次的驱动程序服务的。不过,对于传输驱动程序( 或者称为协议驱动程 序) 来说由于它的上边缘不再是n d i s 了,所以也就不需要注册m i n i p o r t x x x 函数;而对于微端口驱动程序来说,因为它的下面是网卡,所以需要处理中断等。 另外,每一层的驱动程序从不直接调用其它层次的驱动程序的例程,而是仅仅使 用n d i s 库函数,虽然本质上还是由n d i s 调用了其它层次的驱动程序的相应例 程。n d i s 的这种设计使得各层驱动对于别的层的驱动程序来说是透明的。比如 说,假设n d i s 驱动程序栈有传输驱动和微端口驱动两层,而传输驱动向n d i s 山东师范大学硕士学位论文 注册了p r o t o c o l r e e e i v e 函数。微端口向n d i s 注册了m i n i p o r t s e n d 函数,现在传 输驱动需要发送数据,它只需要简单调用n d i s 的库函数n d i s s e n d ,n d i s s e n d 会负责调用微端口注册的m i n i p o r t s e n d 函数,在那里实现数据的发送,协议驱动 无需关心微端口驱动的细节情况;而当微端口驱动收到数据需要指示上层驱动来 接受时,它只需要调用n d i s 的库函数n d i s m e t h i n d i c a t e r e c e i v e ( 或类似的函数) , 此函数会负责调用协议驱动程序注册的p r o t o e o l r e e e i v e 函数来实现数据接收,微 端口同样无需了解协议驱动程序的细节。比如,利用n d i s 的这种封装特性,就 可以专注于一层驱动的设计,减少了设计的复杂性,同时易于扩展驱动程序栈。 处于n d i s 最高层的是传输驱动程序( 协议驱动程序) ,w i n d o w s 允许多个 协议驱动程序并存子这一层。典型的t c p i p 实现模块t c p i p s y s 和其它一些协议 的实现模块( a p p l e t a l k 、n e t b e u i 、i p x s p x 等) 也是位于这一层的。传输驱动 程序可以注册为传输提供者,从而为上层的t d i 客户服务。t d i 客户与传输驱动 之间采用特定的机制进行通信。 n d i s 为上层的协议驱动提供服务,屏蔽了下层各种网卡的差别。它向上支 持多种网络协议,向下支持不同厂家生产的多种网卡。n d i s 还支持多种工作模 式,支持多处理器。但n d i s 库中所提供的各个函数部是工作在核心模式下的, 用户不宜直接操作,需采用另外的接口。 由于进行网络流量和性能监测时,应用层的监控只能监测到高层协议和数 据,并不能反映当时网络的总体具体情况,而且它要受到具体协议的限制。n d i s 网络驱动程序接口规范提供了网络适配器和协议以及操作系统的通讯驱动,它将 不同的网络适配类型。不同协议通过一定的标准统一起来,网络适配器通过n d i s 实现和协议驱动程序通讯。系统注册以及i r q 请求处理等。所以通过n d i s 对网 络适配器实现直接访问,从而捕获数据链路层的帧,然后就可以进一步对帧进行 分析。 2 2 数据包捕获机制 数据包捕获机制是依赖于操作系统的,较为典型的比如说u n i x 平台上的 b p f 。它是一种效率较高、应用广泛的包捕获技术。通常情况下,当网卡驱动程 序接收到数据包后,即将其提交给系统的协议栈。如果有进程用b p f 进行网络 监听,则网卡驱动程序会先调用b p f ,复制一份数据给b p f 的过滤器,过滤器 山东师范大学硕士学位论文 根据用户的规则决定是否接收此数据包,并判断此数据包是否是发给本机的,若 是则驱动程序将它提交给系统协议栈后返回j 否则网卡驱动程序从中断返回,继 续接收数据。 u n i x 严格区分核心空间和用户空间,用户的应用进程不能访问核心空间。 由于网络监测软件作为用户进程运行,网卡驱动程序工作在核心地址空间中,因 而要将捕获的数据从内核复制到用户空间,这样系统负担很大,在网络忙或机器 慢时还会发生丢包。为此出现了包缓冲和包过滤机制。 b p f 在核心设置了一个过滤器,由用户定义过滤规则,在核心态即实施过滤, 只将需要的数据提交给用户进程,减少了数据传送。每个b p f 都有缓 中区。若 过滤后要接收某个包,b p f 就将它复制至相应缓冲区中,等收集到足够多的数据 后再一起提交给用户进程,从面减少了“r e a d ”系统谲眉,提高了效率。 w i n p c a p 中的捕获机制n p f 源自b p f ,其思想和b p f 类似,但在如内核缓 存的设置等方面对其进行了改进。后文将对n p f 进行详细阐述。 2 ,3 对数据进行协议分析 协议分析是网络监控程序最重要的功能之一,通过对网络数据流的实时或事 后的解码分析,可以了解到网络上运行的协议和服务、数据帧的源地址和目的地 址、数据帧的格式等。能解码多少种协议是衡量网络监控程序性能的最重要的指 标。 国际标准化组织( i s o ) 为更广泛的计算机互联制定了标准化的开放系统互 联( o s i ) 网络体系结构。o s i 参考模型用结构描述方法,即分层描述的方法, 将整个网络的通信功能划分为七个部分( 也叫七个层次) ,每层各自完成一定的 功能。由底层至高层分别成为物理层、数据链路层、网络层、传输层、会话层、 表示层和应用层。两台弼络主机之同进行通信对,发送方将数据从应用层向下传 递到物理层,每一层协议模块为下一层进行数据封装,数据流经网络,到达接收 方,接着再由下而上通过协议栈传递,并与接收方应用程序进行通信。 但是目前事实上的网络标准却是t c p i p 四层网络模型由底层至高层分别 称为网络接口层、网际层、传输层、应用层。 现在我们以监控h t t p 的连接请求为例,介绍一下数据帧的分析过程。 首先由数据链路层数据帧的格式可以得到所获得的数据帧的目的物理地址 山东师范大学硕士学位论文 和源物理地址。e t h e r t y p e 域的值表明帧数据的类型,若是0 x 0 8 0 0 ,说明是i p 数 据包;若是0 x 0 8 0 6 ,说明是a r p 数据包;若是0 x 8 0 3 5 ,说明是r a r p 数据包, 等等。通过判断e t h e r t y p e 域的值可以提取i p 数据包。 其中,协议字段的值表明了i p 数据区的内容类型,若为6 说明为t c p 包, 若为1 7 说明为u d p 包,若为1 说明为i c m p 包,若为2 说明为i g m p 包,等等。 h t t p 数据是通过t c p 进行传输的,通过判断i p 报头中协议字段的值可以提取t c p 包。 因为l - i t t p 服务的端口号是8 0 ,所以通过检查t c p 报头中的端口号就可以知 道是不是h 却数据,若目的端口号为8 0 ,则说明是h 印连接请求包,我们就可 以按照h 竹p 请求包的数据格式继续分析其中的数据。 2 4 面向对象程序设计思想及建模语言u m l 面向对象程序设计方法基于一种拖象钓数据类型一类( c l a z s ) 和这稗抽象 数据类型的实例( i n s t a n c e - ) 一对象飞o b j e c t ) 妒类是与客观世界具体成分相对应 的软件模块描述,包括描述该成分的数据 称为属性( p r o p e r t y ) 】和对这些数据的 操作 称为方法( m e t h o d ) 】,对象是通过类的描述进行实例化的可调用的软件模 快。面向对象程序设计方法正是基于类对象实现的一种程序设计方法,这种程 序设计方法具有以下重要特点: 1 ) 封装性( e n c a p s u l a t i o n ) :封装是一种组织软件的方法。它的基本思 想是把客观世界中联系紧密的元素及其相关操作组织在一起,构造具有独立含义 的软件实现,使其相互关系隐藏在内部,而对外仅仅表现为与其它封装体间的接 口( i n t e r f a c e ) 关系,封装的目的是信息隐藏。对象是按照封装的方法构造的与 客观世界具体成分相对应的软件模块,对象中封装的是属性和方法,类是对对象 的抽象及描述。 2 ) 继承性( i r t h e t i t a n c e ) :继承用于描述类之间的共同性质。它减少了 相似类的重复说明,体系出了一般化及特殊化的原则。继承提供了一种明确表述 共性的方法,使得程序员对共同的属性以及方法只说弱一次,并且在具体的情况 下可以扩展细化这些属性及方法继承对于软件开发有许多好处,包括软件复用 性,代码复用,界面的一致性,以及快速原型技术。 3 ) 多态性( p o l y m o r p h i s m ) :在程序设计语言中,多态性指相同的语言 1 4 山东师范火学硕士学位论文 结构可以代表不同类型的实体或者对不同类型的实体进行操作。在面向对象程序 设计语言中,对于类和对象之间的继承关系有一种独特的多态现象:如果类p 是类s 的父类,则子类s 的一个对象s 可以用在父类p 的一个对象p 所使用的任 何地方,这就意味着一个公共的消息集( 即操作) 可以送到类p 和类s 的对象上, 这正体现了多态性。多态性与语言的运行时链接( r u n t i m el i n k ) 有关,这种链 接方式比起编译时链接( c o m p i l e f i m el i n k ) 在实现多态性方面具有很大的方便 性和灵活性。 面向对象的标准建模语言u m l ,是当今软件工程领域中最具有意义的成果 之一,它定义的统一语义和符号表示可以规范面向对象技术市场,使项目源于一 个成熟的标准建模语言,从而拓宽了所研制与开发软件系统的适用范围,并提高 其灵活程度。 u m l 的重要内容可以由下列五类图( 共1 0 种图形) 来定义: 1 ) 第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。 2 ) 第二类是静态图( s t a t i cd i a g r a m ) ,包括类图、对象图和包图。其中类图 描述系统中类的静态结构,对象图是类图的实例,几乎使用与类图完全 相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是 实际的类。 3 ) 第三类是行为图( b e h a v i o rd i a g r a m ) ,描述系统的动态模型和组成对象 间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生 时状态的转移条件。通常状态图是对类图的补充。而活动图描述满足用 例要求所要进行的活动及约束关系,有利于识别并行活动。 4 ) 第四类是交互图( i n t e r a c t i v ed i a g r a m ) ,描述对象间的交互关系。其中顺 序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序, 同时显示对象之间的交互:合作图描述对象间的协作关系。 5 ) 第五类是实现图( i m p l e m e n t a t i o nd i a g r a m ) ,包括构件图和配置图。其中 构件图描述代码部件的物理结构部件之间的依赖关系;它包含逻辑类或 实现类的有关信息。配置图定义了系统中软硬件的物理体系结构;可以 显示实际的计算机和设各( 用节点表示) 以及它们之间的连接关系,也 可显示连接的类型及部件之间的依赖性。 山东师范大学硕士学位论文 第三章网络监控关键技术研究 3 1 对w ;n p c a p 的几点优化 经过对w i r l p c a p 体系结构的详细分析和大量的实验测试,对w i n p c a p 做了 几点优化,以使其更好的作为我所开发出的网络监测软件n e t m a s 的底层接口。 3 1 1 设置适当大小的内核缓存。 n p f 中使用动态的循环缓冲区作为内核缓存。这是和b p f 显著的区别之一。 内核缓存在包捕获开始时被分配,在结束时被释放。利用循环缓存,n p f 可以从 核心态向用户态一次传送多个数据包,并且由于在传送的过程中缓存中被已传输 的数据占用的部分不停的被释放。又可以存储新捕获的数据包,所以缓存的利用 率很高。内核缓存的默认大小为1 m b 因为较大的内核缓存可以在应用程序读 数据的速度跟不上n p f 捕获数据的速度时减少丢包现象。 可以通过调用w p c a p d l l 中的p c a ps e t b u f f ( ) 函数或p a c k e t d l l 中的 p a e k e r s e t b u f f ( ) 函数来改变内核缓存的大小。一般来说。较大的内核缓存会提供较 好的性能。 3 1 2 设置适当大小的用户级缓存 用户级缓存用来接收来自内核缓存的数据包,它对于应用程序是透明的,其 默认大小为2 5 6 k b 。用户级缓存的大小决定了在一个系统调用下能够从内核缓 存接收来的数据包的最大数目。该数目越大,单位时间内由于包拷贝而引起的系 统调用就越少,从而使得用户态和核心态间的上下文切换次数减少。但用户级缓 存也不宣过大,否则会造成不必要的内存浪费。内核缓存和用户级缓存的大小都 可由用户进行调整。 在w p e a p ,d l l 中必须通过修p c a po p e n _ l i v e ( ) i 甬数的源代码并重新编译才能 调整用户级缓存的大小。在p a c k e t d l l 中则可通过p a c k e r i n i t p a c k e t o i 函数来调整。 经测试,当用户级缓存和内核缓存大小相等时,整个系统可获得最佳性能。但一 般情况下将用户级缓存设为内核缓存的l ,2 或1 ,4 大小即可。 3 1 3 设置最为严格的过滤条件 网络信息监控将获取所有的网络信息,但在实际应用中,其中存在若干用户 不关心的数据,或者称为垃圾数据,垃圾数据比重极大,严重影响了系统工作效 6 山东师范大学硕士学位论文 率。事实上,网络监听模块过滤功能的效率是该网络监听的关键,因为对于网络 上的每一数据包都会使用该模块处理,判断是否符合过滤条件。低效率的过滤程 序会导致数据包丢失、来不及分析处理等。用户可以按特定的子网主机以及特点 的嵌议端口妇h t t p 、f t p 、p o p 3 等进行过滤,只将用户关心的敏感数据向上层 提交,从而提高系统的工作效率。 w i n p c a p 中的n p f 过滤机事实上是一个b p f 虚拟机。而b p f 提供了一种新 的流量监控结构,性能比其他工具有显著提高。其主要原因如下: b p f 使用基于寄存器的过滤机,而类似的工具c s p f 使用基于内存堆栈的过 滤机。在现代计算机中,内存操作是系统的瓶颈所在。 b p f 使用简单的不共享方式缓存模型,充分利用现代计算机的大地址空间。 b p f 过滤器的过滤功能是通过虚拟枫( p s e u d o - - m a c h i n e ) 执行过滤程序来 实现的。过滤机主要由累加器、索引寄存器、数据存储器和隐含的程序计数器几 部分缀成。过滤程痔( f i l t e rp r o g r a m ) 实际上是一组过滤规则。过滤规赌盎甩户 定义,以决定是否接收数据包和需要接收多少数据。每一条规则执行一组操作, 具体操作可以分为指令装载、指令存储、执行算术指令、执行跳转指令、执行返 回指令等几个类别。 网络监测应用可能只关心网络数据流中的一个子集,因此数据包的过滤将大 大提高系统的性能。为了减少内存操作,以尽量避开瓶颈,包过滤应该在数据包 的原始位置( i n - - p l a c e ,即d m a 操作存放数据的内存位置) 进行过滤,而不是 首先拷贝数据。 所以我认为应该设置最为严格的过滤条件从而使n p f 只n i c 驱动的缓存中 拷贝尽可能少的数据包。如果不需要查看数据包的肉容,还可以迸一步设置过滤 条件,使得只拷贝数据包的首部。这样做消耗的系统资源少。在w p c a p d l

温馨提示

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

评论

0/150

提交评论