百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

wireshark,sniffer,omnipeek三款网络分析工具的比较(转载)

csdh11 2025-03-02 16:51 14 浏览


一、网络分析软件概述

自从网络出现以来,网络故障就没有停止过。如何快速、准确地定位故障和保持网络的稳定运行一直是人们追求的目标。为了分析网络故障的原因,一类专业的网络分析软件便产生了。网络分析软件充当了网络程序错误的检修工具,开发人员使用它发现协议开发中的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强大。

四、总结

Wireshark是一款小巧、开源且能在几乎所有流行操作系统下使用的抓包工具软件,很适合一般人员学习网络协议使用,也是协议开发人员验证协议的好工具。由于Wireshark存在缓存溢出的BUG,建议不要将它用于分析流量很大的百兆网络,也不要用于千兆网络分析。

Sniffer Portable具有超强的专家分析能力,并且价格昂贵,使用它来抓包分析协议实在是浪费。对于大型的安全性稳定性要求很高的网络,使用Sniffer的专家分析和预告功能是个不错的选择。另外Sniffer还有一些Report选件和分布式硬件可供选择,配合使用可以组成一个完善的安全监视系统,这样的花费还是值得的。

OmniPeek代表一股新生力量,它对无线网络、语音等技术都有很好的支持。OmniPeek可以使用很多的Plugin,使得它能很快适应新出现的业务和应用。所以OmniPeek很适用于网络不是很大,应用经常更新的环境。无线环境和千兆环境也可以选择OmniPeek 。

相关推荐

探索Java项目中日志系统最佳实践:从入门到精通

探索Java项目中日志系统最佳实践:从入门到精通在现代软件开发中,日志系统如同一位默默无闻却至关重要的管家,它记录了程序运行中的各种事件,为我们排查问题、监控性能和优化系统提供了宝贵的依据。在Java...

用了这么多年的java日志框架,你真的弄懂了吗?

在项目开发过程中,有一个必不可少的环节就是记录日志,相信只要是个程序员都用过,可是咱们自问下,用了这么多年的日志框架,你确定自己真弄懂了日志框架的来龙去脉嘛?下面笔者就详细聊聊java中常用日志框架的...

物理老师教你学Java语言(中篇)(物理专业学编程)

第四章物质的基本结构——类与对象...

一文搞定!Spring Boot3 定时任务操作全攻略

各位互联网大厂的后端开发小伙伴们,在使用SpringBoot3开发项目时,你是否遇到过定时任务实现的难题呢?比如任务调度时间不准确,代码报错却找不到方向,是不是特别头疼?如今,随着互联网业务规模...

你还不懂java的日志系统吗 ?(java的日志类)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

谈谈枚举的新用法--java(java枚举的作用与好处)

问题的由来前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了!事情是这样的,做过游戏的都知道,buff,需要分类型,且...

你还不懂java的日志系统吗(javaw 日志)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

Java 8之后的那些新特性(三):Java System Logger

去年12月份log4j日志框架的一个漏洞,给Java整个行业造成了非常大的影响。这个事情也顺带把log4j这个日志框架推到了争议的最前线。在Java领域,log4j可能相对比较流行。而在log4j之外...

Java开发中的日志管理:让程序“开口说话”

Java开发中的日志管理:让程序“开口说话”日志是程序员的朋友,也是程序的“嘴巴”。它能让程序在运行过程中“开口说话”,告诉我们它的状态、行为以及遇到的问题。在Java开发中,良好的日志管理不仅能帮助...

吊打面试官(十二)--Java语言中ArrayList类一文全掌握

导读...

OS X 效率启动器 Alfred 详解与使用技巧

问:为什么要在Mac上使用效率启动器类应用?答:在非特殊专业用户的环境下,(每天)用户一般可以在系统中进行上百次操作,可以是点击,也可以是拖拽,但这些只是过程,而我们的真正目的是想获得结果,也就是...

Java中 高级的异常处理(java中异常处理的两种方式)

介绍异常处理是软件开发的一个关键方面,尤其是在Java中,这种语言以其稳健性和平台独立性而闻名。正确的异常处理不仅可以防止应用程序崩溃,还有助于调试并向用户提供有意义的反馈。...

【性能调优】全方位教你定位慢SQL,方法介绍下!

1.使用数据库自带工具...

全面了解mysql锁机制(InnoDB)与问题排查

MySQL/InnoDB的加锁,一直是一个常见的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?下面是不同锁等级的区别表级锁:开销小,加锁快;不会出现死锁;锁定粒度...

看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

一、什么是死锁加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获...