Wireshark使用指导书

上传人:沈*** 文档编号:143196725 上传时间:2022-08-25 格式:DOCX 页数:47 大小:1.66MB
返回 下载 相关 举报
Wireshark使用指导书_第1页
第1页 / 共47页
Wireshark使用指导书_第2页
第2页 / 共47页
Wireshark使用指导书_第3页
第3页 / 共47页
点击查看更多>>
资源描述
83efc6f87410ceb9fc0aa227543038e7.docx内部公开产品名称Product name密级Confidentiality levelLTE内部公开产品版本Product versionTotal 47pages 共47页LTE数传问题分析Wireshark使用指导书(仅供内部使用)For internal use only拟制:Prepared by魏志 00128876日期:Date2011-12-14审核:Reviewed by日期:Date审核:Reviewed by日期:Date批准:Granted by日期:Date华为技术有限公司Huawei Technologies Co., Ltd.版权所有 侵权必究All rights reserved修订记录Revision record日期Date修订版本Revision version修改描述 change Description作者Author2011-12-141.0初稿建立魏志 00128876目 录Table of Contents 1概述52软件安装52.1安装WinPcap提示冲突且不可删除52.2安装Wireshark后网卡选项中找不到网卡62.3Windows 7下提示NPF驱动未运行,找不到网卡63数据采集63.1使用Wireshark采集数据63.1.1Wireshark抓包选项83.1.2捕捉滤波器103.2使用其它软件采集数据113.2.1Windows 7下Wireshark抓包找不到Huawei E398虚拟网卡,利用MS Network Monitor采集数据114软件设置124.1Wireshark基本界面124.2参数设置134.2.1如何配置Packet list pane(包列表显示区)显示项134.2.2IP协议配置154.2.3TCP协议配置154.2.4ESP协议配置165数据处理165.1常规技能165.1.1时间设置165.1.2如何快速找到某个包175.1.3指定协议解析175.1.4如何自动重组分片包185.2文件处理185.2.1仅保存需要的数据185.2.2多文件合并205.2.3转换文件格式输出215.3Wireshark自带的命令行工具225.3.1如何使用Wireshark命令行工具225.3.2利用editcap分割文件236数据分析236.1Wireshark数据分析基本知识236.1.1Wireshark基本标识236.1.2抓包统计 Summary246.1.3流量统计 IO Graphs256.1.4汇总所有日志的专家信息 Expert Info Composite276.1.5交互流图 Flow Graph286.2TCP基本参数分析296.2.1TCP接收窗口296.2.2TCP发送窗口306.2.3其它TCP基本参数306.2.4RTT环回时延316.2.5如何过滤某一条TCP链路326.3显示滤波器分析法326.3.1显示滤波器表达式326.3.2如何把抓包中的某个字段设为滤波器336.3.3常用显示滤波器346.3.4TCP显示滤波器族346.3.5利用显示滤波器分析丢包366.3.6利用显示滤波器分析乱序376.3.7利用显示滤波器分析窗口收缩376.4图形分析法386.4.1Wireshark的图形控制386.4.2TCP流量图 Throughput Graph406.4.3TCP接收窗口图 Window Scaling Graph406.4.4时序图介绍 Time-Sequence Graph416.4.5Stevens时序图 Time-Sequence Graph (Stevens)426.4.6tcptrace时序图Time-Sequence Graph (tcptrace)426.4.7利用tcptrace时序图分析TCP链路异常437使用Wireshark分析LTE数传问题流程447.1.1常规步骤447.1.2使用Wireshark分析LTE数传问题流程图45 2022-8-23华为机密,未经许可不得扩散第4页,共47页83efc6f87410ceb9fc0aa227543038e7.docx内部公开1 概述Wireshark是一款自由、开源的包分析软件。主要用于网络问题定位、分析,软件和通信协议开发及教育。Wireshark原名Ethereal,2006年5月因为商标问题改名Wireshark。Wireshark是跨平台软件,可以运行在Microsoft Windows以及各类Unix衍生的操作系统下,在诸如Linux、Mac OS X、BSD、Solaris等各类操作系统下都可以见到它的身影。Wireshark通过集成pcap(Packet CAPture)实现抓包。本文基于Wireshark 1.6.2版本写作,部分功能选单在之前的版本中并不存在,请注意保持版本同步。如未特殊说明,以下描述均基于Windows平台。2 软件安装由于Wireshark通过pcap实现抓包,新版的Wireshark安装包集成了WinPcap的安装包。Wireshark和WinPcap的安装比较简单,这里就不累述了,但要注意安装操作系统对应的版本(32-bit or 64-bit)。下面简单描述一下在安装过程中经常遇到的几个典型问题:2.1 安装WinPcap提示冲突且不可删除如图。由于WinPcap被广泛的应用于各类抓包软件,所以很可能你的机器上已经安装了其它版本的WinPcap,建议是按照提示卸载其它版本的WinPcap,安装Wireshark自带的版本。由于我司某著名软件也使用WinPcap,对于我司的机器,可以不用安装新的WinPcap,一般情况下也不影响Wireshark的使用。2.2 安装Wireshark后网卡选项中找不到网卡如图,安装Wireshark后网卡选项中找不到本机的网卡实例,可以通过下面的步骤解决:1. 重启电脑,如果重启后仍然不能解决,去第二步;2. 卸载Wireshark和WinPcap,删除如下文件后再重新安装Wireshark和WinPcap:%windir%system32wpcap.dll,%windir%system32packet.dll和%windir%system32driversnpf.sys,%windir%就是你的系统文件夹,比如说你的系统装在C盘,那么%windir%system32wpcap.dll就是c:windowssystem32wpcap.dll;如果删除以上文件时提示无法删除,可以选择重启机器到安全模式下再去删除或者安装unlocker软件解决。安装完unlocker后,右键点击需要删除的文件,选择Unlocker进行删除。2.3 Windows 7下提示NPF驱动未运行,找不到网卡如图,这是由于WinPcap在win7中注册为非即插即用驱动程序(WinPcap Packet Driver (NPF))引起的,需要以管理员身份手动启动NPF。程序 运行 cmd,右键,以管理员身份运行,输入net start npf手动启动NPF服务即可。也可以输入sc config npf start=auto,以后每次系统启动将自动启动NPF服务。3 数据采集3.1 使用Wireshark采集数据Wireshark功能相当强大,以下重点描述LTE数传问题定位过程中常用的手段,关于Wireshark的详细选单和用法请参阅Wireshark帮助手册。启动Wireshark,在主界面的左上角即是抓包相关的选项。通常按照如下两种方法启动Wireshark抓包:点击Interface List,或者选择菜单Capture - Interfaces,或者按快捷键Ctrl+I,选择网卡启动抓包。当系统中存在多个网卡时,需要根据显示的IP地址选择正确的网卡然后点击Start以默认选项启动抓包。如果需要设置抓包选项,请点击对应的Options按钮。也可以在主界面点击Capture Options,或者选择菜单Capture - Options,或者按快捷键Ctrl+K启动抓包选项设定,按需设定选项后再启动抓包。停止抓包:按工具栏的停止键,或者选择菜单Capture - Stop,或者按快捷键Ctrl+E停止抓包。3.1.1 Wireshark抓包选项 Capture区Interface项:第一个下拉框可以选择是本地抓包还是远程抓包,一般设定Local就可以了,第二个下拉框会显示本地机器可供抓包的网卡,根据实际需要选择正确的网卡即可,选择网卡后,下一行的IP Address会显示该网卡绑定的IP地址(可能会有多个),可以利用IP地址来找到正确的网卡。Link-layer header type:保持默认的Ethernet即可。Wireless Settings和Remote Settings:一般不用。Capture packets in promiscuous mode:在混杂模式下抓包。混杂模式:抓本网卡能接收到的所有数据包,不管是不是送给自己的。建议开启。Capture packets in pcap-ng format:Wireshark的下一代抓包文件格式,当前版本尚在开发中,不建议开启。Limit each packet to:限制抓包包长,截取对应字节数的包头部分。在抓包数据量很大时开启可以有效减小文件大小,Client/Server设置100Bytes,S1口设置150Bytes是比较安全的值。如果S1口开启了安全加密,不应该限制抓包包长。S1口开启安全加密的情况下,由于ESP协议封装除了报头以外,还存在报尾,这个时候不能进行抓包包长限制,否则Wireshark的解析功能不能正常工作。Buffer Size:抓包文件被保存到硬盘之前暂存的内核缓存大小。如果发现Wireshark抓包时出现丢包,可以将这个值调大。Capture Filter:捕捉滤波器。在抓包时进行过滤,只抓取满足设定规则的包,如果能明确抓包条件,建议使用。详细设定参见3.1.2。Compile BPF:一般不用。 抓包文件存储File:保存抓包文件到用户指定的文件位置。如果不指定,Wireshark将保存抓包数据到一个临时文件中。Use multiple files:保存Wireshark抓包文件到多个文件中,防止单个抓包文件超大。当需要长时间抓包,或者抓包流量非常大的时候建议使用。下面是多个文件分割的条件:第一个选项,达到一定的大小即转存文件;第二个选项,达到一定的时间即转存文件;第三个选项,文件重复覆盖,达到设定的文件个数时开始从头覆盖旧文件;第四个选项,保存文件的最大数量,达到此文件数量即停止抓包。 自动停止抓包选项顾名思义,达到设定的包数量/字节数/时间即自动停止抓包。 显示选项Update list of packets in real time:实时更新抓包,如果不勾选,抓包数据在停止抓包后才会显示出来。Automatic scrolling in live capture:抓包时自动滚屏。Hide capture info dialog:是否在抓包时隐藏如下信息框: 名称解析Enable MAC name resolution:主要是否允许根据MAC地址解析制造商Enable network name resolution:是否允许根据IP地址通过DNS解析主机名Enable transport name resolution:是否允许根据TCP/UDP端口解析知名协议3.1.2 捕捉滤波器Wireshark的捕捉滤波器使用libpcap滤波语言,主要是通过and/or/not三个连接符将各个原语表达式连接起来,其格式如下:not primitive and|or not primitive .经常使用的过滤表达式也可以点击Capture Filter后保存下来,方便以后作为固定规则使用。下面举例说明一些常用的过滤规则: 按地址过滤host x.x.x.x 不区分源IP还是目的IP,只要包含此IP的数据包全部过滤出来;src host x.x.x.x 按源IP过滤;ether host yy:yy:yy:yy:yy:yy 按MAC地址过滤; 按协议过滤直接输入协议类型即可,如tcp, udp, ip, icmp, arp等等; 按端口过滤port 8080 过滤8080端口的数据;3.2 使用其它软件采集数据Wireshark支持丰富的文件格式,具体支持的文件格式可以在帮助文档中查阅。由于Wireshark通过pcap实现抓包,因此可以利用同样使用pcap的程序来采集数据再导入到Wireshark中进行分析,譬如tcpdump、CA NetMaster、Microsoft Network Monitor。3.2.1 Windows 7下Wireshark抓包找不到Huawei E398虚拟网卡,利用MS Network Monitor采集数据Win7下E398使用WWAN(Wireless Wide Area Network无线广域网)驱动会注册为移动网络设备,这时候Wireshark可能不能识别E398的网络接口导致无法使用Wireshark来抓包。由于Wireshark支持多种文件格式的解析,遇到这种情况可以使用MS Network Monitor来抓包再导入Wireshark进行分析。Wireshark无法识别E398对应的网络接口:使用MS Network Monitor则没有问题:MS Network Monitor的使用比较简单,安装完成后启动程序,选择E398对应的网络接口,点击New Capture然后点击Start即可开始抓包。还可以通过菜单Tools - Options做类似Wireshark的抓包选项基本配置。4 软件设置4.1 Wireshark基本界面如下图,Wireshark的基本界面如下,分为Menu(菜单栏),Main toolbar(主工具栏),Filter toolbar(显示滤波器工具栏),Packet list pane(包列表显示区),Packet details pane(包协议解析区),Packet bytes pane(二进制码流区),status bar(状态栏)七个部分。对于Packet list pane(包列表显示区),直接点击每个Column的title可以对该栏进行升序或者降序排列。4.2 参数设置Wireshark的设置选项位于菜单Edit - Preferences,分User Interface、Capture、Printing、Name Resolution、Statistics、Protocols几大部分。各项参数的设置可以查阅Wireshark帮助手册,下面重点介绍帮助手册中没有但是我们常用的几个技巧:4.2.1 如何配置Packet list pane(包列表显示区)显示项Wireshark在包列表显示区默认显示序号、时间、源/目的IP、协议、总包长和信息等7项,这是在菜单Edit - Preferences - User Interface - Columns里配置的。某些情况下,我们希望将自己常用的观察项也直接显示到包列表显示区,方便直接观察值。点击Add按钮增加一个Column,直接单击New Column可以修改名称,比如我们要观察MTU,那么输入MTU。同时,在选中该行的情况下,点击属性栏的Field type下拉框,这里可以选择各种观察项,如果你的观察项不在选择列表中,那么选择Custom,这时下面的Field name会变成可编辑状态,输入你要观察的内容,比如我们要观察MTU,那么输入ip.len,本栏的语法规则同显示滤波器的语法是一样的,可以参考6.2节。Field occurrence栏保持0即可列出全部符合规则的事件。点击OK后,包列表显示区就增加了我们想要的字段。4.2.2 IP协议配置点击菜单Edit - Preferences - Protocols - IPv4可以对IP协议的解析进行配置。各配置项基本可以通过查看项目名即可知道意义,这里需要重点关注Reassemble fragmented IPv4 datagrams这一项,如果抓包中存在分片包,请务必勾选此项,Wireshark可以直接对分片包进行重组后显示。4.2.3 TCP协议配置菜单Edit - Preferences - Protocols - TCP。重点注意三项,Analyze TCP sequence numbers,此项务必勾选,否则显示滤波器中所有tcp.analysis开头的滤波选项都将失效;relative sequence numbers,此项控制TCP分析是使用相对序列号还是绝对序列号,需要根据不同的场合进行切换;Track number of bytes in flight,勾选此项可以用来追踪链路中正在进行传输的包容量,以此可以用来近似跟踪发送缓冲的使用情况。Relative sequence,相对序列号。TCP使用4个字节来标识其传送数据的字节流,由于每次建立TCP链接时,其ISN(Initial Sequence Number)可以近似理解为由操作系统随机生成,并非从0开始,此时这4个字节的序号我们可以理解为绝对序列号。由于使用绝对序列号并不方便,Wireshark将一个新的TCP链接所有的序号都减去ISN,得到一个从0开始的序号,称为相对序列号。当分析一个从建链开始的单独TCP链接时,使用相对序列号较为方便;当需要进行两个并非从头开始抓包的抓包文件对比时,使用绝对序列号比较方便。4.2.4 ESP协议配置在LTE中,当传输S1口进行了安全加密的情况下,抓包文件通常无法分析。Wireshark提供了分析ESP加密文件的能力,在菜单Edit - Preferences - Protocols - ESP中进行配置。在S1口设置为ESP空加密的情况下,需要将Attempt to detect/decode NULL encrypted ESP payloads选项勾选,才能对ESP协议进行处理。5 数据处理5.1 常规技能5.1.1 时间设置在抓包的时候,对每一个包,Wireshark会利用WinPcap记录一个时间戳,这个时间来源于操作系统内核,精确到微秒,并且写在抓包文件内,所以我们可以利用Wireshark作精确度相当高的时间分析。 时间精度设置菜单View - Time Display Format,如图所示,可以选择各种时间精度。除非系统增添了特别的专用计时设备,Wireshark统计到微秒的精度。 时间计算方式设置菜单View - Time Display Format,如图所示,可以设置时间显示格式是从年开始还是从天开始。也可以设置每个包的时间戳是否都是相对于UTC标准时间,还是相对于第一个抓包的时间差,或者是相对于上一个抓包的时间差,再或者是相对于上一个显示包的时间差。 包时间参考点选中某个包,右键选择Set Time Reference,可以将某个包设为时间参考点,这样此后的包都将以这个包的时间作为时间原点来计算时间差,这项功能在将某个request设为参考点统计响应时间时特别有用。可以在一个抓包文件中设置多个时间参考点。再次选择此项则为取消。5.1.2 如何快速找到某个包在知道包序号的情况下,点击菜单GO Go to Packet或者直接按快捷键Ctrl + G,然后输入包序号,可以直接跳转到对应的包处。5.1.3 指定协议解析Wireshark对于每个协议都有一个自己的解析器,Wireshark在打开文件时会试着去查找最合适的解析器来解包,但是这个过程可能出错,比如用一个不常用的端口代替80端口进行HTTP业务。这种情况下,我们需要对抓包文件进行指定协议解析。有两种方法来控制解析协议:一是禁止某种协议解析器;二是指定抓包文件被解析为某种协议。 禁止某种协议解析器菜单Analyze - Enabled Protocols,这里列出了所有Wireshark支持的协议列表,如果不想抓包文件被解析为某种协议,点击取消对应协议前方的勾即可。 Decode As菜单Analyze - Decode As或者在包列表上直接点击右键选择Decode As,这里可以直接指定Link、Network、Transport三层使用的具体协议。5.1.4 如何自动重组分片包按照4.2.2配置即可。5.2 文件处理5.2.1 仅保存需要的数据有时候Wireshark抓包得到的数据并非全部都是我们想要的,还可能存在很多杂包,或者我们只想截取其中的一部分进行分析,同时,LTE数据量巨大,抓包得到的数据通常很大,需要作进一步处理,化大文件为小文件,提高每次打开文件分析问题的效率。下面介绍如何通过Wireshark的Save As功能保存需要的数据。选择菜单File - Save As打开对话框,Packet Range这部分就是我们要关注的内容。当设置不同的条件时,中心块的数字会显示符合条件的包数量。横排是条件,纵向另有两个约束条件,Captured表示保存整个抓包文件范围内满足条件的包,Displayed表示仅保存显示在Wireshark界面上满足条件的包,造成这种差异的原因是因为我们可以使用显示滤波器对抓包进行过滤,只在界面上显示出一部分抓包结果,关于显示滤波器的内容请参见5.1节。 All packets:Captured表示所有抓包,Displayed表示滤波后显示的抓包; Selected Packet:由于Wireshark同一时间只能选择一个包,所以这项的意义就是保存选择的那个包,Captured和Displayed都一样。 Marked Packets: Captured表示保存所有标记的包,Displayed表示保存过滤后标记的包。如果未标记任何包此项将成灰色不可选状态。Marked Packet:在Wireshark主界面选中某个包,右键选择Mark Packet,可以标记某个包。被标记的包会以黑色背景高亮显示,再次选择Mark Packet可以取消标记。可以标记多个包。 First to last Marked: 在标记了多个包的情况下,保存从第一个标记的包到最后一个标记的包之间的所有包,可以用这种方法来保存一段包。 Range:保存包序号在某段范围内的包,可以标识多段范围,范围之间彼此用“,”隔开,比如“1,6-8”表示保存包序号1,6,7,8的四个包,还可以用“20-”表示从包序号20开始直到抓包末尾的包。 Remove Ignored Packets:效果同反向选择,被忽略的包被删除,保存其它的包。Ignored Packet:在Wireshark主界面选中某个包,右键选择Ignore Packet,可以略过某个包。被略过的包会显示为空白(包序号仍占一行),再次选择Ignore Packet可以取消。可以同时略过多个包。被忽略的包同删除的效果一样,因此略过某些包可能触发Wireshark丢包判断。5.2.2 多文件合并抓包过程中使用多文件可能产生多个连续的文件,在使用Wireshark进行分析时可能需要将这些文件进行合并,常用的多文件合并方法有两种: 文件拖拽:选中要合并的文件,直接全部一起拖进Wireshark即可。Wireshark会提示要合并文件,直接点击OK即完成。合并按照包记录的时间先后顺序排序,可以将合并后的文件作为一个文件单独存储。 Merge功能:必须首先打开一个抓包文件,然后才能激活菜单File - Merge功能。第一项, 将要合并的抓包文件放在当前文件之前;第二项, 按照抓包的时间顺序合并;第三项, 将要合并的抓包文件追加到当前文件之后;5.2.3 转换文件格式输出有时候我们需要将Wireshark解析的数据结果输出成别的文件格式以供阅读、打印或者其它程序处理,这个时候需要用到Wireshark的文件格式转换功能。打开一个抓包文件,点击菜单File - Export - File启动Wireshark的文件输出功能。保存类型项,Wireshark默认输出文本格式,但同时还提供其它5种格式的文件类型可供选择,具体文件格式直接点击下拉框可见。Packet Range,同4.1.1介绍的内容完全一样,这里不再作介绍。Packet Format,这里重点介绍一下。 Packet summary line:是否允许输出包概要信息。包概要信息就是我们在主界面Packet list pane(包列表显示区)中看到的信息,如图: Packet details:下拉框有三个选项,All collapsed将Packet details pane(包协议解析区)的内容全部收拢显示,As displayed将包协议解析区的内容按当前展开的状态显示,All expanded将包协议解析区的内容全部展开显示。 Packet Bytes:是否允许显示Packet bytes pane(二进制码流区)的内容。 Each packet on a new page:每个包内容是否分页。5.3 Wireshark自带的命令行工具Wireshark除GUI界面的主程序外,还包括一些支持命令行调用的小工具,这些小工具可能会对分析、处理某类问题时特别有用,它们包括:tshark,Wireshark的命令行简化版;tcpdump,一个命令行抓包工具;dumpcap,另一个命令行抓包工具;capinfos,查看Wireshark抓包文件信息的小工具;rawshark,支持实时抓包分析的简化版工具;editcap,pcap文件编辑工具;mergecap,合并多个抓包文件的工具;text2pcap,转换16进制的抓包文件成pcap格式。这些工具的用法都可以在Wireshark帮助手册中查询到,这里就不一一介绍,下面仅介绍我们可能会用到的几个小工具。5.3.1 如何使用Wireshark命令行工具依次在Windows中点击开始-运行,输入cmd回车启动Windows命令行,然后进入Wireshark安装目录的路径,此时即可调用Wireshark自带的各种命令行工具,输入这些工具对应的命令格式即可执行。如图:5.3.2 利用editcap分割文件Editcap可以实现对PCAP文件的各类操作,如输出选择的数据包,删除数据包,截取数据包,分割抓包文件等,部分功能可以在GUI界面中实现,这里介绍editcap命令行特有的功能。 文件分割Editcap c xxxx srcfile dstfilexxxx表示分割后每个文件包含多少个数据包,srcfile表示源文件名,dstfile表示目标文件名。文件名均可以包含路径。Editcap i yyyy srcfile dstfileyyyy表示分割后每个文件包含几秒的数据,srcfile表示源文件名,dstfile表示目标文件名。文件名均可以包含路径。如下面例子,一个包含52s数据的pcap包文件被editcap分割成了10s一个文件。6 数据分析6.1 Wireshark数据分析基本知识以下内容着重介绍Wireshark在LTE数传分析中的应用,我们假定读者已经具备TCP/IP协议以及LTE基本知识。6.1.1 Wireshark基本标识Wireshark根据安装的协议解析器自动为每个包选择最合适的协议进行解析,通常分为5个部分,如图:第一层是Wireshark抓包时记录每个包的时间戳,这是不包含在抓包内容当中的,在二进制码流解析区也找不到对应的二进制码流。其余四层分别对应OSI七层模型当中的数据链路层、IP层、传输层和应用层。如果没有数据,比如ping,允许部分层内容空缺。Wireshark会根据协议解析每一个字段,这里面会有一些内容说明,如下图。以 ( ) 号括起来的文字是Wireshark解析的备注,或者是二进制码流直接对应的数字,或者是Wireshark对这一字段的说明。以 号括起来的文字是Wireshark根据抓包内容作出的分析或者计算结果,和 ( ) 号括起来的内容一样,它们都不是抓包文件二进制码流直接对应的解析结果。没有被包含在任何括号的内容才是Wireshark直接解析协议字段得到的内容,它们是有二进制码流与之对应的。6.1.2 抓包统计 Summary拿到一个抓包,我们如何查看这个抓包的一些基本信息,比如抓了多少个包,持续时间多长,总的字节数是多少,平均速率怎么样,可以使用菜单Statistics - Summary做一个抓包基本信息统计。此项统计在进行UDP灌包两点抓包统计丢包率,检验Dumeter等流量工具的正确性等测试时尤其有用。6.1.3 流量统计 IO GraphsIO Graphs以图形形式显示当前抓包的数据量,这个数据量包括Wireshark抓下来的所有包在内。IO Graphs可以以不同间隔、单位和色彩来显示,点击Statistics - IO Graphs启动IO流图。如上图,IO Graphs上半部分是图形显示区,下半部分左边是图形设置区,右边是坐标轴设置区,下面分别介绍。Wireshark可以5种不同的色彩来分别显示不同的数据流。Filter:可以对不同颜色显示的数据流进行设定,Filter的写法同显示滤波器(参见6.3)。Style:对现实的方式进行设置。Graph:按钮,按下进行该色的绘图,放开不对该色进行绘图。如下图,对不同协议的包流量进行了区分:X Axis:Tick interval,设定X轴的采样间隔,最小可以设定1ms,这在我们进行精细分析时非常有用。Pixels per tick,设定每一个采样间隔用多少像素来绘图,可以设定1,2,5,10,越大图形越准确,但是对系统要求越高。View as time of day:如勾选,则X轴的单位将以24小时制的实际时间来显示。Y Axis:Unit:设定Y轴的单位,可以是包数,也可以是字节,或者比特流。这里要注意的是,单位的分母是tick,要么需要根据X轴设定的一个tick表示什么才能换算成我们实际运用的单位。Scale:Y轴的最大量程,此处可以控制Y方向的放大缩小,也可以以对数形式表示。下面还有几个按钮,Copy可以将当前显示图形的数据copy出来存成CSV的格式供进一步分析;Save按钮可以保存当前显示的图形。IO Graphs的应用堪称经典,因为我们能把所有的显示滤波器放到filter一栏来作图,所以利用IO Graphs几乎可以直观的观察到想要的任何东西。如下图,我们利用图形来观察整个抓包中有多少重传,当然也可以利用其它显示滤波器来观察其它任何能过滤的包。使用IO Graghs作图时注意选择Style。如果抓包的数据量很大但是滤出的包很少时使用Line方式作图可能会很不明显,看不出异常,这个时候应试试别的Style。在IO Graghs图形上单击对应的包,Wireshark主界面的包列表区会自动跳转到对应的位置。6.1.4 汇总所有日志的专家信息 Expert Info CompositeExpert Info Composite可以说是Wireshark的告警管理模块,Expert Info Composite能显示Wireshark中所有的错误提示信息,以及建链包等含有关键信息的包。在拿到一个抓包文件之后,可以使用菜单Analyze - Expert Info Composite先大概评估一遍抓包文件中包含有哪些类型的错误提示信息需要核查,再针对具体的问题进行具体分析。如上图,Wireshark将“uncommon”的包分成了4类,每一类代表了一种紧急度。l Errors:严重问题,错误的包或者Wireshark无法解析的包;l Warnings:警告问题,非正常通信的包,如分段丢失这类连接问题;l Notes:提示信息,可能是正常通信的一部分,如TCP重传、重复ACK等等都属于这类;l Chats:含有链路基本信息的包,如TCP的SYN包;l Details:上述4类包的汇总。当在Expert Info Composite中选中某个包之后,Wireshark主界面会直接跳转到对应的位置。6.1.5 交互流图 Flow GraphFlow Graph图用来进行流程分析很有用,点击Statistics - Flow Graph启动交互流图。在生成具体的图形前Wireshark会要求做一些设定,Flow Graph的设定都比较简单,一看便可明白。点击OK后Wireshark会生成具体的流图,这一步根据抓包文件的大小需要一定的处理时间。如下图:左侧是时间,中间是根据协议对交互内容的分析结果,右侧是具体的细节。双击中间某个包,Wireshark可以立即在包显示区显示对应的包,非常方便。6.2 TCP基本参数分析6.2.1 TCP接收窗口由于TCP真实的接收窗口计算需要用到窗口扩展因子WS,而WS仅仅带在TCP建链的SYN包中,所以要从Wireshark抓包中看出真实的接收窗口大小必须在进行TCP数传之前就开始抓包。如图所示,在包列表区info栏里win=xxxxx这里带的值就是接收窗口的大小了。但是要注意区分源IP,比如在进行下载时,接收窗口是由接收端反馈的,那么要看源IP是接收窗口的行。源IP是发送端的行带的是发送端的接收窗口,不是发送窗口。1.6.2版本以前的Wireshark有开关控制是否在计算接收窗口时使用窗口扩展因子,如果这个控制项没有打开,也会造成接收窗口看上去像是没有优化过的值。在菜单Edit - Preferences - Protocols - TCP设置里找到Relative sequence numbers and window scaling项打上勾即可,此项和相对序列号是绑定在一起的,使用扩展因子同时必须使用相对序列号。6.2.2 TCP发送窗口发送窗口必须使用发送端的抓包文件才可以看到。从BDP公式我们可以知道,理想情况下,发送窗口的大小可以近似用端到端的管道容量来逼近,新版的Wireshark提供了一个滤波器Bytes in flight来表示在网络中传输的字节数,可以利用这个字段来取得TCP链路的发送窗口。选取一个数据包(不能是ACK)的Bytes in flight字段,右键执行Apply as Column,将Bytes in flight显示到包列表区,再点击Bytes in flight进行排序,找到最大的一个值,TCP发送窗口不小于这个值。此方法需要保证抓包文件至少包含一段稳定期,否则得不到真实的TCP发送窗口。6.2.3 其它TCP基本参数TCP链路的其它一些基本信息,如WS、Time stamping、SACK、MTU等可以在TCP建链的SYN包中的选项字段中查看,如下图。一般情况下MTU=MSS+40,此图没有设置Time stamping,如果设置了也会在选项中显示。6.2.4 RTT环回时延Wireshark统计的RTT时延是发出某个包到收到它的ACK之间的时间差,因此也必须使用发送端的抓包文件,使用接收端抓包文件得到的仅仅是接收端的包处理时间。选中一个数据包(不能是ACK),点击菜单Statistics - TCP Stream Graph - Round Trip Time Graph,即可生成RTT时序图,从RTT时序图可以很方便的观察RTT环回时延。点击RTT时延图上的某个点会直接跳转到Wireshark包列表区对应的包。RTT时延图主要用于找出某此传输过程中时延很大的点,或者端到端链路中传输时延较大的某段。6.2.5 如何过滤某一条TCP链路一对TCP连接由源、目的IP,源、目的端口号唯一确定,据此Wireshark提供了过滤某一条TCP链路的功能。选中某条TCP链路中的一个包,点击菜单Analyze - Follow TCP Stream即可过滤出这一条TCP链路。在之前的版本中,这个功能等同于在显示滤波器中设置该链路的源、目的IP,源、目的端口号进行过滤,新版的Wireshark使用了标识Stream Index来代表这个组合,因此也可以在显示滤波器栏直接输入tcp.stream = x来过滤某条TCP链接。如图:6.3 显示滤波器分析法6.3.1 显示滤波器表达式Wireshark显示滤波器的基本表达式为:字段 关系 值,同时可以使用连接符将各个表达式组合起来。Wireshark能解出的所有字段都可以作为表达式的左端。比较特殊的是协议字段,如果只输入协议字段,则表示“存在”,包含此协议的数据包会被滤出。关系:如上图所示,共有9种关系表达式,其中6种符号依图中从上到下的顺序又可以表示为eq、ne、gt、lt、ge、le。值:主要涉及IP、MAC地址的写法,进制等,可以按F1参考帮助文件。连接符:l 逻辑与:and 或者 &l 逻辑或:or 或者 |l 逻辑异或:xor 或者 l 逻辑非:not 或者 !l 优先级:( )l 子串操作符: 比如想比较一个MAC地址的前两个字节,可以使用如下的表达式eth.src2 = 02:50Wireshark会自动对显示滤波器的合法性进行检查,符合语法规则的写法会显示绿色,不符合语法规则的表达式会以红色提示。6.3.2 如何把抓包中的某个字段设为滤波器在协议解析区找到需要作为滤波器的字段,右键,有三个选项可以方便的把抓包中的某个字段设为滤波器。Apply as Filter:直接将选择的字段作为滤波器并执行;Prepare a Filter:将选择的字段准备为滤波器,将表达式显示出来,但不执行,可以继续编辑;Colorize with Filter:不过滤,只是将符合规则的数据包以不同的颜色标注出来;6.3.3 常用显示滤波器常用的显示滤波器如下:eth.src;eth.dst:按MAC源、目的地址过滤;ip.src;ip.dst:按IP源、目的地址过滤;ip.len:按IP包长过滤,即按MTU过滤;ip.id:按IP序号过滤;涉及TCP的常用滤波器在下一节专门叙述,这里不列出。6.3.4 TCP显示滤波器族涉及TCP的显示滤波器在Filter Expression中可以找到全集,数目较多,这里我们描述在LTE数传问题分析中常用的一些滤波器。tcp.stream:唯一标识一条TCP链路,相当于TCP源、目的IP+源、目的端口;tcp.seq:TCP序号;tcp.ack:接收端ACK确认的TCP包序号;tcp.analysis.lost_segment:丢包,Wireshark只是判断当前包序号与前一个包序号,如果当前包序号大于前一个包序号且不连续,则判断为lost segment,不一定是实际意义上的丢包,需要进一步判断;tcp.analysis.fast_retransmission:快速重传包,接收端在收到该重传包之前恰好收到了Max. Duplicate ACKs个对该重传包的DUP ACK。tcp.analysis.retransmission:重传包;tcp.analysis.duplicate_ack:重复ACK,接收端按序接收时,收到的包序号不是期望的包序号,则每收到一个非期望的数据包发送一个DUP ACK,其中ACK位填期望的包序号。 tcp.analysis.out_of_order:乱序包,Wireshark判断当前包序号小于前一个收到的包序号则认为发生了乱序;tcp.analysis.bytes_in_flight:发送端已经发出但是尚未收到确认的数据量;tcp.checksum.bad:CRC校验出错的TCP包;tcp.analysis.window_full:TCP发送窗口满;tcp.analysis.window_update:一个ACK并不确认任何新数据,只是用来增加窗口的右边沿,被称为窗口更新。通常发生在接收窗口收缩之后用于窗口大小的恢复。tcp.analysis.zero_window:窗口的左边沿到达右边沿,则称其为一个零窗口,此时发送方不能够发送任何数据,即我们常说的窗口收缩到0。6.3.5 利用显示滤波器分析丢包Wireshark对应判断丢包的显示滤波器是tcp.analysis.lost_segment,但是使用tcp.analysis.lost_segment来判断丢包有一个缺点,因为tcp.analysis.lost_segment只是判断前后包的序号是否连续,如果只是乱序一或者两个包Wireshark也会判定为tcp.analysis.lost_segment,但实际上此时对链路是没有影响的。这里推荐使用tcp.analysis.retransmission来分析TCP的丢包乱序问题,不管是丢包还是乱序,只要造成了重传,都会影响TCP的发送窗口从而影响吞吐率,使用tcp.analysis.retransmission能过滤这一类问题。以三点抓包为例来说明分析过程,假设TCP数据的流向是ABC,C点是客户端PC,C点的抓包使用tcp.analysis.retransmission过滤发现有重传,那么我们按照6.3.2介绍的方法将tcp.seq = uvwxyz设置为滤波器,拷贝这个滤波器tcp.seq = uvwxyz到A、B、C三点的抓包文件中同时执行,根据过滤得到的包数量可以判断错误类型。如下表,tcp.seq = uvwxyz在A、B、C三点过滤得到的包数量 vs TCP异常类型表格:A点B点C点TCP异常类型001A或者B点漏抓包211AB点之间丢包221BC点之间丢包222乱序或者超时重传322超时重传这里只列出了最一般的情况,实际情况中镜像口漏抓包、TPE算法打开等都会影响各点的包数,出现其它各种组合,这里未一一列出。6.3.6 利用显示滤波器分析乱序少量的乱序不会对吞吐量造成影响,只有当乱序的数量大于等于系统配置的Max. Duplicate ACKs时,触发接收端发送的DUP ACK数量达到门限导致发送端误判为丢包而引起快速重传,对吞吐量造成影响。因此,乱序的问题可以分为两类来看待:未造成重传的少量乱序和引起重传的乱序。多个点都发生少量乱序合在一起可能使乱序的数量大于等于系统配置的Max. Duplicate ACKs引起重传,所以有时候需要分析某点抓包的少量乱序,这种情况可以使用显示滤波器tcp.analysis.out_of_order来过滤,如图:引起重传的乱序可以使用tcp.analysis.retransmission来过滤,分析方法同上一节。6.3.7 利用显示滤波器分析窗口收缩TCP接收窗口大小是TCP连接中用于存储输入数据的接收主机的内存缓冲器中字节量,对应于接收端允许发送端发送的剩余数据量,它等于最大接收窗口大小与已接收和确认但尚未被应用程序检索的数据量之间的差值。接收窗口大小主要受应用程序检索接收窗口中累积数据的速度影响,如果应用程序不能检索数据,接收窗口就可以开始填充,导致接收端通告了更小的当前窗口大小。在极个别的情况下,整个最大接收窗口都会填满,导致接收端通告了 0 字节的窗口大小。在这种情况下,发送端必须停止发送数据,直到接收窗口已经清除为止。因此,接收窗口的大小是影响TCP速率的重要因素。接收窗口收缩到0的危害最大,这种情况我们可以使用显示滤波器tcp.analysis.zero_window来过滤0窗口。但是,窗口收缩的场景并非总能收缩到0,有时候窗口会呈收缩的趋势但并未收缩到0又开始恢复,这个时候我们可以使用显示滤波器tcp.window_size TCP Stream Graph生成各类图形时,一个图形控制对话框会同时自动生成。如下图:l Zoom页签:n Horizontal和Vertical两栏显示了当前图形水平和垂直方向的放大倍数;n Horizontal step和Vertical step两栏设定当你放大图形时的步长因子;n Keep them the same:保持水平和垂直方向放大倍数相同;n Preserve their ratio:保证水平和垂直方向放大比率相同,比如水平方向放大1.2倍垂直方向放大2倍,锁定比率后,水平方向如果改为2.4倍,则垂直方向自动改变为4倍;n Zoom lock:锁定某个方向不进行放大;l Magnify页签
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!