2024年4月13日发(作者:)
Wireshark, Sniffer and Omnipeek
三款网络分析工具的比较
一、 网络分析软件概述
自从网络出现以来,网络故障就没有停止过。如何快速、准确地定位故障和保持网络
的稳定运行一直是人们追求的目标。为了分析网络故障的原因,一类专业的网络分析软件
便产生了。网络分析软件充当了网络程序错误的检修工具,开发人员使用它发现协议开发
中的BUG,很多人使用它监听网络数据,同时也是检查安全类软件的辅助工具。
网络分析软件从产生到现在已经经历了三个阶段:
第一阶段是抓包和解码阶段。早期的网络规模比较小、结构比较简单,因此网络分析
软件主要是把网络上的数据包抓下来,然后进行解码,以此来帮助协议设计人员分析软件
通信的故障。
第二阶段是专家系统阶段。网络分析软件通过抓下来的数据包,根据其特征和前后时
间戳的关系,判断网络的数据流有没有问题,是哪一层的问题,有多严重。专家系统不仅
仅局限于解码,更重要的是帮助维护人员分析网络故障,专家系统会给出建议和解决方案。
第三阶段是把网络分析工具发展成网络管理工具。网络分析软件作为网络管理工具,
部署在网络中心,能长期监控,能主动管理网络,能排除潜在问题。
二、 三款软件的特点
1. Wireshark 0.99.4
Wireshark是一款高效免费的网络抓包分析工具。它可以捕获并描述网线当中的数据,
如同使用万用表测量电压一样直观地显示出来。在网络分析软件领域,大多数软件要么晦
涩难懂要么价格昂贵,Wireshark改变了这样的局面,它的最大特点就是免费、开源和多
平台支持。
Wireshark几乎可以运行于所有流行的操作平台,如MS Windows、Mac OS、Linux、
FreeBSD、HP-UX、NetBSD、Solaris/i386、Solaris/sparc等等。尽管Wireshark可以
在很多操作平台使用,但它支持的传输媒介主要是Ethernet。只有Linux平台下Wireshark
支持802.11及Token Ring、FDDI和ATM。
Wireshark能够对大部分局域网协议进行解析,具有界面简单、操作方便、实时显示
捕获数据的优点。但Wireshark并不具有分析功能,当一个网络发生异常的时候,
Wireshark只会记录数据,它仅仅是一个测量工具,并不能操作网络,不发送数据包或者
做其它的主动动作。
Wireshark目前还存在着一个已知的严重BUG,当Wireshark运行时缓冲区出现内
存溢出将会终止。此BUG是由最初设计的界面和平台所决定,短期内无法解决。
2. NAI Sniffer Portable 4.7.5
NAI的网络分析工具Sniffer长期以来是网络分析类软件的王牌。Sniffer既有长期积
累的经验又存在长期延续旧体系导致的问题。长期的发展使得Sniffer具有很强的专业分析
能力,但是它一直延续DOS、WIN95时期的元素和较早期的技术,使得它只能在Windows
平台下使用。Sniffer具有简单的往外发包的功能,同时有几个辅助测试小工具如:ping、
finger、trace、dns lookup等。
Sniffer具有三大主要功能:1.协议解析(Decode)2.网络活动监视(Monitor)3.
专家分析系统(Expert)
Sniffer和Wireshark一样可以用来解析网络协议,而且支持的协议从局域网扩展到了
广域网,对无线网络也有了一定的支持。Sniffer的协议解析非常详尽,对协议的描述很有
层次感。尽管Sniffer的协议解析能力很强,但是它不能实时显示捕获的数据包,这一点在
协议开发人员用来查找问题时可能带来不便。
Sniffer的协议解析功能可以用来学习各种协议,查找网络故障。但实际上很多问题并
不象故障那么明显,比如网络慢或者丢包,单靠协议解析是很难发现的。这时候Sniffer
的网络活动监视功能可以直接看到网络的当前运行状况,一旦网络出现问题就可以很快被
发现。Sniffer用直观的图形实时显示网络的流量、会话、协议、包的大小、错误等信息。
Sniffer的专家功能是它最看重的功能,也是它最为出色功能。Sniffer的专家系统在
后台为我们工作着,一旦有触发条件产生便产生相应的动作,然后通过视听信号通知我们。
通过专家系统,Sniffer能够帮助我们评估网络的性能,比如,网络的使用率,网络性
能的趋势,网络中哪一些应用消耗最多带宽,网络上哪一些用户消耗最多带宽,不同协议
的流量状况等等
通过专家系统,Sniffer可以帮助我们评估业务运行状态,比如各个应用的响应时间,
一个操作需要的时间,应用带宽的消耗,应用的行为特征,应用性能的瓶颈等等。
通过专家系统,Sniffer可以快速地发现异常流量和网络攻击,这就为我们尽早采取措
施提供了帮助。Sniffer能够帮助我们做流量的趋势分析,通过长期监控,可以发现网络流
量的发展趋势,为网络何时改造升级提供建议和依据。
3. WildPackets OmniPeek 4.0
OmniPeek是网络分析软件的后起之秀,由于它设计时大量采用了Windows XP及
2000下的元素和比较流行的软件设计技术,并且更加注重网络软件的要求,面向国际化,
支持多语言,所以OmniPeek在使用上更为简洁方便和人性化,它支持更多新的技术和应
用。由于使用了新技术,OmniPeek有了很多的Plugin,能方便地扩展功能。与Sniffer
一样,OmniPeek除了能发送一些简单的数据包外,同样具备了三大功能:1.协议解析
(Decode)2.网络活动监视(Monitor)3.专家分析系统(Expert)。
OmniPeek能很好地支持无线网络,提供丰富的无线网卡混杂抓包模式的驱动程序,
是无线协议分析的利器。OmniPeek对千兆网络也有了很好的支持,无论是协议分析还是
网络监视都有很好的表现。
与Sniffer不同的是OmniPeek更重视视觉形象(Visualize),它的很多操作都用图形
化方式来完成。OmniPeek侧重于整体现象的分析,以“流(TCP/UDP通信对)”作为
对象来研究,使分析结果易于理解,大大提高了效率。OmniPeek的专家系统就是基于
“流”来分析的,对会话的整体分析较好,但在具体细节处略有不足。
OmniPeek集成了分布式专家(DNX)系统功能,它提供的Engine可以部署在网络
的各个部分。分布式专家系统通过一个控制台来控制多个Engine获取整个网络的状况,
控制台操作界面与普通的网络分析界面是一样的。通过OmniPeek的分布式专家系统,我
们可以将监控拓展到控制台无法直接到达的地方,可以使我们更全面地了解网络的运行情
况。
三、 三款软件的比较
1. 功能比较
Wireshark是典型的网络抓包工具,主要具备第一代网络分析软件的特点。随着软件
地不断更新,Wireshark也具有了一点简单的图形化的监视功能。Wirshark解析的协议主
要是局域网协议,它支持的介质也主要是Ethernet,功能比较单一,效率比较高。Wireshark
没有网络状态分析功能,对网络问题不能提供参考意见。
NAI的Sniffer功能涵盖了协议解析、网络监视和智能管理几个部分。Sniffer的协议
解析很详细,尤其对广域网协议的解析非常全面,但扩展性不是很强,新协议支持更新较
慢。Sniffer的网络状态监视功能也很强大,可以监视流量、带宽、协议、应用响应时间、
会话主机等信息,并且以图形的形式显示出来。Sniffer的专家功能非常细致,严格按照协议
进行分层,每个细节都有考虑。另外它对网络异常状况进行了分级,使我们可以容易找到
相应的问题。
OmniPeek的功能和Sniffer大致相同,也涵盖了协议解析、网络监视和智能管理几
个部分。OmniPeek在协议解析上没有Sniffer支持的协议多,但对无线和语音的解析功
能要比Sniffer强。OmniPeek专家功能没有Sniffer细致,功能没有Sniffer强大。
2. 使用界面
Wireshark启动后是一个灰色的界面,没有什么提示信息,当捕获操作开始后,界面
被水平分割成白色的三栏,这就是Wireshark的主要窗口。
Wireshark工具栏
上安放了一些常用的按钮。Wireshark的统计信息和网络状态都是点击相应功能菜单后弹
出的小窗口,它们独立于主要窗口,相互不受影响。由于Wireshark功能比较简单,所以
在主要窗口中能完成大部分功能,使用起来也是比较方便的。
Sniffer启动后保留上次关闭时的窗口状态,也没有什么提示信息。Sniffer的工具栏
按钮比较少,它把按钮分布到了不同的界面,使用时可以通过工具栏按钮打开操作界面,
在新的界面找到新的按钮,以此类推,总体感觉比较零散。Sniffer的每一个功能都有一个
窗口,这些窗口限制在主窗口内,可以任意排列,通过菜单可以在不同子窗口间切换。Sniffer
的子窗口中又有很多的tab可选页。众多的窗口众多的按钮和众多的可选页混杂在一起,
使得Sniffer看起来没有很好的组织结构,使用不太方便。
OmniPeek启动后首先映入眼帘的是它的Start Page ,整个界面具有Windows XP
的风格,图标显然符合统一的色调和风格,与Sniffer相比更具吸引力。OmniPeek的启
动窗口中没有保留上次关闭时的窗口,却提供了近期使用OmniPeek所作任务的快捷链接。
OmniPeek的启动
页就像是一个助手,上面有详细的文档链接和任务开始向导按钮,处处体现友善的界面。
接下来开始捕获操作,弹出一个窗口,这就是主要工作区。OmniPeek的设计大量应用了
Flat Button、TreeView、IE View等元素,这些元素在工作窗口全部体现出来了。窗口的
左边是所有捕获操作的树形结构,右侧是类似IE窗口的结果栏,中间是某一操作的进一步
分类。整个界面和操作显得很有组织性、高效性。
3. 操作细节
▲ 获取帮助
Wireshark只有一个简单的帮助窗口,在任何情况下通过菜单弹出的都是这一个窗口。
它的帮助内容很少,链接到网站上的帮助信息也不多,这是wireshark经常被抱怨的一点。
Sniffer有一套完整的帮助文档,在任何情况下可以通过菜单或F1键打开这个文档。
这个帮助文档有自己的组织结构,可以索引和查找,使用效率比较高。文档涉及的内容涵
盖了各个功能和操作,并且提供了相关联内容的链接。Sniffer帮助文档只是一个独立的参
考文档,它的内容也不能根据当前操作自动显示给用户。
OmniPeek的帮助信息非常人性化,包括向导、参考文档、资源等信息,我们可以很
轻松地获得各种帮助。OmniPeek还提供了很多的操作实例供参考,这些帮助既可以在
Start Page中找到,也可以在任何时候通过菜单或F1键弹出帮助文档。OmniPeek的帮
助文档与Sniffer一样可以查找索引等。
▲ 启动捕获数据包操作
Wireshark与Sniffer的启动捕获操作与设定捕获参数是独立的,使用时容易出现错
误。OmniPeek将启动捕获操作和设定参数集中在一起,使我们每次捕获之前都可以清楚
地了解我们是针对那些设定进行的操作,这样就避免了一些错误。
▲ 暂停、继续捕获数据包
Wireshark在捕获操作开始后就不能暂停捕获,只能停止当前捕获,然后开始新地捕
获操作。Sniffer中设置了暂停捕获按钮,我们可以很方便地暂停和继续一个捕获操作。
OmniPeek没有暂停按钮,但我们可以使用“Shift”按键和“Start Capture”按钮组合操
作来实现暂停和继续一个捕获操作。
▲ 自动滚动屏幕
Wireshark可以实时看见捕获的数据包,当我们需要看某一个包的具体内容时,只要
将自动滚屏按钮取消,点击该数据包就可以查看。需要滚屏时再将自动滚屏按钮按下即可。
OmniPeek也可以实时看见捕获的数据包,当我们需要看一个包的具体内容时,点击该数
据包就可以查看,OmniPeek会自动停止滚屏,需要滚屏时再点击自动滚屏按钮。Sniffer
不能实时查看捕获的数据包,也没有自动滚屏功能。
▲ 多捕获窗口
Wireshark的功能比较单一,没有多窗口功能。当一个捕获操作开始后,网卡就被独
站,不能进行另一个捕获操作(可以开启多个Wireshark程序来实现捕获多个网卡的操作)。
Sniffer虽然有多窗口功能,但同样不支持多个捕获操作同时进行。不过网络状态监视功能
可以同时实现。OmniPeek在多窗口操作上具有很强的优势,它可以实现多个网卡或一个
网卡的多种捕获条件的情况下同时进行捕获数据包的操作,让我们能掌握更多的信息。
▲ 数据包的排序
Wireshark、Sniffer、OmniPeek三款软件的协议解析界面设计几乎一样,都分概要
信息、详细信息和十六进制信息三个窗口栏,所不一样的就是字体不同和颜色不同而已。
Wireshark 的概要信息栏内的记录可以按任意列进行升序或降序排列,操作也很简
单,只要点击相应的列头就行了。Sniffer和OmniPeek的解码窗口都没有排序功能,只
能按照时间先后顺序排列数据包。
▲ 选择显示列
在Wireshark中要调整概要栏中显示的列的信息比较麻烦,必须从菜单中选择设定
“Preferences”后找到“Columns”项才能修改,并且要保存设置重新启动Wireshark
后才能生效。Sniffer的概要栏中调整显示列只要右键单击任一列的头部,在弹出的菜单中
选择“Display Setup”后进行修改,修改后的结果立即生效。OmniPeek中要调整概要栏
的显示列非常简单,只要右键单击列头就可直接选择。
▲ 创建过滤
Wireshark的Capture Filter和Display Filter是两个独立的单元,需要分别设定,且
语法有差别。Wireshark中创建Filter比较麻烦,要使用表达式进行创建,没有图形界面,
也不能从已获取的数据包中创建相关联的Capture Filter。Sniffer的Capture Filter和
Display Filter也是独立的,但它们的创建方式是一样的。在Sniffer中创建Filter比较直
观,打开创建对话后可以直接选择匹配项目,能够设定关于地址匹配、数据字节匹配和协
议匹配的组合规则。Sniffer没有提供已设置好的参考Filter,需要自己根据需要去设定。
OmniPeek中创建的Filter既可以用作Display Filter又可以用作Capture Filter。
OmniPeek创建Filter最为方便,它不但可以象Sniffer一样用直观的选择来设定与地址匹
配、数据字节匹配和协议匹配的组合规则,还可以设定按位匹配的规则。OmniPeek可以
在解码窗口中直接选取相关信息进行Filter设置,它还提供了许多已设置好的Filter供我
们使用,大大地方便了我们使用。
▲ 应用过滤器
Wireshark中要使用Capture Filter就必须在开始捕获数据包之前在“Options”中
进行选择,一旦捕获开始后就不能更改。Wireshark中不能保存Display Filter,每次使用
时必须重新编写表达式,它的Display Filter表达式可以从捕获的数据包中选择相关信息来
自动生成,比起Capture Filter的设定要容易得多,同时Display Filter可以随时被应用,
无论捕获数据包操作是否停止。
Sniffer中定义的Capture Filter的选用必须在开始捕获数据包之前选择,Display
Filter则要在停止捕获后使用。
OmniPeek中定义的Filter用于Display 时要在停止捕获后选用。与Sniffer不同的
是,OmniPeek在捕获数据包时可以更换Capture Filter,而Sniffer则不可以。
▲ 协议的解析
Wireshark可以解析大部分数据包,Sniffer支持的协议包是最多的,而OmniPeek
也支持很多的协议,同时还能解无线协议的包。
三款软件对包的解释各有特点:Wireshark的描述比较简单,Sniffer和OmniPeek
的描述比较详细。OmniPeek对不同的协议还可以弹出窗口进行进一步的描述。
另外Sniffer和OmniPeek可以显示每一个字节在包中的偏移位置,而Wireshark则
没有此项功能。
▲ 包的标记
Wireshark可以对选择的包进行标记以提醒我们的注意,它可同时对多个数据包进行
标记。Wireshark也可以将数据包设定为时间参考点,设定参考点后,此参考点以后的数
据包的发生时间将会改变,直到下一个时间参考点。Sniffer对选择的包进行标记的同时也
将此包设定成了时间参考点,但Sniffer只能设定一个参考点,参考点前后数据包的相对时
间都会发生改变。OmniPeek不能标记数据包,可以设定一个时间参考点,参考点前后数
据包的相对时间都会发生改变。
▲ 包的选择
Wireshark只能选中一个数据包。Sniffer可以选中任意个数据包,可以一个一个选择
也可以选择一定范围的数据包,可以将选择的数据包单独保存。OmniPeek不但能任意选
择数据包,而且能够选择与某个数据包相关联的数据包,能将选择的数据包单独保存。
▲ 查找特定数据包
三款软件都有很强的查找数据包的功能,都能够在数据包的概述、详细描述和十六进
制三栏中查找字符或十六进制数。Wireshark还能按Filter的规则进行查找。Sniffer则还
可以查找专家模式中的异常信息包。OmniPeek除了能查找字符和十六进制数外还可以查
找数据包内任意一个偏移位置的二进制数。
▲ 保存、打开文件
Wireshark、Sniffer、OmniPeek三款软件都能对捕获的数据包进行存储,都有共同
支持的文件格式(如.cap)。Sniffer除了能保存捕获的数据包以外,它还能将网络监视的
History图形数据保存下来。OmniPeek除了能保存捕获的数据包以外,还可以保存捕获
设置。
Wireshark、Sniffer、OmniPeek三款软件都能打开已保存的数据包文件进行分析。
▲ 发送数据包
三款软件中Wireshark没有发送数据包的功能,其它两款软件具有发包的功能。Sniffer
可以从捕获的数据包中选择包进行发送,也可以对包的十六进制内容修改后发送。在
Sniffer环境中修改包的内容必须在十六进制代码窗口进行,非常不方便,但是Sniffer可
以按一定的带宽比例产生较大的流量。OmniPeek在编辑待发送的包时有一个完整协议层
的选择窗口,因此可以清楚地知道如何修改包的内容。OmniPeek的发送操作界面也很友
好,容易使用。
▲ 设定trigger
Sniffer具有出色的专家分析功能,它可以设定trigger来触发捕获数据包。trigger
的设定既可以以时间为条件,也可以以Sniffer监视的事件为依据,还可以以设定的Filter
为条件来触发捕获操作。Sniffer的trigger设置界面很形象,比较容易设置。
OmniPeek也能设定trigger,它的trigger功能触发条件没有Sniffer丰富,操作也
不复杂。
▲ 显示会话主机连接图
Sniffer的Matrix功能能以图形的形式显示建立了连接的主机关系,Sniffer的此功能
没有可以设定显示主机的数量,导致主机数较多时无法分辨出来。OmniPeek的Peer Map
功能与Matrix相似,但OmniPeek有很多的设定选项,可以以不同的形式显示会话主机,
界面比较清晰。
Sniffer和OmniPeek的会话主机图中都可以选择单个主机进行分析,也可以在此选
择设定Filter的条件。
▲ 显示History图形信息
Sniffer和OmniPeek都有以图形方式显示History数据的功能。Sniffer能显示网络
利用率、包的速率、错误率、包的大小分布率等实时图形信息。OmniPeek的History功
能没有Sniffer丰富,不能显示误码等图形信息。这两款软件都可以将History数据导出到
文件中保存下来。
▲ 生成报告
Sniffer和OmniPeek都具有网络专家功能,它们的分析结果对网络管理都是有帮助
的,因此保存分析结果就很重要。Sniffer的分析功能较强,它的Report生成模块是需要
单独购买的,由此推测其功能应该比较强大。OmniPeek可以将捕获结果生成html或txt、
csv等格式的文件保存下来,这些文件内容都经过了分类、统计和总结,为我们分析网络
提供了依据。
四、 总结
Wireshark是一款小巧、开源且能在几乎所有流行操作系统下使用的抓包工具软件,
很适合一般人员学习网络协议使用,也是协议开发人员验证协议的好工具。由于Wireshark
存在缓存溢出的BUG,建议不要将它用于分析流量很大的百兆网络,也不要用于千兆网络
分析。
Sniffer Portable具有超强的专家分析能力,并且价格昂贵,使用它来抓包分析协议实
在是浪费。对于大型的安全性稳定性要求很高的网络,使用Sniffer的专家分析和预告功能
是个不错的选择。另外Sniffer还有一些Report选件和分布式硬件可供选择,配合使用可
以组成一个完善的安全监视系统,这样的花费还是值得的。
OmniPeek代表一股新生力量,它对无线网络、语音等技术都有很好的支持。
OmniPeek可以使用很多的Plugin,使得它能很快适应新出现的业务和应用。所以
OmniPeek很适用于网络不是很大,应用经常更新的环境。无线环境和千兆环境也可以选
择OmniPeek 。


发布评论