大家好!欢迎大家参加Sniffer的认证课程!
先自我介绍一下!我叫范伟导,这是我的邮件,我现在没有工作(同学们:自由职业者)可以这么说。
介绍一下我的经历:毕业后我在一个台资电脑厂工作了一年,做硬件的。
后来到了日本三洋工作,作X400的软件开发,做ERP,用RPG开发,做了4年
后来到了神州数码,作CISCO网络,原来在技术中心做实施,后来在培训中心做讲师,一共做了5年。
现在我是CISCO和Sniffer的授权讲师,不过现在我不想做CISCO了,想做Sniffer,因为我觉得网络分析是一个很好的技术方向。等一下我还会跟大家聊一聊我们该往哪一个方向发展。
先看一下我们这个课程,这个课程事实上是两门课,第一门我们介绍怎样用Sniffer来做网络故障诊断,还有网络管理的一些方法和思路,第二门课我们介绍如何做应用的分析,这是Sniffer的新课程,我个人觉得非常好,以前的几个班学员也很喜欢。第一门课我们会讲3天,第二门课我们会讲2天。
接下来的半个小时我们不讲书本知识,讲讲我的经历和Sniffer究竟能用来做什么,我们为什么要学Sniffer,其实我的目的是提起大家的学习兴趣,大家愿意学,我才讲的起劲。要不我一边讲,大家在噼噼啪啪上网,那我就讲不下去了(同学们笑)。
大家做网络都很多年了,想想我们以前的10兆以太网,现在的万兆以太网,想想14.4k的modem,现在的2M宽带,以前的x25,桢中继,现在的SDH,MSTP,裸光纤。大家都经历这些,但我们才工作几年?就这几年,变化这么大,我不知道大家的工资有没有变化这么大,(同学们大笑),从10兆到万兆,1000倍,几年工资张1000倍。有点难(同学们:不是有点难,是很难,不可能)。
再看看我们工作的变化,以前能配配路由器就很牛了,现在似乎谁都会了,记得几年前,我帮一个小集成商配一台4000系列交换机,收了2000元,15分钟搞定。(同学们:好爽,介绍一些给我们做),没有了
说说你们的工作。平常工作中做些什么(同学们:做做网线,杀病毒,帮领导装机器)
大家想想,这是我们想做的工作吗,以前这些都不用我们做,现在大家感觉是不是地位在下降,工资也不涨,好歹我们也是蜘蛛级的人物呀,不是有个笑话说蜜蜂是空姐,做网络的是蜘蛛吗。(同学们笑)
我们该怎么办?
现在说说我的观点,我们都希望工资能年年涨,不要求1000倍,(同学们:不要求那么高,一年20%就行了),
20%?不止吧,从毕业到现在,你们工资不止年均涨不止20%吧。 (同学们:我们不能跟您比)
也有可能,你们的起点高,我毕业的时候才有650元。
大家回顾一下,做IT的谁的收入高?
1、销售
2、领导
3、咨询专家
4、售前工程师
5、售后工程师
我们在座的有3个是网络中心的主任或科长,他们的收入肯定比一般工程师高,我祝愿你们步步高升,收入节节高。
在座大多数是网络工程师,我们该怎么走,其实你们现在的单位都很好,但将来怎样很难知道,比如前几年银行的收入令人羡慕,现在他们却担心降工资,现在移动的收入不错吧,我有汽车厂商的学员,他告诉我他们的收入比移动好点,(同学们:哇)这是他们自己说的,好多少就没说了,还有某政府单位的,什么单位不便说,他们没告诉我他们的收入,只说,价格少于4万的笔记本他们不用,哇靠,4万的笔记本,什么配置?(同学们:那是服务器)
我们不能比,人比人,气死人。我们没法进入这些公司的,还是脚踏实地一点好,但我们做技术的也要考虑如何提高我们的收入,做技术的要提高收入,地位是关键,前面大家说只做做线,杀杀病毒,我们的地位在下降,工资怎么长得起来呢?想想我们做技术的,谁的收入高,做数据库的比做服务器的高,为什么Oracle那么火,做服务器的比写程序的高,写程序的比做网络高,这是普遍现象,不说特殊情况。其实大家发现一个特点没有,凡是掌握企业关键业务的收入都很高,你看作数据库的,数据库坏了,企业完蛋了,领导当然重视,现在不仅讲存储,还讲灾备,你看很多银行,北京一个数据中心,上海一个数据中心。
我们网络怎样,设计的都是高可靠性的端到端备份,出问题的机会很少,而当应用出什么问题,都说是网络问题。举个例子,有个单位(税务的学员告诉我的),有一天应用突然变慢,大家都说网络慢了,我们用尽troubleshooting的技术也发现不了问题,结果作数据库的工程师偷偷改一下表空间,好了,没问题了,我们不知道怎么好了,做数据库的不说他们有问题,还说网络好了,领导问我网络怎么好的,我不知道呀,领导说:赶快查出原因,避免再出现类似问题,哇塞,怎么查,本来网络就没问题,查什么查。(同学们笑)
所以现在大家用一个字来形容我们的工作?你们会用什么字(同学们:累、苦)
很贴切,苦、累
所以我们不能一直停留在网络的troubleshooting,我们必须提高我们的地位,要不我们会累死。
怎么提高地位,我们必须了解我们的业务,也就是要了解应用,了解应用在我们网络上的行为特征,很重要的一个词行为特征。当我们了解了业务的行为特征,我们能定位某一个问题的真正故障点,举个例子:网络应用变慢,可能的原因有什么?网络问题,服务器问题,数据库问题,应用程序问题,客户机问题。如果我们能够判断是哪一部分问题,我们就有发言权了,比如说刚才那种情况,如果我们直接说这是数据库问题,不是网络问题,领导会问,你凭什么说是数据库问题,你可以拿出Sniffer,专家系统上写着,DB Slow Server response诊断,(范老师在演示)再看解码,做一个用户验证操作,花了1.731秒,有根有据,大家想一想,有了Sniffer我们可以了解我们的业务行为特征,可以排除我们的责任,不但工作轻松了,地位也提高了。(同学们笑)
以前我们应用出现问题的时候我们总是分头查找问题,结果往往是没有结果,因为这种查找方式范围太大了,我们做troubleshooting第一步应该是:隔离故障。
如果我们有了Sniffer,首先用Sniffer看一下,最有可能是哪一部分问题,再安排检查,这样不但节省人力,速度会更快,效率也更高。
如果有人问我们Sniffer是什么?大家都会说是协议分析仪,你看sniffer网站( [url]www.networkgeneral.com[/url])
上说的是应用和网络分析系统。究竟Sniffer是什么样的一个东西,我们要了解他的发展过程。其实很多类似的产品比如ethereal,netscout,wildpacket等都有类似的发展过程
第一阶段是抓包和解码,也就是把网络上的数据包抓下来,然后进行解码,那时候谁能解开的协议多,谁就是老大,Sniffer当时能解开的协议最多,也就理所当然地成了老大,现在Sniffer能解开550种协议,还是业界最多的,
第二阶段是专家系统,也就是通过抓下来的数据包,根据他的特征和前后时间戳的关系,判断网络的数据流有没有问题,是哪一层的问题,有多严重,专家系统都会给出建议和解决方案,现在Sniffer的专家系统还是业界最强的
第三阶段:是把网络分析工具发展成网络管理工具,为什么要这样,如果Sniffer知识用作网络分析,那Sniffer的软件就够用了,现在软件的portable基本上都是盗版的,sniffer没钱赚了,所以它必须往网络管理方向转,要作为网络管理工具,就必须能部署在网络中心,能长期监控,能主动管理网络,能排除潜在问题,要做到这些,就要求有更高的性能,所以Sniffer就有了相应的硬件产品,比如说分布式硬件平台,InfiniStream等,我知道在座各位都买了Sniffer的硬件,这时候如果用软件的Sniffer性能就不行了。
#p#
我们来看一下Sniffer的七大monitor功能,有Dashboard,hosttable,matrix,ART,protocol distribution,history sample,global statistics
我们一个一个来看,先看dashboard。
144627_04_443.JPG
这个大家很熟悉了,我不用多讲,dashboard有3个仪表,分别是使用率,每秒钟包数量,每秒钟错误率,下面都有两个数字,前面一个表示当前值,后面一个表示最大值。
下面还有long term,和short term
Long term 每30分钟采样一次,一共可以采样24小时,short term 每30秒钟采样一次,可以采样25分钟
大家自己试一下,首先把file里面的loopback 选上,这样我们发的数据包就不会发到网络中去,然后打开101目录里的TCPdemo7a那个trace file ,再用packet general 发包,选send current buffer,连续发送。(我们是跟着范老师做的)
好了,大家试了一遍,感觉应该是一样的,就是这有什么用?没用,对吧,我也这样觉得(同学们笑)
但如果你要监控某一台服务器的时候,这个是有用的,比如你把一台服务器的接口monitor 过来,这样你就可以看到这台服务器的流量状况了,这就是一个很好的基准线呀。当然大家用的是硬件产品,就更方便了。
大家注意到下面还有错误报的统计,要注意的是一般的网卡是抓不了错误包的,要用专用网卡,一块网卡上万块,NG好黑呀(同学们笑)
其实大家知道通过交换机的存储转发,基本上很少错误包,所以不用关注它。
在这里我想解释一下以太网的错误包,这对大家学习网络是很有帮助的,特别是了解一下封装的概念。
(请看下一页:以太网为什么要64个字节)
144628_05_283.JPG
(这是范老师的板书,我画不出来,大家将就点吧)
(这是范老师的板书,我画不出来,大家将就点吧)
以太网是无连接的,不可靠的服务,采用尽力传输的机制。以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理。
以太网是不可靠的,这意味着它并不知道对方有没有收到自己发出的数据包,但如果他发出的数据包发生错误,他会进行重传。以太网的错误主要是发生碰撞,碰撞是指两台机器同时监听到网络是空闲的,同时发送数据,就会发生碰撞,碰撞对于以太网来说是正常的。
我们来看一下,假设A检测到网络是空闲的,开始发数据包,尽力传输,当数据包还没有到达B时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B首先发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55或AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发生了错误,就会重传这个数据包。但如果碰撞信号会返回到A时,数据包已经发完,则A不会重传这个数据包。
我们先看一下,以太网为什么要设计这样的重传机制。首先,以太网不想采用连接机制,因为会降低效率,但他又想有一定的重传机制,因为以太网的重传是微秒级,而传输层的重传,如TCP的重传达到毫秒级,应用层的重传更达到秒级,我们可以看到越底层的重传,速度越快,所以对于以太网错误,以太网必须有重传机制。
要保证以太网的重传,必须保证A收到碰撞信号的时候,数据包没有传完,要实现这一要求,A和B之间的距离很关键,也就是说信号在A和B之间传输的来回时间必须控制在一定范围之内。IEEE定义了这个标准,一个碰撞域内,最远的两台机器之间的round-trip time 要小于512bit time.(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。这也是我们常说的一个碰撞域的直径。
512个位时,也就是64字节的传输时间,如果以太网数据包大于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。
这就是为什么以太网要最小64个字节,同样,在正常的情况下,碰撞信号应该出现在64个字节之内,这是正常的以太网碰撞,如果碰撞信号出现在64个字节之后,叫 late collision。这是不正常的。
我们以前学习CISCO网络的时候,CISCO交换机有一种转发方式叫fragment-free,叫无碎片转发,他就是检查64个字节之内有没有错误,有的话不转发,这样就排除了正常的以太网错误包。
(这是范老师的板书,我画不出来,大家将就点吧)
我们再来看一看以太网的帧结构。
144628_06_540.JPG

要讲帧结构,就要说一说OSI七层参考模型。七层参考模型大家很熟悉,以前我们看书的时候会觉得不知所云,我刚学的时候就是这感觉,其实我们只要掌握两点就行了。
一个是访问服务点,每一层都对上层提供访问服务点(SAP),或者我们可以说,每一层的头里面都有一个字段来区分上层协议。
比如说传输层对应上层的访问服务点就是端口号,比如说23端口是telnet,80端口是http。IP层的SAP是什么?(同学们没说话)
其实就是protocol字段,17表示上层是UDP,6是TCP,89是OSPF,88是EGIRP,1是ICMP等等。
以太网对应上层的SAP是什么呢?就是这个type或length。比如 0800表示上层是IP,0806表示上层是ARP。我后面还会将各种以太网的帧类型。
第二个要了解的就是对等层通讯,对等层通讯比较好理解,发送端某一层的封装,接收端要同一层才能解封装。
我们再来看看帧结构,以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙。这个叫帧间隙IFG—InterFrame Gap
IFG长度是96bit。当然还可能有Idle时间。
以太网的帧是从目的MAC地址到FCS,事实上以太网帧的前面还有preamble,我们把它叫做先导字段。作用是用来同步的,当接受端收到preamble,就知道以太网帧就要来了。preamble有8个字节前面7个字节是10101010也就是16进制的AA,最后一个字节是10101011,也就是AB,当接受端接受到连续的两个高点平,就知道接着来的就是D_mac。所以最后一个字节AB我们也叫他SFD(帧开始标示符)。
所以在以太网传输过程中,即使没有idle,也就是连续传输,也有20个字节的间隔。对于大量64字节数据来说,效率也就显得不高。
所以,有时我们用下载数据来检查我们的网速,这是不完全准确地,我们要了解他的传输特征,才能准确判断电信究竟给了你多少带宽。我有一个移动的学员,他说用户总怀疑我给他的带宽不够,其实我肯定给他两兆了,所以有时运营商也挺不容易(同学们笑)。后来我告诉他怎么样用sniffer来测带宽,不知道他后来成功了吗,我没有得到反馈。后面我会介绍怎样用Sniffer来做带宽测试,非常精确的喔。我给很多用户作过带宽测试,他们大多都是怀疑电信给的带宽不够。(同学们问:有没有不够的时候?)我测试的案例里还没有。还有就是帮集成商作方案验证,比如,集成商给用户作了多链路捆绑,或路由负载均衡,用户说比原来更慢了,我去证明给用户看,负载均衡确实做起来了,流量分担很正常。(同学们问:那为什么会慢呢),这就涉及到应用的特征和不同厂商采用均衡的机制。我还没试过作进一步分析。因为这是集成商的朋友叫我去帮忙的,我只要证明给用户看方案没问题,并告诉集成商如何给用户解释就行了,在做下去,就会画蛇添足了,因为可能让用户觉得我的水平比我朋友高,那不是帮倒忙了。(同学们笑)所以帮忙也要适可而止。 (同学们笑)
好了,有点扯远了。前面讲这些主要是帮大家复习以下以太网知识,大家别担心,时间是足够的,因为这门课里有很一些基础的知识,比如交换原理、vlan原理,那些知识我都会跳过,我第一天的内容不会很难,考虑到大家远道而来,第一天都很累。但后面回越来越难,大家要有心理准备。晚上要早点睡觉(同学们笑)。还有一个,就是大家别指望能记得住我讲得全部内容,今天讲得明天还记得一点,后天就全忘了,(同学们笑),到了课程结束的时候,基本上全忘光了,(同学们大笑),所以做笔记很重要,我建议大家把笔记写在书上,到时才对得起来。我也注意到一些同学在录音,我知道的,不用放在桌子底下(同学们笑),那样效果不好,(同学们大笑),其实这是不允许的,不过没关系,只有一个要求,不要放在互联网上。
(编者:写到这里,有点写不下去了,觉得很内疚,觉得对不起范老师。我参加过很多培训,范老师是我很喜欢的一个老师,他讲课不会非常幽默,但很实用,这是因为他有很多经历,他在讲课过程中,会补充很多课程以外的东西,比如很多网络中的细节知识,很多工作中的思路,我觉得这方面收获很大,我个人觉得是对我知识的全面补充,学完之后觉得不仅学会了Sniffer,网络管理的思路更清晰了,现在我指导工程师时,套了很多范老师的话,我觉得范老师很好。怎么办?我在进行思想斗争。。。该不该再写下去。我想在论坛里发起投票,听听大家的意见,我该不该再写下去。)
(编者:范老师的课程内容: 第一天 monitor功能,Sniffer的部署
  第二天 expert,capture filter ,troubleshooting
第三天 decode,display filter ,trigger
第四天 应用的类型,应用的剖析,应用的分析思路
第五天 应用性能的分析,应用性能预测)
#p#
我们看一下,Sniffer究竟有什么用?
第一,Sniffer可以帮助我们评估业务运行状态,如果你能告诉老板说,我们的业务运行正常,性能良好,比起你跟老板报告说网络没有问题,我想老板会更愿意听前面的报告,但我们要做这样的报告,光说是不行的,必须有根据,我们能提供什么样的根据呢。比如各个应用的响应时间,一个操作需要的时间,应用带宽的消耗,应用的行为特征,应用性能的瓶颈等等,到第二门课,我会告诉大家怎么做到有根有据。
第二,Sniffer能够帮助我们评估网络的性能,比如,各连路的使用率,网络的性能的趋势,网络中哪一些应用消耗最多带宽,网络上哪一些用户消耗最多带宽,各分支机构流量状况,影响我们网络性能的主要因素,我们可否做一些相应的控制,等等
第三,Sniffer帮助我们快速定位故障,这个大家比较有经验,我们记住Sniffer的三大功能:monitor,expert,decode这三大功能都可以帮助我们快速定位故障,我后面通过案例演示给大家看,大家再做做实验,很快就上手了(同学问:范老师,是否要学Sniffer必须对协议很熟,)不一定,我们可以通过Sniffer来学习各种协议,比如ospf,以前学网络的时候,讲OSPF的LSA好像很复杂,你用Sniffer看看,其实他的协议结构还是不复杂的,一般情况下,我会要求学Sniffer的学员有CCNP的基础,或者有几年的网络管理经验,我自己也是这样,刚开始只是用Sniffer抓抓包,抓下来也不知道怎么分析,当我学完CCNP后,学了CIT,以为自己不错了,会排除很多网络故障,但实际上很多问题我还是解决不了,比如网络慢,他又不断,断了我很快能解决,网络慢,或者丢包,一般的排错知识还是很难的,那时候开始学Sniffer,才发现很好用
第四,Sniffer可以帮助我们排除潜在的威胁,我们网络中有各种各样的应用,有一些是关键应用,有一些是OA,有一些是非业务应用,还有一些就是威胁,他不但对我们的业务没有帮助,还可能带来危害,比如病毒、***、扫描等,Sniffer可以快速地发现他们,并且发现***的来源,这就为我们做控制提供根据,比如我们要做QOS,不是说随便根据应用去分配带宽就解决了,我们要知道哪一些应用要多少带宽,带宽如何分配,要有根有据。我们再回过头看一下Sniffer什么时候开始流行的,再2003年冲击波发作的时候,很多Sniffer的用户通过Sniffer快速定位受感染的机器,后来很多人都知道Sniffer可以用来发现病毒,Sniffer的知名度暴涨,盗版用户也暴涨(同学们大笑),后来震荡波发作的时候,很多人用Sniffer来协助解决问题。我想强调的是Sniffer不是防病毒工具,这也只是他的一个用途,而且只对蠕虫类型对网络影响大的病毒有效,对于文件型的病毒,他很难发现。
另外要说明的事,Sniffer还可以用来排除来自内部的威胁,现在我们网络中有各种各样的网络安全产品,防火墙、IDS、防病毒软件,他们都有相应的功能,但真的有效吗,能解决全部威胁吗,我们要进行评估,用Sniffer就能评估内网的安全状况,有没有病毒,有没有***,有没有扫描,像防火墙、IDS、防病毒软件他们都是后知后觉的,它必须有特征才能阻绝,而Sniffer是即时监控的工具,通过发现网络中的行为特征,判断网络是否有异常流量,所以Sniffer可能比防病毒软件更快地发现病毒。我在神州数码的时候,冲击波震荡波都是我县发现的,有趣的是当时我都在上Sniffer的课,中午休息,我把sniffer驾到公司网络,再Hosttable看到广州一台机器很多广播,接着广州另外一台机器也开始发广播,接着深圳也感染了,我马上通知IT管理人员,他们把这几台机器断网,后来才知道有冲击波病毒,防病毒软件还不能杀。
刚才讲到异常流量,这是一个很重要的概念,什么是异常流量?我们怎么判断是否异常,这又涉及另外一个概念,叫基准线分析,什么是基准线,基准线是指我们网络正常情况下的行为特征,包括利用率、应用响应时间、协议分布,各用户贷款消耗等,不同工程师会有不同基准线,因为他关心的内容不同,只有知道我们网络正常情况下的行为特征,我们才能判断什么是异常流量。
第五,做流量的趋势分析,通过长期监控,可以发现网络流量的发展趋势,为我们将来网络改造提供建议和依据
第六点就是应用性能预测,这点很有用,会用的人不多,我们第二门课会讲,Sniffer能够根据捕获的流量分析一个应用的行为特征,比如,你现在有一个新的应用,还没有上线,我能评估他上线后的性能,比如在用户在网络中心有多快,用户在省中心有多快,用户在市中心有多快,都可以提供量化的预测,准确率挺高的,误差不超过10%。我们还可以用她来评估应用的瓶颈在哪,不同应用瓶颈不同,比如有些应用慢了,增加网络带宽效果很明显,比如FTP这种应用,有些应用慢了增加带宽没什么效果,比如TELNET应用,我们还可以预测网络带宽增加的效果,比如我将2兆提高到8兆应用性能有多大的提升,Sniffer能比较准确地预测
在这里我们提到三个重要概念,网络行为特征,异常流量,基准线,大家理解了吗
在这里,我不想太多介绍产品,我不是来推销Sniffer的(同学们笑),我们主要探讨网络分析技术
Sniffer的便携式就是我们用的那种盗版软件(同学们笑),我不用介绍了,这门课我们用Sniffer的便携式来讲,因为分布式和InfiniStream也有一样的界面,上课的时候我们都是用便携式。
Sniffer的分布式包括4100和6040,主要是放在网络核心可以长期监控、分析,4100可以处理千兆流量,6040可以处理8千兆流量,这是业界性能最高的产品
Sniffer的InfiniStream的特点是可以长期抓包,最多有4个T的存储空间,可以长期抓包,可以进行回溯性分析,这点对有些用户来说很重要,比如今天早上10点半,某个应用很慢,十分钟后又正常了,如果没有InfiniStream,流量没有保存,我们就很难分析问题在哪,如果有了InfiniStream,这些流量都会保存下来,自动的,就是长期抓包,我们就可以找出当时的流量,进行分析,一个很好的设备,现在支持1800兆线速捕获,这也是其他厂商没有的。
这些你们买设备的时候代理都给你们说清楚了,我就不多讲了。
怎么样,听了这么久,感觉如何?有兴趣吗?
其实我个人是很喜欢Sniffer的,我当时从三洋出来的时候,错过了去IBM的机会,去了神州数码才知道,他们IBM需要做X400的人,去了神州数码,老板问我想做网络还是想做主机,我说做网络吧,那时一个CCIE 23十万的收入是有的,结果到我考过CCIE笔试的时候,CCIE就值10万吧,真是绝望了,(同学们笑)为什么当时不做主机呢,我那些做6000的同事现在都不错,又不累。做网络不就一个字:累吗(同学们笑)我也没有去考实验了,01年的时候我考了CCSI,就是CISCO授权讲师,后来讲了很多cisco的课,我CISCO的学员有1000个,后来又讲Sniffer的课,Sniffer的学员有300个,我的学员不少,有不少关系不错的,他们过的比我好(同学们笑,你做讲师也不错呀,收入不低吧),以前讲CISCO的时候收入不高,一天也就1000到1500,讲Sniffer会好一些,(同学们:讲Sniffer一天多少)这还不好公开,如果你们有兴趣开班,我们再聊(同学们笑)。后来我考过了SCM,Sniffer的最高级认证,叫Sniffer大师。中国就我一个人,(同学们:哇,难不难考,考几门),Sniffer的考试不难,这个我后面会讲,考过SCM的全球也只有62个,亚太区只有5个,所以Sniffer原厂的课程都是我讲的。在今年,我会去协助组建Sniffer中国技术服务中心,以后你们有什么问题都可以联系我,我在那里是技术总监。我们还有在各行各业的Sniffer专家小组,都是喜欢使用Sniffer的人在一起交流使用心得,分享一些案例,你们如有兴趣,到时我可以邀请你们参加,不过首先要认真听课。(同学们笑)
好了,讲了这么多,目标只有一个,提起大家的学习兴趣,接下来讲课程的内容,首先把Sniffer打开。

这时候,大家可能只看到一个local 下面是你的网卡,这就叫做一个local agent。
事实上,一个local agent 就像一个探针。
我们知道Sniffer的工作原理很简单,就是把网卡设成混杂模式(叫做promiscuous),所谓混杂模式,就是把所有数据包接受下来放入内存,大家知道一般情况下,PC机只接受目的mac地址为自己网卡或广播、组播的数据包。sniffer就是这样把所有数据包都接收下来,在进行分析。
大家看我这里有多个agent,怎样可以做多个agent呢,可以不同网卡做不同的agent,就像你们的分布式sniffer一样,有多个网卡,那就是多个agent,infinistream也一样。
其实一个网卡,也可以做多个agent,大家试一下,new一个,给他加上说明,就叫101把,选中你们的网卡,下面选no pod,copy setting留空,那个pod是你外接sniffer book时候用的。大家看看你们的agent多了一个,101括号local_2。对不对(同学们:对)
好,不错。
我们为什么建立多个agent 呢。不同的agent可以定义不同的阀值,可以有不同的过滤器,可以有不同的触发器,不同的地址本。
比如说,你们有一台笔记本装着sniffer,大家都用它,那不同的工程师可以自己定义一个agent,自己定义自己的过滤器,互不干涉,比如不同的网段有不同的阀值,也可以定义不同的agent。
那agent的参数保存在哪里呢,大家打开c:\program files\nai\sniffernt\program,大家看到local local_2,这就是两个不同的agent保存参数的地方。大家看到两个CSF文件,一个是sniffer.csf,另外一个是Snifferdisplay.csf。这是过滤器文件,当我们使用sniffer一段时间之后,大家会累积许多好的过滤器,一定记得保存下来,就是把这两个文件考出来就行了,如果你看到别人那里有好的过滤器,也可以拷过来。不过当你要倒回去的时候,4.8比较好办直接倒入就行了,4.75比较麻烦,我后面讲定义过滤器的时候再教大家。过滤器是sniffer最难、最有意思、最重要的一部分,大家放心,我能让大家成为高手。(同学们笑)
好,local agent讲完了,local agent是什么?事实上就是定义一个环境变量,不同的环境不同的参数。
好,休息一下,待会儿讲monitor功能。
中间休息的时候,我问了范老师一个问题:我看书上说,TCP是可靠的,UDP是不可靠的,那要不可靠UDP来干什么?(各位:我的问题是不是很傻?但我确实不知道呀)
范老师:不错,这个问题非常好!(嘿嘿!)
TCP叫传输控制协议,他的特点是:有连接,有流控,有顺序号/确认号,开销比较大,一般是20个字节的头。
UDP叫用户数据报协议,开销小,8个字节的头,无可靠保证。
我后面有详细介绍TCP和UDP,我们先看您的问题。
首先,UDP,不可靠,是指,在传输层不提供可靠保证,并不意味着所有使用UDP的应用都不可靠。
我们来比较几个应用(范老师用他的trace file 给我演示)
DNS,53端口,进行查询时,用的是UDP,因为要求速度快,比如我要查networkgeneral的地址,你只要告诉我ip是多少就行了,如果要进行3次握手建立连接,再去取到IP,那就慢了,所以用的是UDP,一个字:快。没响应怎么办,事实你看(他在演示)它会同时向多个DNS查询,所以没响应也没关系,你看这个响应名字错误,找不到。所以UDP还是有用的,特别是像DNS查询这种应用,丢了也就丢了,我再查。但DNS也有用TCP的时候,比如DNS服务器的同步,用的就是TCP的53端口
TFTP,您所了解的TFTP,用的是UDP吧,他不可靠吗,事实上文件传输,必须保证可靠。不但要保证能知道丢包重传,还要有顺序号,应付错序到达的情况,也就是我们常说的后发先至。事实上TFTP是怎样工作的,你看(他在演示),每一个数据块都有Id号,一块512字节,一次传输,一次确认,这就相当于TCP的顺序号和确认号。所以UDP是不可靠的,但很多使用UDP协议的应用是可靠的,只是在应用层去保证可靠性,很多人说用UDP效率高,事实上TFTP在传输大文件的时候,比FTP效率更地,我们后面有专门的实验。
视频流量,(没有演示)对于视频流量,也是需要可靠保证的,但要求不是很高,所以不会像TFTP那样每一个数据报都确认,而是传多个数据包确认一次,要不效率就太低了,究竟多少个数据包确认一次,开发人员需要不断测试。
我的解释清楚吗,(我说:明白了!谢谢!)
(确实看着演示,很容易就理解了,中间我们有许多对话,我省略了,确实如果只听录音是不明白的,这是我为什么要整理成文字给大家看,好累呀!大家给我加油!)
好,我们继续!
#p#
我们来看一下Sniffer的七大monitor功能,有Dashboard,hosttable,matrix,ART,protocol distribution,history sample,global statistics
我们一个一个来看,先看dashboard。
144627_04_443.JPG
这个大家很熟悉了,我不用多讲,dashboard有3个仪表,分别是使用率,每秒钟包数量,每秒钟错误率,下面都有两个数字,前面一个表示当前值,后面一个表示最大值。
下面还有long term,和short term
Long term 每30分钟采样一次,一共可以采样24小时,short term 每30秒钟采样一次,可以采样25分钟
大家自己试一下,首先把file里面的loopback 选上,这样我们发的数据包就不会发到网络中去,然后打开101目录里的TCPdemo7a那个trace file ,再用packet general 发包,选send current buffer,连续发送。(我们是跟着范老师做的)
好了,大家试了一遍,感觉应该是一样的,就是这有什么用?没用,对吧,我也这样觉得(同学们笑)
但如果你要监控某一台服务器的时候,这个是有用的,比如你把一台服务器的接口monitor 过来,这样你就可以看到这台服务器的流量状况了,这就是一个很好的基准线呀。当然大家用的是硬件产品,就更方便了。
大家注意到下面还有错误报的统计,要注意的是一般的网卡是抓不了错误包的,要用专用网卡,一块网卡上万块,NG好黑呀(同学们笑)
其实大家知道通过交换机的存储转发,基本上很少错误包,所以不用关注它。
在这里我想解释一下以太网的错误包,这对大家学习网络是很有帮助的,特别是了解一下封装的概念。
(请看下一页:以太网为什么要64个字节)
144628_05_283.JPG
(这是范老师的板书,我画不出来,大家将就点吧)
(这是范老师的板书,我画不出来,大家将就点吧)
以太网是无连接的,不可靠的服务,采用尽力传输的机制。以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理。
以太网是不可靠的,这意味着它并不知道对方有没有收到自己发出的数据包,但如果他发出的数据包发生错误,他会进行重传。以太网的错误主要是发生碰撞,碰撞是指两台机器同时监听到网络是空闲的,同时发送数据,就会发生碰撞,碰撞对于以太网来说是正常的。
我们来看一下,假设A检测到网络是空闲的,开始发数据包,尽力传输,当数据包还没有到达B时,B也监测到网络是空闲的,开始发数据包,这时就会发生碰撞,B首先发现发生碰撞,开始发送碰撞信号,所谓碰撞信号,就是连续的01010101或者10101010,十六进制就是55或AA。这个碰撞信号会返回到A,如果碰撞信号到达A时,A还没有发完这个数据包,A就知道这个数据包发生了错误,就会重传这个数据包。但如果碰撞信号会返回到A时,数据包已经发完,则A不会重传这个数据包。
我们先看一下,以太网为什么要设计这样的重传机制。首先,以太网不想采用连接机制,因为会降低效率,但他又想有一定的重传机制,因为以太网的重传是微秒级,而传输层的重传,如TCP的重传达到毫秒级,应用层的重传更达到秒级,我们可以看到越底层的重传,速度越快,所以对于以太网错误,以太网必须有重传机制。
要保证以太网的重传,必须保证A收到碰撞信号的时候,数据包没有传完,要实现这一要求,A和B之间的距离很关键,也就是说信号在A和B之间传输的来回时间必须控制在一定范围之内。IEEE定义了这个标准,一个碰撞域内,最远的两台机器之间的round-trip time 要小于512bit time.(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。这也是我们常说的一个碰撞域的直径。
512个位时,也就是64字节的传输时间,如果以太网数据包大于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。
这就是为什么以太网要最小64个字节,同样,在正常的情况下,碰撞信号应该出现在64个字节之内,这是正常的以太网碰撞,如果碰撞信号出现在64个字节之后,叫 late collision。这是不正常的。
我们以前学习CISCO网络的时候,CISCO交换机有一种转发方式叫fragment-free,叫无碎片转发,他就是检查64个字节之内有没有错误,有的话不转发,这样就排除了正常的以太网错误包。
(这是范老师的板书,我画不出来,大家将就点吧)
我们再来看一看以太网的帧结构。
144628_06_540.JPG

要讲帧结构,就要说一说OSI七层参考模型。七层参考模型大家很熟悉,以前我们看书的时候会觉得不知所云,我刚学的时候就是这感觉,其实我们只要掌握两点就行了。
一个是访问服务点,每一层都对上层提供访问服务点(SAP),或者我们可以说,每一层的头里面都有一个字段来区分上层协议。
比如说传输层对应上层的访问服务点就是端口号,比如说23端口是telnet,80端口是http。IP层的SAP是什么?(同学们没说话)
其实就是protocol字段,17表示上层是UDP,6是TCP,89是OSPF,88是EGIRP,1是ICMP等等。
以太网对应上层的SAP是什么呢?就是这个type或length。比如 0800表示上层是IP,0806表示上层是ARP。我后面还会将各种以太网的帧类型。
第二个要了解的就是对等层通讯,对等层通讯比较好理解,发送端某一层的封装,接收端要同一层才能解封装。
我们再来看看帧结构,以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙。这个叫帧间隙IFG—InterFrame Gap
IFG长度是96bit。当然还可能有Idle时间。
以太网的帧是从目的MAC地址到FCS,事实上以太网帧的前面还有preamble,我们把它叫做先导字段。作用是用来同步的,当接受端收到preamble,就知道以太网帧就要来了。preamble有8个字节前面7个字节是10101010也就是16进制的AA,最后一个字节是10101011,也就是AB,当接受端接受到连续的两个高点平,就知道接着来的就是D_mac。所以最后一个字节AB我们也叫他SFD(帧开始标示符)。
所以在以太网传输过程中,即使没有idle,也就是连续传输,也有20个字节的间隔。对于大量64字节数据来说,效率也就显得不高。
所以,有时我们用下载数据来检查我们的网速,这是不完全准确地,我们要了解他的传输特征,才能准确判断电信究竟给了你多少带宽。我有一个移动的学员,他说用户总怀疑我给他的带宽不够,其实我肯定给他两兆了,所以有时运营商也挺不容易(同学们笑)。后来我告诉他怎么样用sniffer来测带宽,不知道他后来成功了吗,我没有得到反馈。后面我会介绍怎样用Sniffer来做带宽测试,非常精确的喔。我给很多用户作过带宽测试,他们大多都是怀疑电信给的带宽不够。(同学们问:有没有不够的时候?)我测试的案例里还没有。还有就是帮集成商作方案验证,比如,集成商给用户作了多链路捆绑,或路由负载均衡,用户说比原来更慢了,我去证明给用户看,负载均衡确实做起来了,流量分担很正常。(同学们问:那为什么会慢呢),这就涉及到应用的特征和不同厂商采用均衡的机制。我还没试过作进一步分析。因为这是集成商的朋友叫我去帮忙的,我只要证明给用户看方案没问题,并告诉集成商如何给用户解释就行了,在做下去,就会画蛇添足了,因为可能让用户觉得我的水平比我朋友高,那不是帮倒忙了。(同学们笑)所以帮忙也要适可而止。 (同学们笑)
好了,有点扯远了。前面讲这些主要是帮大家复习以下以太网知识,大家别担心,时间是足够的,因为这门课里有很一些基础的知识,比如交换原理、vlan原理,那些知识我都会跳过,我第一天的内容不会很难,考虑到大家远道而来,第一天都很累。但后面回越来越难,大家要有心理准备。晚上要早点睡觉(同学们笑)。还有一个,就是大家别指望能记得住我讲得全部内容,今天讲得明天还记得一点,后天就全忘了,(同学们笑),到了课程结束的时候,基本上全忘光了,(同学们大笑),所以做笔记很重要,我建议大家把笔记写在书上,到时才对得起来。我也注意到一些同学在录音,我知道的,不用放在桌子底下(同学们笑),那样效果不好,(同学们大笑),其实这是不允许的,不过没关系,只有一个要求,不要放在互联网上。
(编者:写到这里,有点写不下去了,觉得很内疚,觉得对不起范老师。我参加过很多培训,范老师是我很喜欢的一个老师,他讲课不会非常幽默,但很实用,这是因为他有很多经历,他在讲课过程中,会补充很多课程以外的东西,比如很多网络中的细节知识,很多工作中的思路,我觉得这方面收获很大,我个人觉得是对我知识的全面补充,学完之后觉得不仅学会了Sniffer,网络管理的思路更清晰了,现在我指导工程师时,套了很多范老师的话,我觉得范老师很好。怎么办?我在进行思想斗争。。。该不该再写下去。我想在论坛里发起投票,听听大家的意见,我该不该再写下去。)
(编者:范老师的课程内容: 第一天 monitor功能,Sniffer的部署
  第二天 expert,capture filter ,troubleshooting
第三天 decode,display filter ,trigger
第四天 应用的类型,应用的剖析,应用的分析思路
第五天 应用性能的分析,应用性能预测)

好,我们继续看第二个monitor功能,Host table,我们叫他主机列表
这是非常好用的一个功能,有什么用呢?
第一看流量最大的TOP10主机,
第二看广播量有多少,当时我发现冲击波、振荡波的时候,就是看这个host table,发现有大量的全子网广播
第三可以快速过滤单一主机流量。
第四通过过滤功能可以看到单一业务主机的流量分布,当然也可以通过镜像接口去实现
我们一个一个来看。
首先TOP10主机,
我们可以点击各列的标题来排序,方便我们分析,比如收发包情况。大家可以试一下。
第二广播量有多少
我们点击broadcast或multicast的标题,查看广播量,有一点要注意,不要忘记看MAC层的广播和组播,因为MAC的广播不一定有IP头,比如ARP,同样IP的广播在MAC也可能是单播,比如子网广播。
MAC层的广播是目的MAC为48个1,MAC层的组播为目的MAC第一个字节最低位是1。(范老师有板书,我的本子上有,懒得画了)
IP的广播有三种:255.255.255.255叫本地广播,也叫直播,direct broadcast,不跨路由器。
172.16.33.255叫子网广播,广播给172.16.33.0这个子网,可以跨路由器。
172.16.255.255叫全子网广播,广播给172.16.0.0这个主网,可以跨路由器。
大家以前学网络的时候,老师会给一个概念,说路由器是三层设备,隔离广播,对吧,我也是这样给同学介绍的,但我在后面会告诉同学,并不是所有广播都隔离。
事实上只有255.255.255.255这类本地广播,路由器才不转发,对于子网广播和全子网广播,路由器是转发的,这是为什么呢?
我们来看4个255的广播,在MAC的封装中,对应的目的MAC是广播,而子网广播和全子网广播,对应的目的MAC是单播,所以路由器会转发。(范老师在演示)所以我们注意到,路由器隔离的广播是目的MAC为全1的广播,对于目的MAC是单播的上层广播,路由器是不能隔离的。
现在想想冲击波震荡波为什么影响那么大,因为它采用的是全子网广播,可以跨路由感染。所以对于这种流量我们要小心,希望下次再出现蠕虫病毒时,大家能快速发现,做个世界第一(同学们笑),同样我们要关注MAC层的广播。
第三,就是我们可以关注单一主机流量。
第一种办法,抓包。选中主机,点一下抓蝴蝶的工具,这样通过专家系统和解码你就可以分析他在干什么了。这个我们后面再讲
第二种办法,用single station。选中主机,点一下下面这个电脑的图标,你可以看到他在跟谁通信,如果你看到他跟几十台、上百台机器同时通讯,可能是什么?(同学们:BT),对,像BT,电驴等P2P应用会有这个特征。
第四,就是我们如果我们把单一业务服务器的接口镜像过来,我们就可以看到这台机器的流量状况,我们也可以采用过滤的方式。
Sniffer有一种叫Monitor 过滤器。大家选中一台机器,假设这是你要关心的业务主机,再点一下这个定义过滤器的图标,(范老师在演示),你看他自动产生一个叫NEW1的过滤器,就是这台机器跟任何机器通讯这样的一个过滤器。我们点一下确定。
我们在选择monitor菜单上的select filter,选apply monitor filter,再选new1,确定。
大家注意到,现在host table就只有和这台机器通讯的所有主机流量情况。要注意一点是,monitor filter应用的时候,对所有monitor功能生效,所以在分析单一业务的时候,特别好用。当然如果你们买的是InfiniStream的话,就更方便了,想分析那个业务就分析哪个业务。
怎么样?Host table好用吧?
(同学问:为什么广播也是一台主机?不是说广播地址不会作为主机地址吗?)(编者:这个问题好像比较低级)
这是流量分析技术的特点,再流量分析中,它纯粹从包结构中去取得主机信息,也就是目的MAC,源MAC,目的IP,源IP,他都作为主机处理,广播地址不会在原地址中出现,但在目的地址中出现,也是一台主机。这并不影响我们分析。
好。还有什么问题吗?大家用5分钟自己试一下。
144624_02_365.GIF

好,我们继续看第3个monitor功能,Matrix,我们叫他矩阵,其实就是主机会话情况,很多人用他来发现病毒,其实用他来评估网络状况,和异常流量,是一个很好用的工具。
大家看,一下子就满了,大多数网络中都是这样的,我们可以按一下崭停。
然后来分析
分析什么呢?
看那一台主机的连接数最多,要注意这个连接数不是传输层的连接数,是指谁跟最多的主机连接
按右建选zoom,放大。
找到对外连接最多的机器,选中,按右建,选show select nodes,大家自己试一下。
144625_03_723.GIF

我们注意到这台机器跟很多机器通讯,这正常吗?(同学们:不正常)
这要看实际情况,如果这时一台业务主机,太正常了,如果这时一台PC机,或许在作P2P。
究竟在作什么呢
我们注意到这台机器向公网发出大量的ICMP包,那是在作什么?(同学们:在ping)
对!PING采用ICMP协议,ping可以用来扫描,也可以用来***。
扫描就是看那一台机器活着,接着扫描端口,在***,所以扫描是***主机的前奏。
另外,还可以用ping 来冲击路由器,或占用带宽,是一种DOS***。
大家看这个过程更像哪一种类型。
(同学们:扫描,DOS***)
一般情况下,扫描会是比较连续的地址,我们看这个地址并不连续,我们先排除扫描,当然不是绝对的,也有比较聪明的扫描。
有同学说,这是DOS***,那是冲击路由器,还是占用带宽?
(同学们:冲击路由器)
嘿,这次比较统一,我也觉得他在冲击路由器,我们看,他的目标地址基本不在一个网段,这样路由器收到这样的数据包会消耗大量资源在查找路由表上面。所以对路由器有一定冲击。
一般来说,如果他想占用带宽的话,会发大包,我们发现,包的长度不大,并且一秒钟才发10几个包,所以对贷款冲击不大。
或许大家会觉得这没秒10几个包对路由器冲击也不大呀。大家想像一下,如果有很多机器在作这个操作,那影响就会很大。
大家自己在找一找,是否还有其他机器在作同类事情。
(同学们找出7台这样的机器)
好大家找出7台这样的机器,怎么找出来的?有同学用钢材的办法,有同学用过滤,都市好办法。
现在假设在你们的网络中出现这样的情况,我们发现了异常,接下来怎么做?
(同学们:找到这台机器)
然后呢?
我们可以看看这台机器的任务管理器,看看有什么不常见的进程,把他去掉,看是否解决。在看其他的机器,是否有类似的特征。
这是我的一个学员发给我的,当时他发现这7台机器都有一个特殊的进程,但是他的防病毒软件没有查出来。他手工解决了。
这很好说明用Sniffer可以比防病毒软件更快发现病毒,因为防病毒软件是后知后觉得,什么意思?防病毒软件必须有相应的特征才能查病毒。而Sniffer通过流量可以发现一些特征,一些异常。
但是有一点,我们不能拿Sniffer当防病毒软件用,那不是他的特长,同时也太低沽Sniffer的功能了(同学们笑)
好我们在看看扫描是怎么一回事,大家看这个trace file(范老师在演示,我就不写了)
先是ARP扫描,再端口扫描,接下来就是***了。
(编者:接着我们做了一个游戏,范老师让大家用Sniffer***他的机器,结果1台机器就把他的机器搞死了,这个就不细说了)
144533_04_877.GIF
 
#p# 7、多用鼠标拷贝与粘贴来提高操作速度
  Linux系统安装后,每次启动到字符界面时都会自动运行一个叫“gpm”的程序,该程序运行后就可以用鼠标来拷贝与粘贴了。具体做法是按住鼠标左键拖动使要拷贝的地方突出显示,这时突出显示的区域已经被拷贝,再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了。如果我们在Xwindow下运行Linux系统,拷贝与粘贴的操作与在Windows 9x系统下一样。
  8、快速启动Linux系统
  在DOS下,有一种简单快速启动Linux的方法,那就是load Linux。loadlin.exe是DOS下的可执行程序,它可以在纯DOS环境下迅速启动Linux,而且无需重启计算机,通常我们可以在光盘的“/kernels”目录下找到这个程序。如果不知这个程序被放置于安装盘的何处,可以使用“find -name loadlin*”命令来寻找。找到之后将其复制到DOS分区中,同时还需要复制一份你所使用的Linux内核文件。可以通过Windows直接从光盘复制,也可在Linux环境下使用“mcopy”命令将文件复制到DOS分区;接着再编写一个名为“Linux.bat”的批处理文件,文件内容如下:c:loadlin c:vmlinuz root=/dev/hda1 ro(我们假设loadlin.exe和vmlinuz这两个内核文件都在c盘根目录下,“root”为Linux的根设备,而且Linux处于硬盘第一分区,所以设备名为“/dev/hda1”,“ro”意为readonly)。以后在DOS下要启动Linux时,运行“Linux.bat”就可以了。

   9、增加虚拟缓存
  使用命令:mkswap /dev/hda(假设Linux的驱动器是/dev/hda),swapon /dev/hda;要自动启动Swap,可以把新的分区加入到etc/fstab中去,照着原来swap的写就行了。用"free"检查swap的大小,Linux支持最多16个交换分区,每个交换分区最大128M,没有空闲分区的时候,可以用个大文件来建立。

  下面是执行的一系列命令:
  #dd if=/dev/zero of=swapfile bs=1024 count=8192
  #mkswap swapfile 8192
  #sync
  #swapon swapfile

   10、巧妙使用Tab键
  大家知道在Linux字符界面中输入命令时,有时需要输入很多字符,如果经常这样逐个逐个地输入字符,比较烦琐。假设键入的字符足以确定目录下一个唯一的文件时,我们只须按键盘上的Tab 键就可以自动补齐该文件名的剩下部分,例如要把目录/ccc 下的文件ddddddd-1.2.3.tar.gz 解包时,当我们在命令行中键入到tar xvfz /ccc/d时,如果该文件是该目录下唯一以d起头的文件的话就可以直接按下键盘上的Tab键,这时命令会被自动补齐为:tar xvfz /ccc/ddddddd-1.2.3.tar.gz,从而提高了输入效率。

   11、多用拷贝与粘贴来提高操作速度
  Linux系统安装后,每次启动到字符界面时都会自动运行一个叫gpm的程序,该程序运行后就可以用鼠标来拷贝与粘贴了。具体做法是按住鼠标左键拖动让要拷贝的地方突出显示,这时突出显示的区域已经被拷贝, 再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了。如果我们在Xwindow下运行Linux系统,拷贝与粘贴的操作与在普通的Win9x系统下一样。

  12、提高读盘速度
  在Linux下进行一些设置,让Linux在32位输入输出方式和DMA通道方式下进行工作。设置时,在Linux命令界面中输入命令/sbin/hdparm -cl /dev/hda来打开32bit传输方式,输入命令/sbin/hdparm -dl /dev/hda来打开DMA传输方式,接着再输入命令/sbin/hdparm -kl /dev/hda来使硬盘在Reset之后仍然保持上述的设置,通过这些设置,我们就能提高Linux的读盘速度到1倍以上。
#p#我还真想实现唐无敌的假设:
动动网络结构:所有设备都接HUB
假设把PC2的网关设置为10.41.221.2,而PC1的IP改为10.41.222.6,也许能实现唐无敌的设想,PC1发出到PC2的请求,可以获得IP,经过重定向后达到PC2,而PC2并不直接回复PC1,因为不在一个网段,于是发到网关,NAT转发,而PC1由于同“上级”网关(外网网关)同MAC,于是可以得到报文,于是就建立连接了,嬉嬉 tongue.gif

对Linux做的NAT实现同一更简单

修改NAT规则,增加这样一行就可以了:
iptables -A POSTROUTING -s 10.41.221.0/255.255.255.0 -d 10.41.221.253 -p tcp -m tcp --dport 80 \
-j SNAT --to-source 10.41.221.2
继续实验:简单分析QQ登陆方式

1,关闭DNS之后

在NAT上关闭DUP53端口出站后QQ依然能登录服务器,这也是有些用户判断DNS解析是否正常的一种手段,显示服务器地址是218.18.95.221
二、QQ3种登录方式
  新版QQ不仅仅通过UDP方式登录服务器,还能够以TCP方式登录。本文利用SNIFFER PRO工具监视QQ登录全过程,为了让大家更好的理解QQ登录过程,抓包过程结合防火墙技术,每出现一种登录方式先抓取报文,然后用防火墙关闭该通道,这样QQ就会自动选择其它方式试图登录服务器,反复如此就可以弄清楚QQ所有登录方式和QQ服务器的地址及端口。

1 登录速度最快的UDP方式

报文中61.53.187.229是本地IP地址,219.157.70.130是ISP的DNS服务器IP地址。从报文中可以看到QQ 首先发出7个DNS解析请求,并且顺利获得了相应IP:

sz.tencent.com 61.144.238.145
sz2.tencent.com 61.144.238.146
sz3.tencent.com 202.104.129.251
sz4.tencent.com 202.104.129.254
sz5.tencent.com 61.141.194.203
sz6.tencent.com 202.104.129.252
sz7.tencent.com 202.104.129.253

以上IP也可以通过PING 域名的方法得到。接着,QQ向这7个服务器中的3个发送UDP数据包,它们是发送到

202.104.129.254 的 UDP 数据包
202.104.129.252 的 UDP 数据包
61.144.238.146 的 UDP 数据包

如果服务器在5秒中没有回应,就发如下UDP数据包

202.104.129.251 的 UDP 数据包,
61.141.194.203 的 UDP 数据包,
61.144.238.145 的 UDP 数据包,

再过5秒后发送到 202.104.129.253 的 UDP 数据包

在此过程中如果服务器有回复,QQ选择回复速度最快的一个作为连接服务器,图QQ1中显示分别得到了SZ4/SZ7/SZ6.tencent.com的回应,QQ选择SZ4.tencent.com作为登录服务器。。通过分析可以知道,如果防火墙不允许QQ走UDP方式,那么QQ至少需要10秒才能登录服务器。图QQ1报文清晰的显示本地端口是4000,目的端口是8000。为了以后的实验,这里设置防火墙拦截发往以上7个IP地址的8000端口的UDP数据包。拦截后再也没有发现新的UDP服务器地址。

2 通过80端口的TCP方式

防火墙拦截UDP数据包后,QQ登录服务器的报文。从图中可以看出几点变化:

域名   从类似sz?.tencent.com 改为tcpconn?.tencent.com
协议   不再是UDP而是TCP
端口   目标端口80,本地端口1042(不固定1024-65534)

80端口是HTTP协议默认的端口,浏览网页一般都是走80端口,许多防火墙允许用户浏览网页,所以80端口获准允许通过。tcpconn.tencent.com域名对应的IP是218.17.209.23,继续做实验,发现如下域名与IP对应关系:

tcpconn.tencent.com 218.17.209.23
tcpconn3.tencent.com 218.17.209.23
tcpconn2.tencent.com 218.18.95.153
tcpconn4.tencent.com 218.18.95.153

虽然有4个域名,但是只有2个服务器IP。

3 通过443端口的TCP方式

  继续实验,用防火墙拦截上面提到的服务器80端口通道,继续探索QQ的登录方式。
QQ是通过TCP协议连接到服务器的443端口,443是HHTPS协议的默认端口,HTTPS也是提供用户网页浏览服务的,不过是加密了。

图QQ3中看到的QQ服务器IP是218.18.95.153,实验中还发现218.17.209.23也可以提供服务。反复实验只发现这两个IP地址。

  ,把实验环境换到WINDOWS 2000做NAT方式下的网络中,防火墙安装在服务器上,封堵上面提到的IP和相应端口。局域网内部所有QQ用户都无法登录服务器了。也可以把这些地址加入安全策略中的“IP安全策略”,并选择BLOCK通讯即能有效作到禁止LAN内用户登陆使用QQ。
  还有一类软件需要提一下,就是以MYIM为代表的兼容多种即时通信软件的聊天软件。MYIM可以在QQ卸载后独立运行,而且可以使用多个QQ帐号登录,是不是它的登录过程不同于QQ呢?实验中安装最新版的MYIM (版本:MyIM 1.0 Beta build 0225),防火墙成功的封堵了MYIM的登录,这也好理解,毕竟QQ服务器是相同的。

#p#4 用防火墙封QQ广告

  流行的木子版QQ客户端具备去广告功能,本文提供另外的方法,使用防火墙也可以达到禁止QQ广告的目的。用防火墙拦截所有来自下面网址的数据报文,QQ就无法访问服务器的广告网页了。这些地址是QQ成功登录后在QQ通讯过程中通过SNIFFER PRO抓到的。

61.172.249.133
61.172.249.134
61.172.249.135
218.17.217.105
218.17.217.106
219.133.40.154
219.133.40.152
219.133.40.153
219.133.40.155
219.133.40.15 qqshow-ufs.tencent.com
219.133.40.157 qqring.clent.tencent.com

  不过,QQ仍然弹出系统消息等窗口也非常讨厌,找到QQ的安装目录(默认在C:\Program Files\Tencent\qq),把其中的可执行文件QQexternal.exe文件改名为QQexternalb.exe。再登录QQ就没有窗口弹出来了。以上实验在腾讯QQ2003III Build0117简体中文版下通过。

5 关于QQ安装目录下的Config.db文件

  用记事本打开Config.db文件,发现跟上面提到的域名极为相似的域名:

61.144.238.146:8000
sz.tencent.com:8000
sz2.tencent.com:8000
sz3.tencent.com:8000
sz4.tencent.com:8000
sz5.tencent.com:8000
sz6.tencent.com:8000
sz7.tencent.com:8000
tcpconn.tencent.com:80
tcpconn2.tencent.com:80
tcpconn3.tencent.com:80
tcpconn4.tencent.com:80
tcpconn2.tencent.com:80
tcpconn3.tencent.com:80
tcpconn4.tencent.com:80
http2.tencent.com:80
http.tencent.com:443

  也许这就是QQ记录服务器地址的文件,不过,最后两项用普通QQ帐号没有涉及到,根本就没有发起连接包。也许是收费用户的服务器吧,这里也提供出他们的IP地址:

http.tencent.com 218.17.209.42
http2.tencent.com 61.144.238.149

结束语

  如果腾讯增加新的QQ服务器,QQ也还是可以登录的。另外,用第三方的代理软件如NEC E-BORDER等,支持Anonymous的Socks5代理还是可能绕过去,登陆使用QQ。
终结实验,温故知新,网关的作用

在实验中,利用ping命令来检验主机间能否进行正常的双向通信。在“ping”的过程中,源主机向目标主机发送ICMP的Echo Request报文,目标主机收到后,向源主机发回ICMP的Echo Reply报文,从而可以验证源与目标主机能否进行正确的双向通信。

A与B为实验用的PC机,使用Windows2000 Professional作操作系统。

实验方案:

步骤1:

设置两台主机的IP地址与子网掩码:
A: 10.2.2.2 255.255.254.0
B: 10.2.3.3 255.255.254.0
两台主机均不设置缺省网关。

用arp -d命令清除两台主机上的ARP表,然后在A与B上分别用ping命令与对方通信,在A与B上分别显示,
A: Reply from 10.2.3.3: bytes=32 time<10ms TTL=128
B: Reply from 10.2.2.2: bytes=32 time<10ms TTL=128
用arp -a命令可以在两台PC上分别看到对方的MAC地址。

分析:由于主机将各自通信目标的IP地址与自己的子网掩码相“与”后,发现目标主机与自己均位于同一网段(10.2.2.0),因此通过ARP协议获得对方的MAC地址,从而实现在同一网段内网络设备间的双向通信。


步骤2:

将A的子网掩码改为:255.255.255.0,其他设置保持不变。

操作1:用arp -d命令清除两台主机上的ARP表,然后在A上ping B,在A上显示结果为:Destination host unreachable

用arp -a命令在两台PC上均不能看到对方的MAC地址。

分析1:A将目标设备的IP地址(10.2.3.3)和自己的子网掩码(255.255.255.0)相“与”得10.2.3.0,和自己不在同一网段(A所在网段为:10.2.2.0),则A必须将该IP分组首先发向缺省网关。由于A的缺省网关没有配置,无法对分组进行正确发送,因此显示“目标主机不可到达”。


操作2:接着在B上ping A,在B上显示结果为:Request timed out
此时用arp -a命令可以在两台PC上分别看到对方的MAC地址。

分析2:B将目标设备的IP地址(10.2.2.2)和自己的子网掩码(255.255.254.0)相“与”,发现目标主机与自己均位于同一网段(10.2.2.0),因此,B通过ARP协议获得A的MAC地址,并可以正确地向A发送Echo Request报文。但由于A不能向B正确地发回Echo Reply报文(原因见分析1),故B上显示ping的结果为“请求超时”。在该实验操作中,通过观察A与B的ARP表的变化,可以验证:在一次ARP的请求与响应过程中,通信双方就可以获知对方的MAC地址与IP地址的对应关系,并保存在各自的ARP表中。


步骤3:
在前面实验的基础上,把A的缺省网关设为:10.2.2.1,网关的子网掩码为:255.255.0.0。
在A与B上分别用ping命令与对方通信,各自的显示结果为:
A: Reply from 10.2.3.3: bytes=32 time<10ms TTL=128
B: Reply from 10.2.2.2: bytes=32 time<10ms TTL=127

在A与B上分别用tracert命令追踪数据的传输路径,结果分别为:

A: tracert 10.2.3.3
Tracing route to 10.2.3.3 over a maximum of 30 hops:
1 <10 ms <10 ms <10 ms 10.2.2.1
2 <10 ms <10 ms <10 ms 10.2.3.3
Trace complete.


B: tracert 10.2.2.2
Tracing route to 10.2.2.2 over a maximum of 30 hops:
1 <10 ms <10 ms <10 ms 10.2.2.2
Trace complete.

分析:如步骤2中的分析,由于A认为B与其不在同一个网段,故从A发向B的报文需要经过网关转发;而B认为A与其在同一个网段,故B不需要经过网关直接向A发送报文,从而可以观察到A与B双向通信时传输路径的不对称性。由于ping命令结果显示的是从目标主机返回的Echo Reply报文的TTL的值,而B收到从A返回的Echo Reply报文经过了网关的转发,所以在B中显示该IP报文的TTL值降为了127(从A发出的IP分组的TTL的初始值为128,每经过一个网关,TTL值减1)。


步骤4:
用arp -d命令清除A中的ARP表,在A上ping一台外网段的主机,如中大的WWW Server(202.116.64.8),再用arp -a可观察到A的ARP表中只有缺省网关的MAC地址信息。

分析:当源主机要和外网段的主机进行通信时,它并不需要获取远程主机的MAC地址,而是把IP分组发向缺省网关,由网关IP分组的完成转发过程。如果源主机没有缺省网关MAC地址的缓存记录,则它会通过ARP协议获取网关的MAC地址,因此在A的ARP表中只观察到网关的MAC地址记录,而观察不到远程主机的MAC地址。


步骤5:

使用典型的NAT结构

ADSL----NAT(10.41.221.2/24)-----PC

在PC上做如下改变:
网关:无网关/网关为自己/网关为未使用的本网段IP/网关为未使用的网段IP(10.42.22.10或/11.22.33.44)

Y表示能通讯,N表是不能建立通讯

改变MASK 内部 外部
10.41.221.10/24/30/16 Y N
10.41.222.10/8/24/16/25 N N

网关为10.41.221.2/24

改变MASK 内部 外部
10.41.221.10/24/30/16 Y Y
10.41.222.10/8/24/16/25 N N

网关为10.41.221.2/255.255.0.0

改变MASK 内部 外部
10.41.221.10/24/30/16 Y Y
10.41.222.10/8/16/24/25 Y Y

以最后一个例子分析,当PC的MASK设置为8和24时,虽然它们都可以上网,但是走路的方式1却不同

以8位做MASK时,10.41.222.10经过与运算认为10.41.221.2在一个网段,于是直接发起连接,经过NAT,回应的报文经过10.41.221.2时,它经过运算也认为PC在自己的网段,通讯就建立了。
以24位做MASK时,PC10.41.222.10经过与运算认为10.41.221.2不在一个网段,于是发起ARP请求得到网关的MAC,并把报文发送给网关,经过NAT,回应的报文经过10.41.221.2时,它经过运算认为PC在自己的网段,通讯就建立了。

#p#
毫无疑问,一个好的及时通讯软件必须具备良好的穿越防火墙的能力,随着微软加强MSN的开发步伐,MSN的用户对其闯关能力提出了更高的要求,了解MSN怎样

本节内容介绍了对受NAT和防火墙问题影响的Windows Messenger功能,这些功能包括:即时消息和出席(Presence) 、音频和视频、应用程序共享和白板、文件传输以及远程协助。

一、防火墙或者NAT组件的具备通用即插即用(UpnP)能力

如果通信双方使用的是具有通用即插即用(UpnP)能力的防火墙或者NAT组件,所有的Windows Messenger功能都可以正常使用。如果使用的是WINME/XP/2003的ICS共享,那么具备UpnP功能,而2000的NAT共享就不具备UpnP功能。
具有UPnP能力的防火墙 比如Windows XP防火墙,即Internet Connection Firewall(Internet连接防火墙),便是具有UPnP能力的防火墙。 Windows XP 中的Windows Messenger可以通过打开数据发送、连接或媒体流所需的端口对这种能力加以利用。

这是由于UPnP规格中具有"NAT Traversal"功能,使用该功能可以使WindowsXP中标准安装的聊天软件"Windows Messenger"在运行中不会出现任何问题。 所谓的NAT(network address translation),是指在因特网中使用的全球IP地址可以同在LAN内使用的私人IP地址互换的功能。所谓连续Traversal,则意味着"完全搜索"。Windows Messenger虽然具IP电话及视频聊天功能,但这种功能无法经由使用NAT的宽带路由器使用。这是由于在使用此项功能时,Windows Messenger在数据部分也嵌入了IP地址的缘故。在NAT功能中,虽然位于IP数据包头部的收信方及发信方的IP地址可以更换,但数据内的地址无法更换,因此前后不统一,无法进行通信。NAT Traversal 由路由器将服务提供商分配的全球IP地址等信息通知给LAN内的计算机。LAN内的个人电脑收到来自路由器的信息后,可以向因特网应用方传送WAN方面的IP地址等信息。如果因特网应用方采用这一结构,可以在一开始就将WAN方面分配到的IP地址写入分组的数据中,所以在通过NAT进行通信时,IP数据包头部和数据部可以使用相同的全球IP地址,从而便可以进行通信。

Windows Messenger使用了Windows XP及较早期Windows版本中的UPnP架构。随着越来越多的Internet网关设备开始为UPnP提供支持,这种解决方案的可用性将变得越来越强。

实验:验证ICS的UPnP自动端口映射功能(来自info521)

MSN Messenger中已经使用了UPnP自动端口映射,我们不妨先来看看MSN Messenger中的UPnP自动端口映射究竟是什么样子的。
网络络环境:
网关:192.168.0.1,Windows XP Professional SP1,中国电信ADSL,速率1M,使用ICS让内网电脑共享上网。内网电脑192.168.0.99,Windows XP Professional SP1,使用MSN Messenger 6.1。

图截于网关,注意我们关闭了“允许其他网络用户控制禁用共享的Internet连接”。与此同时,我们在内网电脑192.168.0.99上运行MSN Messenger 6.1的截图。

请注意,在关闭了网关上“允许其他网络用户控制禁用共享的Internet连接”的情况下,内网电脑192.168.0.99上MSN Messenger 6.1的高级连接信息显示为“您是通过非UPnP IP受限的NAT连接到Internet的。”

如果我们打开网关上的“允许其他网络用户控制禁用共享的Internet连接”,情况又将如何?
打开网关上的“允许其他网络用户控制禁用共享的Internet连接”后,内网电脑192.168.0.99上MSN Messenger 6.1的高级连接信息显示为“您是通过UPnP IP受限的NAT连接到Internet的。”

这时候,如果你使用内网电脑上的MSN Messenger 6.1与其他朋友语音聊天或传输文件的同时,再看看网关上的ICS的高级选项,请注意奇妙的变化,如图4(在4楼)。


我们可以惊奇地发现在ICS的“高级设置”中,比图1多了一项“msnmsgr(192.168.0.99:2292)16328 TCP”。etuotech以BTFans的人格担保,这一项并非我手动加上去的,而是由内网电脑192.168.0.99上运行的MSN Messenger 6.1向网关发出的UPnP自动端口映射指令自动添加的。

经由这项实验,可以得出以下几个结论:
1、ICS确实支持UPnP自动端口映射;
2、ICS中有权限设置,可以手动设置网关是否接受内网电脑发起的端口映射的请求;
3、MSN Messenger 6.1的确具备UPnP自动端口映射功能,而且不用在MSN Messenger 6.1中进行任何设定。

二、防火墙或者NAT组件不具备通用即插即用(UpnP)能力

1、在防火墙同一侧的通信双方可以使用Windows Messenger的所有特性。
2、不同的应用需要映射不同的端口

即时消息和出席(Presence)功能,不需要映射任何端口。

一般来说,防火墙和NAT设备对IM和出席功能不会有任何的影响。如果Windows XP客户机可以创建并维护一条到服务器的连接,那么其它的IM和出席也能够沿着相同的途径进行通信。如果在SIP客户端与服务器间存在一个NAT设备,那么,反映在SIP消息中的端口和地址可能会与实际的端口和地址有所不同。Windows Messenger拥有的某些机制可以解决这些问题。


音频和视频

在协商进行一个音频-视频会话的时候,音频-视频流会选择使用动态端口。在使用动态端口时,应用程序无需考虑系统中还运行了哪些其它的应用程序以及这些程序都使用哪些端口资源即可正常工作。


用来传输应用程序共享(AS)和白板(WB)数据的TCP连接使用1503端口,您需要启用该端口,以便数据能够通过所有的防火墙。 因为TCP数据连接使用一个特定的端口(1503),如果客户端位于一个不具备UPnP能力的NAT设备之后,该端口必须被映射到该客户端上。以确保能够通过最常见的NAT设备进行通信。这还意味着:该端口一般不能被NAT设备后面的其它客户端所使用;在一个时间中,只有位于相同NAT设备后面的一个客户端能够拥有一个AS或WB会话。


文件传输

外来和外出的TCP连接都使用6891到6900间的端口。这使得每个发送方最多只能建立10条文件传输连接。在通信双方之间的所有防火墙上,这些端口都必须被开放。如果您仅仅开放6891端口,用户每次只能建立起一条文件传输连接。

远程协助

远程协助使用远程桌面协议(Remote Desktop Protocol,RDP);与Microsoft Terminal Services使用同一个协议。RDP建立在TCP连接之上。Windows Messenger使用基于服务器的会话邀请逻辑(与FT类似)建立远程协助会话。所以,它同样会因为NAT产生与FT同样的问题。

远程协助包括了一个附加逻辑,以应对可能遇到的NAT环境。该逻辑会简单地尝试从会话双方两个方向上建立TCP连接。如果只有一个客户端位于NAT设备之后,那么连接仍然可以建立,远程协助会话也依然可以进行。如果两个客户端都位于(不具备UPnP能力)NAT设备的后面,那么连接将不能建立。只有在远程协助中加入了语音会话时,这个附加的SIP邀请逻辑才会被加入。

除了由NAT地址转换产生的问题(只有在通信路径中存在多个NAT设备才会出现问题)之外,远程协助协议需要 使用3389端口建立TCP连接。这意味着,通信双方之间的所有防火墙都必须开放3389端口。


三、总结

IM 和出席功能在大多数防火墙配置中都可以使用。

要想为处于防火墙两侧的通信双方提供AV支持,5004到65535之间的所有UDP端口都必须打开,以允许SIP和媒体流(RTP)数据通过防火墙。这种设置是必需的,因为这些操作使用动态端口。AS 和 WB也使用动态端口进行通信。
Ft可以通过在防火墙上开放6891到6900间的端口得以实现。使用远程协助功能需要开放3389端口。

为了使Windows Messenger的语音和视频通信能够通过一个不支持UPnP的防火墙,您需要对防火墙进行配置,使其允许UDP端口5004 – 65535间的外来流量能够通过防火墙。

对于其它通信目的,您可以相应启用以下端口:

文件传输:tcp 6891(如果想实现10条并发的文件传输连接,您需要开放6891到6900间的所有端口)
应用程序和白板共享:tcp1503
远程协助:3389


缩略术语表

ALG–应用程序层网关
AS–应用程序共享
AV–音频和视频
FT–文件传输
ICF–Internet连接防火墙
ICS–Internet连接共享
IM–即时消息
ISA–Internet Security and Acceleration
ISP–Internet 服务提供商 NAT–网络地址转换
RDP–远程桌面协议
RTC–实时通信
RTP–实时传输协议
SDP–会话描述协议
SIP–会话初始化协议
SSL–安全套接字层
TCP–传输控制协议
UDP–用户数据报协议
UPnP–通用即插即用
WB–白板(共享)
#p#好,我们再看第四个monitor功能,ART,Application Response Time,应用响应时间。
应用响应时间是分析应用的一个很好工具,主要用来分析应用的性能。
ART是指一个客户端发出一个请求,到服务器响应回来的时间差。
一般来说,应用响应的快慢,是应用性能的一个重要指标。
应用性能主要决定于几个因素:网络因素、服务器因素、客户端因素、应用协议因素
我们先看看如何操作,再来看看应用这个功能。
我们打开ART,大家看到Http的应用响应时间分析,这里有几个列,server Address,Client Address.
他是怎么知道谁是Server,谁是Client?其实也就是看端口号和IP的对应关系,比如如果一个数据包的目的IP是1.1.1.1,目的端口是80,Sniffer就会认为1.1.1.1就是Http服务器。对应的源IP就是Client。
AvgRsp—平均响应时间
90%Rsp—90%响应时间,去掉头尾个5%,其实我个人觉得去掉最大的10%更合理一些。
还有最大最小的响应时间,这些都是以毫秒为单位。
接着就是TotalRsp,这个是响应次数,单位是次。
接着是0到25毫秒的响应有多少次,25到50毫秒的响应有多少次。。等等。
后面还有server发送子节数,client发送子节数,timeout次数等等,5秒不响应则Timeout。
我们再看看怎么增加其他应用,按属性,选择display protocol,添加你关心的协议,再确定,ART会重新刷新(范老师在演示)
你看我这里就有了telnet,Oracle。
(同学们:我们没有Oracle)
我知道,其实平时我们更关心的是我们关键业务,所以我们要把我们关键业务的端口添加进来,怎么添加?大家跟我来,
选菜单上的toolsàoptionsàprotocol,拉到下面,添加一种应用,比如Oracle,端口1521。
再在属性里把这个新协议选上,有了吗?(跑去解答问题去了)
好,大家都做出来了,我们平常分析关键业务就行了,有一点要说明,一种业务可能有多个应用,也就是多个端口,需要同时分析。
有些同学喜欢把所有well known的协议添加到协议列表里,我在共享目录上有两个注册表注入工具,大家只要运行以下就可以将这些常用端口都注入到协议列表里,就不用一个一个敲了。其实我个人觉得不太必要,多了反而乱。
大家打开注册表,我们看一下协议列表,找到这两项:
HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates, Inc.\Sniffer\4.7\1CommonSettings\Protocols\IP Protocols\TCP
HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates, Inc.\Sniffer\4.7\1CommonSettings\Protocols\IP Protocols\UDP
这就是协议列表。注意不要有重复的,否则会报错。
144532_02_514.GIF
 
(编者:这是范老师的板书)
应用响应时间是评估影响应用性能因素的一种很好的工具。我们看这样一个例子。
比如通过client通过广域网连接到服务器。
我们同时在AB两点部署Sniffer,分析某一业务的响应时间。
假设Sniffer在A点,他所看到的响应时间包括网络消耗时间和服务器处理时间
在B点的Sniffer看到的响应时间主要是服务器处理时间。这样我们比较AB两点的响应时间,来判断影响性能的主要因素是网络还是服务器。
假设A点的响应时间是400毫秒,B点的响应时间是100毫秒,我们就知道A点的400毫秒中有300毫秒是消耗在网络上的,我们可以认为对于这个业务,性能的主要瓶颈在网络上,如果我们在深入分析是距离因素还是贷款因素,我们就可以判断是否有改善空间。这个细节我们在第二门课讲。
如果B点的响应时间达到250毫秒,我们可以认为改善服务器的性能对于这个应用来说会更明显一些。
如果我们Sniffer用多了。我们就可以做一个AB点的响应时间的基准线,假设正常情况下A点的响应时间是400毫秒,有一天你发现平均响应时间达到600毫秒,你就应该关注了,或许用户还没有抱怨,如果你这时分析应用性能下降的原因,你就可以避免故障的产生,同时避免用户投诉。当然你也会有B点的基准线,比较跟平时有何不同,很快就知道应该检查网络还是服务器。
对于ART还有什么不清楚地吗?或者大家平常还有其他用法?
(编者:本来这次想写完第一天课程再共享,看到论坛中大家在催,就先写到这吧,过几天就可以把第一天全部内容发完)
(编者:范老师已经找过我了,他说他的MSN有很多陌生人,后来看了内容就知道是我写的,他说分享知识可以,但不要透露敏感信息,还说我比他讲得好,汗。。。。所以这次我没有完全按他的录音翻译,自己有所删节,但基本上是原汁原味。)
(编者:我发现写这个真的很累,因为有很多演示,很难写出来,最近很忙,我都没有忘记我的承诺,给我加油,好吗?)
(编者:所有PPT都市我自己做的,范老师的ppt是不给我们的,我很努力吧!)