欢迎来到天天文库
浏览记录
ID:45756478
大小:1.17 MB
页数:29页
时间:2019-11-17
《Ethereal协议分析系统介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Ethereal协议分析系统介绍Ethereal是一个开放源码的网络分析系统,也是是目前最好的开放源码的网络协议分析器,支持Linux和windows平台。Ethereal起初rtlGeraldCombs发,随后rtl—个松散的EtheralI才I队组织进行维护开发。它目前所提供的强大的协议分析功能完全对以媲美商业的网络分析系统,自从1998年发布最早的0.2版本至今,人量的志愿者为Ethereal添加新的协议解析器,如今Ethereal已经支持五百多种协议解析。很难想象如此多的人开发的代码可以很好的融入系统中;并且在系统中加入一个新的协议解析器很简单,
2、一个不了解系统的结构的新手也可以根据留出的接口进行口己的协议开发。这都归功于Ehereal良好的设计结构。事实上由于网络上各种协议种类繁多,各种新的协议层岀不穷。一个好的协议分析器必需有很好的可扩展性和结构。这样才能适应网络发展的需要不断加入新的协议解析器。1Ethereal的捕包平台网络分析系统首先依赖于一套捕捉网络数据包的函数库。这套函数库工作在在网络分析系统模块的最底层。作用是从网卡取得数据包或者根据过滤规则取出数据包的子集,再转交给上层分析模块。从协议上说,这套函数库将一个数据包从链路层接收,至少将其还原至传输层以上,以供上层分析。在Linux系
3、统中,1992年LawrenceBerkeleyLab的StevenMcCanne和VanJacobson捉出了包过滤器的一种的实现,BPF(BSDRacketFilter)。Ubpcap是一个基于BPF的开放源码的捕包函数库。现有的人部分Unux捕包系统都是基于这套函数库或者是在它基础上做一些针对性的改进在window系统中,意大利人FulvioRsso和LorisDegioanni提出并实现了Winpcap函数库,作者称Z为NPR由于NPF的主耍思想就是來源于BPF,它的设计目标就是为windows系统捉供一个功能强人的开发式数据包捕获平台,希望在L
4、inux系统中的网络分析工具经过简单编译以后也可以移植到windows因此这两种捕包架构是非常现实的。就实现来说提供的函数调用接口也是一致的。Ethereal网络分析系统也需要一个底层的抓包平台,在Linux中是采用Ubpcap函数库抓包,在windows系统中采用winpcap函数库抓包2层次化的数据包协议分析方法取得捕包函数捕回的数据包后就需要进行协议分析和协议还原工作了。由于OSI的7层协议模型,协议数据是从上到下封装后发送的。对于协议分析需耍从下至上进行。首先対网络层的协议识别后进行组包述原然后脱去网络层协议头。将里面的数据交给传输层分析,这样一
5、直进行下去直到应用层IpI'TcpudpI'HTTPTFTP由于网络协议种类很多,就Ethereal所识别的500多种协议来说,为了使协议和协议I'可层次关系明显。从而对数据流里的各个层次的协议能够逐层处理。Ethereal系统采用了协议树的方式。上图就是一个简单的协议树。如果协议A的所有数据都是封装在协议B里的,那么这个协议A就是协议B是另外一个协议的儿子节点。我们将最低层的无结构数据流作为根接点。那么具有相同父节点的协议成为兄弟节点。那么这些拥有同样父协议兄弟节点协议如何互相区分了?Ethereal系统采用协议的特征字来识别。每个协议会注册自己的特征
6、字。这些特征字给口己的子节点协议提供可以互相区分开来的标识。比如tcp协议的port字段注册后。Tcp.port=21就可以认为是ftp协议,特征字对以是协议规范定义的任何一个字段。比如ip协议就可以定义proto字段为一个特征字。在Ethereal中注册一个协议解析器首先要指出它的父协议是什么。另外还要指出自己区别于父节点下的兄弟接点协议的特征。比如ftp协议。在Ethereal中他的父接点是tcp协议,它的特征就是tcp协议的port字段为21o这样当一个端口为21的tcp数据流来到时。首先ihtcp协议注册的解析模块处理,处理完之片通过查找协议树找
7、到自己协议下而的子协议,判断应该由那个子协议来执行,找到正确的子协议后,就转交给ftp注册的解析模块处理。这样由根节点开始一层层解析下去。由于采用了协议树加特征字的设计,这个系统在协议解析上由了很强的扩展性,增加一个协议解析器只需要将解析函数挂到协议树的相应节点上即町。3基于插件技术的协议分析器所谓插件技术,就是在程序的设计开发过程中,把整个应用程序分成宿主程序和插件两个部分,宿主程序与插件能够相互通信,并且,在宿主程序不变的情况下,可以通过增减插件或修改插件來调整应用程序的功能。运用插件技术可以开发出伸缩性良好、便于维护的应用程序。它著名的应用实例有:
8、媒休播放器winamp.微软的网络浏览器ie等。由于现在网络协议种类繁多,为了可
此文档下载收益归作者所有