全面对比OmniPeek与Sniffer
(一) 概述
从DOS版本的Sniffer/EtherPeek开始,这两个产品就一直是这个领域的一对欢喜冤家。
1997年Sniffer当时所拥有的公司NGC(Network General Coporation)收购了
Cinco Systems,后者拥有当时最为闻名遐迩的Windows下的分析软件NetXray。
从此Sniffer披上了Windows的外套,在Windows下也实现了Sniffer引以为傲的专
家系统。1997年底,NGC和McAfee合并组成Network Associates,从此踏上了
大规模商业化的道路。
AG Group早期发展EtherPeek的步伐有些缓慢,在推出了Macintosh版本的分析软件并且垄断了相应市场以后,其发展轨迹也变得更为技术化。
到2000年以后,WildPackets脱胎于AG Group的传统建构,并且收购了Net3、Optimal Engineering和PMG等一系列产品、培训、服务企业,顿时实力大增,WildPackets也进一步把专家系统技术引入到EtherPeek产品线中,出现了
EtherPeek NX等新的产品。从DOS/Mac跨越到windows 2000平台,EtherPeek
几乎被从头进行代码。
到了2003年以后,WildPackets逐渐羽翼丰满,终于推出了分布式分析产品
OmniPeek。这个产品足足晚了Sniffer Distributed 8年。
Wireless LAN进入市场以后,网络分析产品逐渐发现了一个新的战场,在Hub时代,网络分析产品不需要配置就可以使用,而且当时网络又确实漏洞百出。到了 Switch时代,网络分析产品逐渐变得更难部署,即使部署,成本也很高。到了无线网络环境,人们发现,又一个新的hub环境驾临了。
可惜的是从1998年完成合并之后,到2004年NAI分裂之前,NAI始终不能对
Sniffer投注于高昂的激情。相对于防病毒市场而言,网络分析工具无论是从市场
总量还是增长趋势都不能与之相提并论。而且更大的问题是网络分析通常会被认
为比防病毒要高几个技术level,Sniffer和McAfee在核心价值上遇到了巨大的抵
触。
Sniffer停滞了三四年之后,终于获得了重生的机会。但是在这个不短的时机中,WildPackets已经快速逼近,甚至已经超越。
Network Magazine是网络产业的风向标之一,在网络分析领域,Sniffer曾一直荣获1997, 1998, 1999, 2000, 2001的年度最佳网络分析类产品,然而之后,
2002, 2003年的年度最佳产品桂冠就转移到了WildPackets手中。工欲善其事,
必先利其器。我们在从事网络分析、优化之前,很重要的一环就是要准备好最佳
的工具,之后我们试图用比较客观的一下Sniffer和OmniPeek的各类功能以及实现效果。希望通过这些比较,能够帮助我们更加深入地了解这两个产品,熟悉各类功能的使用和应用,同时找到最最适合自己的称手的兵刃。
(二)软件设计
从Sniffer Pro和OmniPeek的设计而言,两者代表了不同时代的设计理念。
Sniffer Pro从netxray里获得了图形化界面以后,就开始试图建立新的网络分析软件标准。用过Netxray的同志们应该都知道,Matrix、Dashboard其实都是Netxray里就已经存在的设计。而NGC Sniffer 的最大长处就是Expert System和对各类链路的支持。 Expert System顾名思义就是专家系统,自动地根据网络捕获的数据进行分析并提供分析结果。
Netxray的界面设计应用了后Win31时代和早Win95时期的界面元素,一直保持到现在,颇有点清涩古风。在底层设计上,现在的Sniffer Pro其实大量地基于
COM/OLE编程,到了Sniffer Distributed,分布式产品,Sniffer 又把结构延续到
DCOM。当时并不知道后来会有病毒直接利用DCOM,因此整个产品设计非常理
想化。 DCOM调用的规范相对较为复杂,这也造成了后期的Sniffer Distributed陷
入了很多问题,诸如界面更新速度、数据显示延迟等等。这也造成了当时的
Sniffer人决定把整个产品推向到Web based,事实证明把这样复杂的分析软
件转换到Web环境是个彻头彻尾的错误,但是路一旦踏上,就很难有回头的余地。
我不知道有多少人真正使用过Web-based Sniffer UI,从我个人而言,我并不推荐再去尝试那个已经被停止前进的Java applet+Web based的东东。
我深深体会到,作为一个分析工具,必须保证自身的快捷、迅速、准确,否则,
哪怕功能强大、跨平台,分析人员也绝对无法依赖一个笨拙、不稳定的分析环
境。
Sniffer Pro的界面在最近6年没有发生大的变化,除了因为Wireless LAN的产品引入了一些新的元件之外,整个UI一直保持当初NetXray时代的样子。这既是缺点,也是优点,一旦熟悉也就可以不用更改任何习惯。
如果来看看OmniPeek,就会发现故事在这里是完全不一样。OmniPeek的设计元素里大量应用了 Flat Button、TreeView、IE View,使得整个产品很适应
Windows XP/2000的环境。这一点也是后起之秀的优势,可以充分运用最新的技
术。我特地关注了一下OmniPeek在分布应用时候的通讯协议,很值得一提的
是,OmniPeek避免了任何DCOM的应用,采用了自行开发的一个加密通讯协议。
很久以来的经验都告诉我DCOM协议既复杂又不安全,而且不适合Internet应
用,因为DCOM采用了动态端口范围进行通讯,很难从Firewall上简单过滤。大家
可以google一下DCOM + Firewall,会有一大堆文章讨论如何设置这种情况。
OmniPeek的开发环境迅速从VC++迁移到了VC.net,在OmniPeek的很多设计里都已经有了一些基本的.NET特性。而相对而言,Sniffer则拘泥于VC 6.0不能自拔。
OmniPeek产品带来了很多新的气象,让我在长期浸淫在Sniffer Pro之后,重新发现了一个更具魅力的世界。
三、安装文件结构
1、 Sniffer Pro 4.75 SP4 (最新是4.8) 安装好以后,占地面积为60M左右。
目录结构如下
C:\PROGRAM FILES\NAI
└─SnifferNT
Driver目录下放置了Sniffer Pro支持的几乎所有网卡适配器的驱动程序。
NetMibs里放置了部分SNMP mib文件,主要是用来描述Sniffer的Alarm Trap的格式,以及Expert-Event trap的格式。这几个mib用来和SNMP 平台例如HP OV等系统集成时有点用。令人感到有兴趣的是,NetMibs里还有一个文件叫做art.mib,打开以后可以看到作者是NetScout公司。暂时无法准确揣度放在这里的目的,但是至少可以看到网络分析行业里的几个大腕还是互相承认的。
Program 目录里是主要的Sniffer Pro核心文件。每次创建一个Profile会多一个Local打头的目录。
比较有用的文件是Sniffer.bet ,可以用来编辑网卡生产厂商的vendor ID,进而影响在Sniffer Pro里的显示结果。
我比大家多一个 voiceBU子目录,大家也可以猜猜是为什么。
2、OmniPeek 2.0 安装完毕以后,大致占用70M左右空间。
├─1033
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
│
├─2052
├─Bin
├─Decodes
├─Driver
├─MIBs
├─Plugins
│
├─RMONGrabber
└─Samples
OmniPeek 目录下有个名为1033的大目录,各类模版、文件、HTML的文件都放在该目录下。
为什么叫做1033呢?因为1033代码代表美国英语。而2052则代表中文..
从文件树可以看到,OmniPeek的设计直接面向了国际化,多语言支持可以比较好的实现在OmniPeek中。这也是困扰Sniffer Pro的多年未有中文版本的原因之一。
OmniPeek的安装中已经包含了所有的SDK开发包,而Sniffer 的二次开发需要安装另外一个额外的被称为PDK的附加。
四、设计理念
从两个软件的初始界面可以看出非常不同的设计理念。
Sniffer启动完毕以后,出现的是经典的DashBoard界面
这个界面也是当初cinco systems的NetXRay的经典起始界面,Sniffer Pro从4.0版本开始在Dashboard里加入了不少Java特征,从此也引入了很多不稳定性和不兼容性,造成了一系列小麻烦。对不起大家,我平时痛恨Java,因此恨乌及屋。
我先来对比一下OmniPeek的起始界面,
可以看到同样也是差不多的仪表盘。发明汽车上的仪表盘的工程师们也许没有想到在信息科技时代仍然可以在网络分析领域获得大力应用。 Sniffer Pro的设计目标偏向于“任务”,因此在DashBoard里还加入了监控的特征,能够很方便地在初始界面里观察短期网络流量历史曲线以及Packet尺 寸分布等数据。而OmniPeek的设计更加面向于“工作”,他会把历史上打开过的Trace文件列举在初始界面里,包括帮助、引导文件,以及安全审计模 板等,都可以在起始界面里直接引用。 另一个面向任务的设计体现在捕获的设计中,在Sniffer Pro里,过滤条件、捕获设置是在登录到某一个Profile以后可以随意设置的,例如,默认的过滤器是”default”,如果按三角形的捕获按钮,可 以直接应用当前的过滤器开始捕获。而OmniPeek的面向工作的设计就不完全一样,如果点击开始新的捕获,可以当时选择所需捕获的网卡、过滤器、环境设 置等一系列选项。在Sniffer Pro里,如果要更换当前捕获用的网卡,必须更换Settings,如下图 |
在Sniffer Pro里的这种设计更加证明了面向任务的设计,即当前的任务只需要分析一种网络,如果更换捕获网络,前提是更换任务。不同的Settings保持着完全不同的过滤设置以及工作习惯选项。也许Sniffer Pro更加为咨询人员设计,而OmniPeek更加为网络管理人员设计。 OmniPeek里的每次捕获前设置捕获参数和捕获网卡的界面: |
设计理念的第二个环节是打开某一个捕获的trace 文件后的默认初始界面,在这里我不抓屏了。 大家可以发现,在Sniffer Pro 打开某一个捕获文件以后,默认初始的界面是Expert,即专家系统。而OmniPeek默认初始的界面是Decode,即解码。这也体现了这两个产品的 非常大的不同思想,Sniffer Pro试图证明其包含270余种专家系统的分析模块是最值得察看也同时是最有价值的功能,可以最大化帮助网络分析人员的任务。而OmniPeek到目前为 止仍然坚持Decode/解码是最有效、最核心的策略,尽管OmniPeek也提供90余种专家系统。专家系统到底有没有用,如何去用?这个问题我们暂且 搁置一下,以后我会专门来对比讨论。至少我们可以从这些初始的界面中,对两者的不同设计理念大致可见一斑。 |
五、按键习惯
嗯?按键习惯也能独立成章吗?这恰恰是网络分析软件的历史问题的集中表现。大家谁能够记得Sniffer Pro按什么快捷键启动捕获吗?
F10
那么OmniPeek呢?
Ctrl-Y
有点摸不清头脑了吧?事实上,这只是一个开始。
如果大家打开Sniffer Pro,打开一个以前保存的捕获文件,或立即捕获几个包,然后Stop Display。选择Decode Tab,展示著名的三栏解码界面。按键盘F4按键,嗯?!,当前的栏位被扩展成全屏;再按F4,恢复原有状态。如果按F6,则当前活动状态在三个栏位之间*换,*作键盘上下键可以非常快速地在解码域、包列表里上下浏览。
如果当前切换到解码栏中,按F4,当前包的解完码的信息被扩展到全屏。这时候如果我们想切换到下一个包怎么办?是不是要F4切换回来然后再用鼠标?不必的,直接在解码全屏情况下按F8就往下浏览一个包,而按F7则往前浏览一个包。
Sniffer Pro思路里的网络分析人员和编程人员一样,要达到如臻化境的状态,必须能以极快的速度进行快速解析分析,如果分析的时候还需要依赖到鼠标移来移去,或者在菜单里选来选去,那么很难及时在有限的时间里比别人更快地处理复杂的问题。
如果更进一步挖掘键盘功能,就会发现,如果要在解码内容里搜索一些关键字,可以用Alt+F3来打开一个搜索框…(我经常不小心按成Alt+F4….),为什么快捷键会设置成这样?似乎和平是的习惯相差很远。熟悉Sniffer Pro的同志们就会明白,这些按键都是从DOS时代继承下来的。从前的Network General的DOS
Sniffer就用这些按键进行快速使用,当时也没有鼠标,所以这些按键成为了分析
的必须。DOS Sniffer还有很多更多的快速按键,很多当初的Sniffer专家直到现在
还在坚持使用DOS Sniffer,用异乎寻常的快速速度沉浸在包与包的切换之中。当
人们向他们展示Windows Sniffer,他们目瞪口呆,居然Sniffer已经成为现在的样
子。
OmniPeek的快速按键同样也是为了大力提高分析人员的速度,但是更加具备现代气息,和很多Windows程序一样,是Ctrl+一系列其他的按键。如果能够熟悉使用,同样可以很大地提高效率。
尽管微软曾经提出过Windows程序界面设计指南,要求所有鼠标可以完成的工作必须用键盘也能操作。可能至今仍然如此矜持的,除了MS Office之外,网络分析软件们也算是个异数。不过大多数网络分析人员可能并不领这个情,这些按键逐渐成为历史,成为尘封的记忆…