




已阅读5页,还剩60页未读, 继续免费阅读
(通信与信息系统专业论文)网络协议分析平台的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 网络信息安全问题目前广受关注,并且这个问题在金融、民航和电信等关 键应用系统中显得尤为突出,为了完成实时观察网络状况、管理网络和排除网 络故障等工作,人们开发了包括网络嗅探器在内的各种网络协议分析工具,本 文实现的网络协议分析平台就属于网络嗅探器的一种。 网络协议分析平台是在w i n d o w s 平台下利用w i n p c a p 开发而成的,主要负 责捕获流经计算机网络适配器的网络数据包,用直观的界面显示数据包的简要 信息,按照相应的网络协议类型解析数据包各个字段的意义。网络协议分析平 台为用户提供了接触、了解底层通信数据的窗口,用户以平台提供的信息为源 泉,可以进一步学习、掌握和研究网络通信情况。 网络协议分析平台在设计时按照功能划分为捕获、显示和分析数据包三个 功能模块,捕获数据包模块是整个平台功能实现的基础,显示和分析数据包模 块的处理对象是捕获数据包模块所捕获到的网络数据包;显示数据包模块又是 分析数据包模块工作的前提,分析数据包模块解析的网络数据需要到显示数据 包模块的显示结果中进行挑选;这三个模块为递进关系,既相互依赖又相互独 立。捕获数据包模块主要利用w i n p c a p 实现,显示和分析数据包模块的工作都 与网络协议相关,实现这两个模块时需要提前了解各种网络协议的结构以及编 程时采取的处理方法。 本文实现的网络协议分析平台已经实际应用到网络实验当中,通过观察平 台捕获的数据包,可以进一步学习网络协议,探讨各种网络协议的优缺点,并 且从侧面验证了平台具有设计简单、使用方便、执行速度快和协议分析的准确 率和效率都很高等特点,在网络协议分析和网络安全方面具有一定的研究意义。 关键词:w i n p c a p ,数据包捕获,以太网帧结构,t c p i p 协议模型 a b s t r a c t a b s t r a c t t h en e t w o r ki n f o r m a t i o ns e c u r i t yp r o b l e m sa tp r e s e n ta t t r a c tt h ea t t e n t i o no f p e o p l e ,a n d s e e m e s p e c i a l l yi m p o r t a n t i nt h ef i n a n c i a l ,c i v i la v i a t i o n a n d t e l e c o m 加u n jc a t i o n ,a n do t h e rk e ya p p l i c a t i o ns y s t e m s av a r i e t yo fn e t w o r kp r o t o c o l a n a l y s i st o o l si n c l u d i n gs n i f f e r a r i s ef o rr e a l t i m eo b s e r v a t i o nn e t w o r ks t a t u s ,t h e n e t w o r km a n a g e m e n ta n dn e t w o r kf a u l t sr u l e do u t m yn e t w o r kp r o t o c o la n a l y s i s p l a t f o r i l lb e l o n g st oo n eo f t h en e t w o r ks n i f f e r s m yn e t w o r kp r o t o c o la n a l y s i sp l a t f o r mi sd e v e l o p e do nt h ew i n d o w sp l a t f o r m u s i n gw i n p c a p ,m a i n l yr e s p o n s i b l ef o ri n t e r c e p t i n gn e t w o r kp a c k e t sw h i c hf l o w i n g t h r o u g ht h ec o m p u t e rn e t w o r ka d a p t e r , a n dt h e nu s i n gt h ei n t u i t i v ei n t e r f a c e t od i s p l a y c o n t e n t so ft h ef r a m e s ,a n a l y z i n gt h em e a n i n go fe a c h f i e l do ft h ep a c k e t s i n a c c o r d a n c ew i t ht h ec o r r e s p o n d i n gp r o t o c o l s t h ep l a t f o r mp r o v i d e su s e r sw i t ht h e u n d e r l y i n gc o m m u n i c a t i o n d a t af o rf b r t h e rl e a r n i n g ,m a s t e r i n ga n dr e s e a r c h i n g n e t w o r kc o m m u n i c a t i o n s n e 铆o r kp r o t o c o la n a l y s i sp l a t f o r mi sd i v i d e di n t ot h r e ef u n c t i o nm o d u l e si n w h i c hc a p t u r em o d u l ei st h eb a s i s ,d i s p l a ym o d u l ed e a l sw i t ht h ep a c k e t sw h i c h c a p t u r em o d u l eg o t ,a n a l y s i sm o d u l ec h o o s e sp a c k e tf r o md i s p l a ym o d u l e sp a c k e t s 1 i s t t h em r e em o d u l e s r e l a t i o n s h i pa r ep r o g r e s s i v e ,t h e ya r em u t u a l l yd e p e n d e n ta n d i n d 印e n d e n t c a p t u r em o d u l ei s r e a l i z e dm a i n l yi nw i n p c a p ,t or e a l i z ed i s p l a ya n d a n a l y s i s m o d u l e sn e e d sa d v a n c eu n d e r s t a n d i n go ft h es t r u c t u r e s o ft h en e t w o r k p r o t o c o l sa n dt h ed e a l tm e t h o d s i np r o g r a m m i n g t h ep l a t f o r mh a sb e e ni m p l e m e n t e di nn e t w o r ke x p e r i m e n t s t h r o u g ho b s e r v i n g m ep a c k e t sc a p t u r e d ,p e o p l ec a nl e a mm o r ea b o u tt h ep r o t o c o l s a n de x p l o r et h e a d v a n t a g e sa n dd i s a d v a n t a g e so ft h e m i ta l s ov e r i f i e st h ep l a t f o r m ss i m p l e , e a s yt o u s e f 瓠te x e c u t i o na n dh i g ha c c u r a c ya n de f f i c i e n c y i na n a l y i n gp r o t o c o l s t h e p l a t f o r mh a ss o m es i g n i f i c a n c ei nt h en e t w o r kp r o t o c o la n a l y s i sa n dn e t w o r ks e c u r i t y k e yw o r d s :w i n p c a p ,p a c k e t sc a p t u r e ,e t h e r n e tf r a m e ,t c p i pp r o t o c o lm o d e l i i 第一章绪论 第一章绪论 用户在进行网络管理和网络监测时都要使用网络协议分析工具,目前,网 络协议分析工具的种类众多,功能各异,在分析网络协议的同时还提供了许多 额外的功能,但是由于这类工具大多数都为商业软件,没有提供源代码,因此 用户若想做进一步的开发研究可能会遇到困难。本文在充分了解网络协议分析 工具的发展状况后,自行开发了一个操作界面简单的网络协议分析平台,在充 分、准确地解析各种网络协议的同时,还为用户扩展解析协议的类型提供了便 利的a p i 接口。本章先简单介绍了网络协议分析平台的研究背景,接下来讨论 了网络协议分析工具在国内外的研究现状,最后描述了本文的整体内容与结构 安排情况。 第一节研究背景 现今,网络已经在世界上无处不在,上至天文,下至地理,凡是和人们生 产、生活、学习相关的衣食住行,以及教育、军事、医疗、交通、经济、政治 等都离不开网络的支持。计算机网络已经成为人们数据通信的主要方式,网络 相关技术的快速进步极大地提高了人们通信的效率,并带动各行各业也开始蓬 勃发展。网络的应用覆盖面如此之大,网络方面出现的问题所带来的影响也会 非常广泛和深远,例如网络信息安全就是其中一个重要方面。计算机网络通信 都是通过同轴电缆、光纤等媒介,利用交换机和路由器转发来进行数据传输的, 这些数据都要先封装在相同的协议内,然后再在媒介上传输。在数据传输的过 程中,只要捕获媒介上传输的各种协议数据包,再按照协议格式解析后,即可 获得封装在内的数据信息,进而可以监听和截获本局域网内的通信数据,这整 个的捕获和解析过程就是网络嗅探( 网络监听) 技术。在不同的网络环境中, 由于网络的组网方式各异,使用的设备种类也不尽相同,因此网络嗅探技术又 可以分为基于网络适配器混杂模式、基于地址解析协议( a r e ) 欺骗、基于中间机 和欺骗交换机缓存【l 】等几种嗅探技术。 经过对网络嗅探技术解析出的数据信息做进一步分析和处理后,网络的管 1 第一章绪论 理者就可以检测和跟踪网络中的数据【2 1 ,完成监测网络流量、查找网络漏洞、发 现并排查网络故障等工作;同时网络黑客也可以进一步探查网络中与用户相关 的敏感性信息,如用户名和密码等,然后进行网络攻击或者盗取资料等不法活 动。无论是用于网络管理还是网络攻击,网络嗅探技术本身并无过错,关键在 于使用者如何选择。由此可见,网络嗅探技术是网络安全方面的重要基础,网 络安全涉及网络技术和网络管理等多个方面,一般需要研究通信网络上传输数 据的完整性、保密性和真实性等内容【3 】。 第二节网络协议分析工具的研究现状 网络嗅探技术多用于局域网( 如以太网) 中【4 1 ,日益广泛的网络应用使得人 们越来越关注网络安全问题,尤其是近些年以国家为单位,针对网络所进行的 监测、获取数据等信息活动更是快速增加。各国之所以对网络信息安全如此重 视,是因为一方面可以打击网络犯罪和网络恐怖活动,另一方面还可以保护本 国信息安全,逐渐建立和完善网络信息安全方面的法律制度,最终达到为网络 信息安全提供更加可靠的法律保障的目的;国内外目前对网络安全的研究主要 集中在密码信息、安全协议技术和系统结构安全技术等几个方面【5 】【6 1 。 网络协议分析器是利用网络嗅探技术实现的网络分析系统,具有嗅探器和 协议分析器两种类型,一般纯软件实现的网络协议分析器叫做嗅探器( 如 l i n u x s n i f f e r 、d s n i f f , s n i f f e rp r o 等) ,软硬件结合实现的网络协议分析器称为协 议分析器( p r o t o c o lo fa n a l y z e r ) 。嗅探器和协议分析器都用于网络协议分析,两 者实现的功能实际上并无区别,一般场合中并不予以区分。本文所实现的网络 协议分析平台即属于嗅探器,是使用w i n p c a p 实现的一款软件,采用基于网络 适配器混杂模式的嗅探技术,主要利用计算机的网络接口( 一般为网络适配器) 捕获在网络中传输的数据信息。协议分析器可以使用专门的硬件完成网络数据 采集和捕获分析等操作,实时性更好,在协议解码和数据分析等方面都优于嗅 探器。目前市场上的协议分析器主要分为手提式和分布式两种,前者是单机设 备软件,可以安装在个人电脑上;后者主要由各网络点上的监视探测器和网络 操作中心的控制台两部分组成,一般用于大型企业实现网络集中监控【6 1 。 除了网络嗅探器和协议分析器等网络协议分析器外,还有一些更高层次的 第一章绪论 网络分析工具,例如工作在应用层的c h a r i o t 软件,它通过使用一些基准的流量 分析网络数据,据此测试网络性制3 1 。 本文实现的网络协议分析平台就是基于网络嗅探技术的一种网络嗅探器, 提供了全面、准确分析网络协议的功能和方便的扩展接口,为人们在网络信息 管理和网络安全方面的研究提供了基础平台。网络协议分析工具目前正在向智 能化以及全面化的方向发展,例如可以在网络协议分析工具中加入网络管理和 智能专家等功能,另外可以结合其他网络技术,响应新的网络需求,进一步开 发其他网络功能;考虑到网络通信正朝着移动网络通信的方向发展,新时期的 网络协议分析工具还要具有移动性,以便在各种场合下的网络数据维护、现场 分析和故障诊断等方面发挥更大的作用。 第三节本文的内容与结构安排 本文实现的网络协议分析平台为一款纯软件,没有涉及到硬件方面的内容。 捕获数据包的软件实现方法有很多,但是在选择网络协议分析平台的开发方法 时,经过对平台需要实现的功能、平台的应用环境以及开发平台的时间和复杂 度等要素充分考虑后,本文选择在w i n d o w s 操作系统下的m i c r o s o f tv i s u a ls t u d i o 6 0 集成环境中使用m f c 编写网络协议分析平台的总体架构,利用w i n p c a p 实 现平台的捕获网络数据包功能。本文的组织结构安排及各章节的内容简介如下: 第一章绪论;这是整篇论文的概述,从网络嗅探技术、网络安全等方面介 绍了本文开发的网络协议分析平台的研究背景,简单描述了网络协议分析平台 的国内外研究现状,分析了网络协议分析平台的研究意义。 第二章网络协议分析平台的功能设计;概括了网络协议分析平台的整体功 能,并从功能设计的角度阐述网络协议分析平台应该划分为捕获、显示和分析 数据包三个功能模块,对各个模块的功能设计理念和框架进行了详细描述,后 面的第三章和第四章内容是对三个功能模块的具体分析,因此第二章主要为后 续章节对平台的进一步扩展分析打下了基础。 第三章网络协议分析平台捕获数据包模块的实现方法;按照第二章对网络 协议分析平台进行的功能划分,介绍捕获数据包模块实现时可以采用的各种方 法,描述依照开发条件和实现功能的约束选择w i n p c a p 作为数据包捕获方法的 第一章绪论 理由和过程,然后给出w i n p c a p 的相关概念等内容作为具体实现捕获数据包模 块时的理论依据。 第四章网络协议分析平台显示和分析数据包模块问题研究;依据第二章中 对网络协议分析平台的功能划分,显示数据包模块和分析数据包模块的处理对 象都是各种网络数据包,因此将这两个模块放在一章内进行讲述,依次分析显 示数据包模块和分析数据包模块在解析网络协议时遇到的问题,同时给出c + + 编程时的解决办法,并简单介绍了这两个模块的功能扩展方法。 第五章网络协议分析平台的具体实现;经过前几章的理论准备后,在这一 章介绍网络协议分析平台的具体编程实现过程。这一章先介绍了网络协议分析 平台的开发环境和开发工具的配置情况,然后分别针对平台的整体软件框架的 搭建以及三个功能模块的具体实现过程,结合具体的函数代码进行详细讲解, 为人们后续扩展网络协议分析平台的功能提供良好的基础和平台。 第六章网络协议分析平台的应用;网络协议分析平台实现后,即可立刻投 入使用,这一章先介绍了网络协议分析平台的安装和使用方法,然后将平台应 用在各种网络环境中,通过分析平台捕获的数据包来进一步学习和研究网络协 议,了解网络通信的过程,掌握网络状况,同时也从侧面完成了对网络协议分 析平台的功能测试和验证。 第七章总结和展望;总结了本文完成的所有相关工作,归纳分析了网络协 议分析平台的缺点和不足,对平台的进一步开发提出了改进建议,同时展望了 网络协议分析平台将来的研究方向和目标。 4 第二章网络协议分析平台的功能设计 第二章网络协议分析平台的功能设计 网络协议分析平台最基本的功能是以界面的形式显示捕获到的网络数据包 各字段的详细内容,平台实现这个功能的工作流程可以归纳为:从网络适配器 获取网络数据包一将数据包送入网络协议分析平台的数据包列表中一显示某个 数据包的详细内容【7 】,并由此可以推出网络协议分析平台按照功能可以划分为捕 获数据包、显示数据包和分析数据包三个模块。捕获、显示和分析数据包三个 模块之间分工明确,却又互相依赖,显示数据包模块依赖于捕获数据包模块, 而分析数据包模块则依赖于显示数据包模块,三者的关系如图2 1 所示。 i 捕获数据l、i 显示数据11 分析数据l | 包模块广1包模块广1包模块 i - ji _ ji - j 图2 1 网络协议分析平台的各个功能模块间关系 图2 1 中的显示数据包模块和分析数据包模块的处理对象都是捕获数据包 模块捕获的网络数据,显示数据包模块根据具体的网络协议显示所有网络数据 的简要信息,分析数据包模块则负责显示单个网络数据包的所有字段的值,并 分析字段意义,下面针对这三个模块的具体功能设计进行简单介绍。 第一节捕获数据包功能模块 本文实现的网络协议分析平台的使用对象主要面向普通计算机用户,从网 络组成和设备条件两方面综合考虑,选择的网络嗅探技术是基于计算机上的网 络适配器混杂模式的嗅探技术,因此,安装在普通计算机上的网络协议分析平 台要想捕获流经网络适配器接口的数据包,首先要保证主机的网络连接正常, 其次要保证网络适配器工作在合适的模式下【1 】【7 】。 网络协议分析平台主要应用在局域网以太网环境中,以太网有共享式和交 换式两种类型【8 】,共享式以太网使用共享信道传输数据包,所有连接在同一信道 中的主机都采用一定的媒介访问控制方法( 如c s m a c d ) 争用信道资源,因此, 工作在一台主机上的网络协议分析平台可以捕获到同一信道中发自或发往其他 第二章网络协议分析平台的功能设计 主机的数据包;而交换式以太网采用点到点的全双工通信方式,除了广播数据 包( 如a r p 报文) 外,一台主机无法接收到非本机的通信数据,此时,工作在 这些主机上的网络协议分析平台也只能捕获和解析本机通信的数据包,捕获数 据量大大减少,数据里携带的网络信息也相应减少,单凭分析本机的网络数据 可能无法了解整个网络的通信情况,因此在交换式以太网中,网络协议分析平 台在网络实时分析中的作用大打折扣。交换式以太网中的主机要想捕获其他主 机的网络通信数据,只能采取基于a r p 欺骗( 通过发送a r p 报文伪造p 地址 和m a c 地址的映射) 等嗅探技术【4 】,不过a r p 欺骗是将本机伪装成另一台主 机,在这个过程中发往另一台主机的数据包都会发至本机,若本机持续欺骗, 则会导致对方通信中断;因此,在本机使用a r p 欺骗“看”过其他主机的数据 后,最好再将数据转发给相应主机,这样才能达到既了解网络通信状况,又避 免造成网络通信中断的双重目标【9 】。本文中实现的网络协议分析平台主要工作在 共享式以太网环境中,没有加入对交换式以太网中的处理部分。 即使在共享式以太网中,也并不是就保证能够获取其他主机的数据包,因 为这还和主机上安装的网络适配器的工作模式有关。网络协议分析平台捕获数 据包的功能主要由网络适配器来完成,而以太网环境下的网络适配器有广播、 组播( 广播和组播模式分别表示能够接收网络中的广播和组播信息) 、直接( 只 接收发给本机的数据) 和混杂( 网络适配器工作在监听状态,可接收所有流经 网络适配器的通信数据) 等几种工作模式【7 ,当网络适配器接收到网络数据时, 要先查看工作模式,然后再判断网络数据是否符合条件,若符合则产生中断信 号通知c p u 接收该数据【1 0 】;若不符合则直接忽略,转而处理其他网络数据。网 络适配器可以工作在混杂模式的这一硬件特点为网络协议分析平台的实现提供 了物理基础,因此,安装有网络协议分析平台的主机只有工作在共享式以太网 环境中,网络适配器工作模式为混杂模式,才能在网络管理等活动中发挥更大 的作用。 对网络协议分析平台来说,捕获数据包模块是显示数据包模块和分析数据 包模块实现的基础和前提,只有捕获数据包模块正常并良好地工作,才能从网 络上获得完整的数据包,然后才能对数据包做进一步的处理,如显示数据简要 信息和分析数据结构等。捕获数据包的实现方法种类众多,只是无论采用哪种 方法,它们捕获数据包的通用工作流程却大致相同,具体如图2 2 所示。 第二章网络协议分析平台的功能设计 图2 2 捕获数据包模块的通用工作流程 由图2 2 可以看出,无论采取何种方法捕获网络数据包,都要首先做好准备 工作,提前搭建好软件开发环境和平台,下载并安装相应的网络驱动和组件, 设置好各种相关的网络设备参数等内容,接下来以直接或混杂模式打开网络适 配器,利用一些特定函数或a p i 接口等方法捕获流经网络适配器的数据包【7 】。由 网络协议分析平台捕获数据包模块从网络中获得的数据包要存储在主机中的特 定文件中,这样其他功能模块( 如显示和分析数据包模块) 才能对文件中存储 的数据包采取进一步的处理工作,以完成对网络协议分析平台的整体功能实现。 通信网络中的数据包种类纷繁复杂,网络协议分析平台的捕获数据包模块 需要将捕获的网络数据存储在主机内,这个过程的执行会占用主机的系统资源, 因此为减少系统开销,提高捕获数据包的质量和效率,一般会在开始捕获之前 根据用户的需求设置好过滤条件,然后利用各种捕获方法中自带的或由程序员 自行开发的过滤器过滤掉无用的数据,只在主机中保留用户想要的那一部分。 第二节显示数据包功能模块 就在网络协议分析平台的捕获数据包功能模块将捕获到的数据存入文件的 同时,显示数据包功能模块开始了它的工作。显示数据包功能模块主要负责从 文件中提取网络数据,并按照这些数据包各自的网络协议类型显示它们的简要 信息,用户通过观察显示数据包功能模块显示的信息内容,可以从整体的角度 实时监测网络的运行情况,针对具体网络问题采取相应的处理方法。 网络协议分析平台的显示数据包功能模块一般以列表的形式存在,列表中 显示网络数据包的捕获时间以及能够代表网络数据包主要特征的一些字段内容 等,这些字段由捕获到的数据包的具体协议类型决定。不同类型的网络中封装 数据的协议类型也有所不同,显示数据包列表中显示的内容也不尽相同。本文 第二章网络协议分析平台的功能设计 实现的网络协议分析平台主要应用在以太网环境中,因此显示数据包功能模块 主要依据以太网的帧格式进行显示。以太网帧具有e t h e m e tv 2 和8 0 2 3 两种帧 格式,在显示数据包模块中需要加以区分( 即需要显示帧类型) 。 网络协议分析平台的显示数据包功能模块需要显示各个网络协议的重要字 段内容,在此需要先了解各种网络协议的报文结构。目前,计算机网络具有o s i ( o p e ns y s t e m si n t e r c o n n e c t i o n ,开放系统互连) 七层模型和t c p i p 协议模型【8 】, 二者的对应关系如图2 - 3 所示,图2 3 中还简单给出了o s i 模型中各层的功能。 o s i 七层模型t c p i p 参考模型 应用层:向终端用户提供服务,如文件 应用层 传输和电子邮件等 表示层:向应用层提供服务,如实体管 理、交换和控制等 会话层:在应用层之间提供通信的控制 无对应层 结构以及同步服务等 传输层:提供端到端可靠的信息交换和 传输层 数据传送、差错控制和流量控制等 网络层:为网络两端用户提供逻辑信道互联网络层 数据链路层:根据必需的同步、信息和 差错控制调节发送数据块,提供可靠的 信息传输 网络接入层 物理层:提供数据链路实体间建立、维 持及释放网络链路的有关机械、电气方 面的功能和规程 图2 3o s i 七层模型和t c p i p 协议模型的对应关系 以太网帧主要采用t c p i p 协议模型,网络协议分析平台在处理以太网帧时, 需要按照t c p i p 模型抽丝剥茧地逐层进行分析。为此,显示数据包功能模块按 照t c p i p 协议模型的分层结构,简要显示出各层协议的关键信息,这些关键信 息一般都选择能够标识本层协议或上层协议的字段,或者是用户比较关注的协 议的重点字段,例如在列表中显示网络数据包时,对它的网络接入层一般会显 示m a c 地址和类型字段,对它的网络层( 如i p 协议) 一般显示i p 地址和上层 协议字段所标识的协议类型,对它的传输层一般显示标识应用层协议类型的端 口字段以及用户较关注的标志字段,对它的应用层则一般显示应用层协议类型 和用户关注的数据内容等。 网络协议分析平台的显示数据包功能模块的操作对象是捕获数据包功能模 第二章网络协议分析平台的功能设计 块捕获并存入主机文件中的网络数据包,它显示出来的数据包简要信息则为接 下来分析数据包功能模块的操作提供了基础。 第三节分析数据包功能模块 网络协议分析平台的捕获数据包功能模块所进行的捕获工作,以及显示数 据包功能模块所执行的显示工作,二者都是批量进行的,也就是说这两个功能 模块的工作性质一般都是在短期内处理大量的数据;而且只要开始捕获网络数 据,捕获和显示数据包功能模块就开始自动执行工作,不需要单独的触发条件。 分析数据包功能模块负责将网络数据按照相应的协议格式详细解析出每个字段 的内容和意义,在网络协议分析平台中必须划分一个区域放置解析结果,若同 样将这个功能模块设计成批量处理数据的模式,那么在分析区域中就会显示捕 获到的所有网络数据的解析结果,这样用户要想查看显示列表中某个数据包的 详细信息,只能到分析区域中去寻找,既耗时又耗力;若考虑将每个数据包的 解析结果存入文件中,则会占用太多的系统资源,用户查找时同样困难重重; 为此,分析数据包模块不能设计成批量处理的工作形式,也不能自动执行,可 以考虑利用现有的显示数据包模块实现的数据包显示列表,设计某种触发机制, 使分析数据包模块有选择地解析单个网络数据包的具体结构,解析结果也并不 做存储等处理。 显示数据包功能模块将数据包的简要信息显示在了列表中,分析数据包功 能模块工作的触发行为可以设置成用户单击列表中的数据包这一动作。用户选 中哪个数据包,分析数据包功能模块就分析哪个数据包,并在分析区域给出解 析结果。 若捕获数据包功能模块是网络协议分析平台的基础,那么分析数据包功能 模块就是该平台的核心。网络协议分析平台最终显示给用户的就是网络数据包 的详细内容,这是平台最根本要实现的功能,这也是网络协议分析平台对于用 户来说最有价值的一部分。网络协议分析平台只有将网络数据包的解析结果正 确呈现给用户,用户才能据此了解网络情况,排除网络故障,进行网络管理; 一旦解析内容不正确,将会对用户造成误导,引发连锁反应,进而使网络协议 分析平台彻底失去在网络管理中的作用和地位。 第二章网络协议分析平台的功能设计 分析数据包功能模块对网络数据包的分析要做到全面、准确和具有可扩展 性等。即使在局域网内,网络中传输的协议种类也多种多样,作为一个网络分 析工具,网络协议分析平台至少要能解析常见的网络协议类型,尽量扩大协议 种类的覆盖面,以满足用户在不同的网络应用中有选择性地观察一些特定的协 议报文。如今网络发展迅速,许多以往的通信协议为适应网络的发展状况都做 了相应的调整或替换,因此网络协议分析平台除了要识别更多的网络协议类型 外,同一种协议的不同版本也是分析数据包功能模块需要重点注意的地方。衡 量网络协议分析平台性能的另一个重要方面就是准确性【7 1 ,它主要是指分析数据 包功能模块在解析网络数据包时,按照网络层次了解各层协议类型后,需要详 细解释每层协议数据的每个字段的意义,而且要依照具体协议( 例如网络层若 是i p 协议,不能按照a i 冲协议解析) 的结构解释,同一个字段的内容不能拆开 来分析,需要按位分析的标志位等字段也不能合并在一起解析,除此之外,还 要准确掌握同一字段的不同值所代表的意义。目前计算机网络方面的相关技术 和协议等还在发展和日趋完善当中,为此网络协议分析平台也不能是一成不变 的,要与时俱进,时刻关注网络的研究进展,据此增加、删除或修改一下针对 某些协议类型的解析情况。为此,在设计网络协议分析平台分析数据包功能模 块时,还要考虑到为后续开发提供友好的接口,为将来扩展新的协议解析功能 打下良好的基础。 网络协议分析平台的三个功能模块互相独立又互相联系,共同构造出了该 平台的功能结构。本章只简单介绍了三个功能模块的设计方法和理念,给出了 这些功能模块实现的功能以及需要达到的目标,在本文接下来的章节中,会依 据这些设计理念和方法,具体选择捕获、显示和分析功能模块的实现方法,阐 述每个模块的实现过程。 第三章网络协议分析平台捕获数据包模块实现方法 第三章网络协议分析平台捕获数据包模块实现方法 网络协议分析平台主要应用在w i n d o w s 系统平台下,w i n d o w s 平台下捕获 数据包的方法有很多【1 1 】,本章先对这些方法的概念和实现依次进行了简单介绍, 比较它们的优缺点,然后阐述了选择w i n p c a p 作为网络协议分析平台的开发工 具的原因,最后具体描述了w i n p c a p 的基本概念和应用等内容。 第一节w in d o w s 平台下捕获数据包的方法简介 w i n d o w s 操作系统的内核中没有提供直接访问计算机网络适配器流经的数 据包的标准a p i 接口,需要增加w i n s o c k 、n d i s ( 网络驱动接口标准,n e t w o r k d r i v e ri n t e r f a c es p e c i f i c a t i o n ) 和w i n p c a p 等驱动程序或网络组件才能完成【3 1 。上 述几种方法在w i n d o w s 中的位置以及其与t c p i p 协议的网络结构映射关系如图 3 1 所示。 二二匕i w i n s o c kl l 竺!| lw i n p c a p 二二匕l t 二二】二 图3 1w i n d o w s 系统与t c p i p 协议的网络结构映射关系 由图3 1 可以看出,w i n s o c k 和w i n p c a p 都处于t c p i p 协议模型中的应用 层和网络层之间,n d i s 则处于网络层和数据链路层之间。 w i n s o c k ( w i l l d o w ss o c k e t s ) 是m i c r o s o f tw i n d o w s 的网络编程规范,由 b e r k e l e ys o c k e t s 扩展而来,包含了全部的b s ds o c k e t s 库函数以及针对w i n d o w s 的扩展库函数,它提供的s o c k e t s 实际上是一组应用程序接口,把复杂的t c p i p 协议栈隐藏起来,用户只需调用a p i 函数即可编写复杂的网络应用程序,不需 第三章网络协议分析平台捕获数据包模块实现方法 要了解底层的协议栈工作细节,w i n s o c k a p i 可以捕获和分析网络层以上的数据 ( 无链路层信息) ,不过只能捕获本机发出的广播数据,本机发出的其他数据则 无法捕引引。另外,w i n s o c k 并没有提供过滤函数,若想利用w i n s o c k 实现过滤 功能,其中一种解决办法是使用s p i 技术,自行开发动态链接库分层提供者l s p , 在l s p 中加入监测、检查应用程序套接字的函数,根据用户设定的过滤规则监 控应用程序,然后将l s p 安装到w i n s o c k 协议目录中,这样就能实现应用层的 过滤功能- r t l 2 】。即便如此,w i n s o c k 要想实现有选择性地接收数据包,需要将 全部m 数据包接收完毕后再进行后续过滤,因而系统开销会很大。 n d i s 指定了网络各个分层结构之间的标准接口,它支持的驱动按照t c p i p 协议模型从上到下依次为协议驱动、中间层驱动和微端口驱动【1 3 】,由图3 1 可以 看出,所有流经网络适配器的数据包都必须经过n d i s 中间层驱动,因此可以利 用该驱动捕获所有应用程序的网络数据包,还可以在其中添加过滤规则和算法 实现数据包过滤功z 日匕l - , :微端口驱动即网络适配器驱动,可以管理网络适配器并 为上层网络驱动提供接口 _ 7 1 。开发n d i s 中间层驱动可以实现捕获和分析、过滤 甚至加密或修改网络数据包,能够实现的功能十分全面和强大,但是由于开发 过程中涉及到许多驱动和操作系统内核的内容,编程十分复杂,考虑到课题完 成时限和任务目标等问题,这里没有采用该种方法。 w i n p c a p ( w i n d o w sp a c k e tc a p t u r e ) 是w i n 3 2 平台下进行数据包捕获与分析 的开源库,是u n i x 下的l i b p c a p 移植到w i n d o w s 下的产物,w i n p c a p 可以发送 和捕获原始数据包,还能在数据包发往应用程序之前按照用户指定的规则进行 过滤,同时还可收集并统计网络流量信息【l4 1 。由图3 1 可以看出,w i n p c a p 处于 w i n d o w s 系统中的应用程序和n d i s 之间,独立于w i n d o w s 网络协议栈而独自 工作,和w i n s o c k 相比,w i n p c a p 的应用程序无法享受w i n d o w s 协议栈对上层 数据的包装功能,需要处理数据包的每个字段,因此编程的难度会有所增加; 和n d i s 相比,w i n p c a p 不能像n d i s 一样直接从网络适配器获得原始网络数据 包进行过滤或修改数据包等操作,也不能阻塞、过滤或控制其他应用程序的通 信【l4 1 ,只能监听共享网络中的通信数据并将其复制一份交给上层的应用程序, 因此它无法实现基于内核的包过滤,无法提供如个人防火墙和网络流量控制等 服务;不过w i n p c a p 发送和接收的数据包更加原始,功能也更加灵活,和其他 捕获数据包技术相比,w i n p c a p 无论从编程的易行性、捕获数据包的完整性和广 第三章网络协议分析平台捕获数据包模块实现方法 泛性,还是过滤功能的专业性( 具有专门的过滤处理模块) 以及程序的移植性 等方面,都能达到很高的性能和功能水平,对于本文要实现的网络协议分析平 台来说,利用w i n p c a p 所能开发出的功能足以满足要求,因此最终选择w i n p c a p 作为开发网络协议分析平台捕获数据包功能模块的方法。下面介绍w i n p c a p 的 基本概念和典型应用等具体内容。 第二节win p c a p 的基本概念和典型应用 w i n p c a p 是基于b p f ( b s dp a c k e tf i l t e r ) 模型和l i b p c a p 函数库开发而成的 数据包捕获体系架构,主要由一个内核级的数据包监听设备驱动程序、一个低 级动态链接库( p a c k e t d 1 1 ) 和一个高级动态链接库( w p c a p d 1 1 ) 组成【8 】【1 1 ,并且 与l i b p c a p 兼容,二者使用的函数库大部分都相同,只是应用平台不同( 前者应 用在w i n d o w s 平台,后者应用在u n i x l i n u x 平台) ,它们各自的详细结构如 图3 2 所示【1 5 j 【1 6 j 。 l i b p c a p 结构w i n p e a p 结构 用户应用程序用户应用程序 用 i 户 1 直接连接 级 用户缓用户缓 i 用户缓用户缓 冲区l冲区2 直接连接 冲区l冲区2 n p f 的接口; w p c a p 2 调用 膏 b p f 的接口 j;d l l d l l p a c k e t d l lw p c a5 d l lw p e a 干 l i b c 库 、t c k e t d l 入 i p ; 、核心 统计 儇 、缓矽 心 夕区2 引擎 其 级 气簪下千 他 核,凸 缓冲i o l d l 缓冲1h o l d 缓 区1 | 冲区 区硼冲区卜 其 i 他 ethertype 帧属于哪一种标准。这里需要注意的是,网络在传输数据包时,会先把数据包 变成字节流,然后再由硬件将字节流变成比特流,这时每个字节一般先从最低 位发送,因此像图4 1 中2 字节的帧类型或长度字段,网络协议分析平台接收到 的结果是网络字节顺序( n b o ) ,要先转换成主机字节顺序( h b o ) 【8 】【2 l 】,然后 再判断这个字段的值,在v i s u a lc + + 中可以使用h t o n l 0 、n t o h l o 、h t o n s o 和n t o h s o 四个函数进行字节顺序转换( 其中前两个函数用于4 字节l o n g 类型数据,后两 个函数用于2 字节s h o r t 类型数据) 。因此,当转换成主机字节序的 n t o h s ( f r a m e 的值大于帧中数据部分的最大长度( )_protocolethertype)0 x0600h 时,为e t h e m e tv 2m a c 帧,反之则为8 0 2 3 m a c 帧。 e t h e m e tv 2m a c 帧和8 0 2 3m a c 帧的数据部分都是按照t c p i p 协议模型 的层级进行划分的,只不过e t h e m e tv 2m a c 帧封装的数据为类型字段对应的网 络协议,8 0 2 3m a c 帧封装的则是l l c ( 逻辑链路控制) p d u ,在l l c 首部中 再指明网络层的协议类型。e t h e r n e tv 2m a c 帧和8 0 2 3m a c 帧的数据封装内容 对比以及l l c 首部如图4 2 所示。 图4 2e t h e m e tv 2m a c 帧和8 0 2 3m a c 帧数据封装内容对比图 1 6 屹 帧淼粼 璺2 h 乏 附 第四章网络协议分析平台显示和分析数据包模块问题研究 网络协议分析平台的显示数据包模块依据网络数据的帧类型进行分类处 理,若数据包为e t h e m e tv 2 帧,只需判断n t o h s ( f r a m e 的值protocolethertype) 即可知道上层协议的类型( 例如0 x 0 8 0 0 代表i p 协议,0 x 0 8 0 6 代表a r p 协议) ; 若数据包为8 0 2 3 帧,则进一步查看l l c 首部,因为帧首部为1 4 字节,获取的 l l c 首部数据为l l cp r o t o c o l = ( l l ch e a d e r 木) ( p k t ,再对 首部各data+14)llc 字段( 如图4 2 ) 进行判蝌2 2 1 ,当d s a p ( 目的服务访问点) 和s s a p ( 源服务 访问点) 的值均为0 x f f 时对应n e t w a r e 以太网帧,d s a p 和s s a p 的值均为0 x a a 时对应以太网s n a p 帧,除此之外,全部为纯8 0 2 3m a c 帧。n e t w a r e 以太网 帧和以太网s n a p 帧可分别再按照各自的格式进行判断,而纯8 0 2 3m a c 帧可 通过控制字段了解上层协议的类型。 由图4 2 可以看出,e t h e m e tv 2 和8 0 2 3m a c 帧在网络层、传输层以及应 用层的格式相同,因此网络协议分析平台的显示数据包模块对这两种帧的处理 在网络层以上都相同,不必再加以区分。网络层比较典型的协议有i p 、a r p 、i c m p 等,其中大多数应用协议都采用i p 数据报进行封装,因此显示数据包模块需要 显示i p 地址,另外通过判断i p 协议首部中i p p r o t o c 0 1 i p p r o t o c o l 的值可以了 解传输层所用的协议类型,这个也是需要显示的内容。传输层比较典型的协议 有t c p 和u d p 协议,二者均采用端口标识应用层协议,获得网络数据的传输层
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开学时考试题及答案
- 新鲜探讨广告设计师考试理念试题及答案
- 机械自动化试题及答案
- 2024年纺织品设计师创意生成方法试题及答案
- 三标管理试题及答案详解
- 初中生美术试题及答案
- 2024年纺织设计师专业知识试题及答案
- 广告设计师创新能力试题及答案
- 口语考试历年试题及答案
- 准备2024年考生的前期策划试题及答案
- 合伙入股协议合同范本
- 急救与心理技能(视频课)知到智慧树章节测试课后答案2024年秋中南大学
- DG-TG08-12-2024 普通中小学建设标准
- 冀教 七年级 下册 数学 第7章《平行线的性质》课件
- 《新媒体文案创作与传播(第2版微课版)》全套教学课件
- 征信异议申请书
- 隧道反坡排水、施工通风专项施工方案
- 【MOOC】《介入放射学》(东南大学)章节中国大学慕课答案
- 2024年05月北京北京银行博士后科研工作站招考(514)笔试历年参考题库附带答案详解
- 口腔放射类知识培训课件
- JTG H30-2015 公路养护安全作业规程
评论
0/150
提交评论