怎样分析数据包判断网络故障

这个问题我也来说两句从网络抓包是可以分析出很多东西,其中一项就是用来做排错。根据个人的实际经验,用抓包来排错有分为几种情况:1、通过数据包的有无来判断故障,一般用于防火墙策略调试等场景,在防火墙上进行抓包,或交换机上镜像抓包,或者这交换机内嵌抓包功能。这种抓包无需进行过多分析。2、网络故障,已经明确网络设备配置不存在问题的情况下,通过抓包来判断问题,我把这主要分为行为判断和协议判断。1)最常见的是通过抓包数量来判定网络行为的是否正常,比如ARP病毒爆发一定会收到大量ARP数据包;攻击行为也很多时候体现为大量数据包(但是一般判断这种攻击行为抓包不会放在第一步,只是在确定攻击特征时需要抓包);当然还有其他很多情况,适用于通过抓包数量来分析的。2)通信质量判断,抓包存在大量的重传,此时通信质量一般都不太好。另外有视频和语音的应用场景中,有时需要通过时间统计来判断通信毛刺,来分析定位视频和语音通信质量问题。3)协议判断,比如win2008和win2003通信时因为window scale不兼容,导致窗口过小,而程序设计适当时,通信变动极其缓慢。这些判断都是建立在抓包协议分析的基础上的;另外不同厂商SIP通信对接也有可能会用到协议分析,其中一种方式就是抓包分析。综合而言,协议分析时要求比较高,很多人都可以说把基础学好,但是对应实际工作多年的人,TCP/IP的协议学习一般都是多年前的事情,而且不同操作系统,对于协议栈的实现是有区别的,这部分析的工作一般都是出现问题后有针对性查资料来解决的。说了这么多,针对抓包分析我个人的意见是:排查问题关键是思路,真的用到协议层判断的场景相对而言还是比较少,初学这不必过分纠结。但是从另外一个方面来看,能深入协议层进行排错的网工,都是具备钻研精神的,属于高级排错的一部分。
■网友
在网络上捕获的数据包只能让你知道什么包发出来了,什么包没有收到,那至于什么包没有收到还是需要对特定的协议的了解。举个例子:比如你想trouble shooting DHCP , 捕获的包只有 DHCP discovery ,而且不停地发,没有DHCP offer,如果熟悉这个协议,你就可以有以下推测:DHCP relay 没有配置好,DHCP server down 掉了,或者服务没开,或者防火墙block掉了DHCP报文,或者ACL deny 掉DHCP报文,等等。所以抓包工具只是一个辅助工具,如果想学习一个协议,先找个容易的例子 ,然后做个实验,等理解了在看看RFC文档,可以有更深刻的认识。
■网友
tcpip详解,三卷,你先通读一遍,然后再精读两遍第一卷,协议。这样你能看懂报文了。剩下的,你要分析什么协议,就去看看这个协议的实现吧。基本思路就是,出了故障,做分析,定位故障的层面,涉及到哪个协议,哪个阶段,然后抓包,筛选出对应的报文,然后读报文,看报文中的字段反应的情况是否和你分析的一致,如果和你分析的一致,则证明你的分析很大可能是正确的,按你的分析去排错,如果和你分析的不一致,则推倒重来
■网友
谢邀。第一,推荐一本书《wireshark数据包分析实战》,了解常用的工具如何使用。第二,要熟悉需要分析协议内容,例如分析sip协议的话,需要熟悉常用报文的每个字段是怎样的?还是举个例子,sip200消息是做什么用的?它的格式是怎样的?应该携带的字段是哪些?
■网友
会抓包和会分析包是两个概念,会分析包和判断出问题又不一样。建议楼主可以从实际问题出发,从协议以及信令入手,层层来看,找到关键字段。
■网友
用故障诊断命令(ping、dig、traceroute)不是也一样可以判断网络故障,比抓包看数据方便我现在经常用网速通APP来查故障,其中有个帮帮测可以一次执行DNS检测、网站检测、路由检测,报告很有用怎样分析数据包判断网络故障


推荐阅读