Wireshark工作使用小结

基本概念
wireshark是个开源的好用软件,用来分析数据包 。
数据包:通常就是四层信息

Wireshark工作使用小结

文章插图
 
物理层数据帧,数据链路层以太帧头部 。网络层IP包头部 。传输层TCP包头部 。最后就是应用层信息 。
基础功能使用
打开软件界面 。就不介绍了不懂的自己打开看一下吧!
过滤器按照命令填写,基础的筛选与追踪流这种最常用的功能就不说了 。
主要想说一下如果不记得筛选的命令怎么填了,可以点击对应的指标,选择作为过滤器应用 。
还有时候默认的列,不满足我们需要排查问题需要,可以选择应用为列 。
Wireshark工作使用小结

文章插图
 
比如我们看到TCP流的情况判断是乱序还是丢包了 。开启IP层的ID应用为列 。就可以清晰的判断问题 。
Wireshark工作使用小结

文章插图
 
简单的过滤条件and与or使用 。&&与|| 。条件记得括号更标准好看 。现在直接使用and与or也是可以的了 。
常用的排错过滤条件
tcp.analysis.lost_segment:表明已经在抓包中看到不连续的序列号 。报文丢失会造成重复的ACK,这会导致重传 。
 
tcp.analysis.duplicate_ack:显示被确认过不止一次的报文 。大量的重复ACK是TCP端点之间高延时的迹象 。
 
tcp.analysis.retransmission:显示抓包中的所有重传 。如果重传次数不多的话还是正常的,过多重传可能有问题 。这通常意味着应用性能缓慢和/或用户报文丢失 。
 
tcp.analysis.window_update:将传输过程中的TCP window大小图形化 。如果看到窗口大小下降为零,这意味着发送方已经退出了,并等待接收方确认所有已传送数据 。这可能表明接收端已经不堪重负了 。
 
tcp.analysis.bytes_in_flight:某一时间点网络上未确认字节数 。未确认字节数不能超过你的TCP窗口大小,为了最大化吞吐量你想要获得尽可能接近TCP窗口大小 。如果看到连续低于TCP窗口大小,可能意味着报文丢失或路径上其他影响吞吐量的问题 。
 
tcp.analysis.ack_rtt:衡量抓取的TCP报文与相应的ACK 。如果这一时间间隔比较长那可能表示某种类型的网络延时(报文丢失,拥塞,等等) 。
ps:这段直接复制的 嘻嘻
字节流搜索
我在工作中常用的功能 。因为XXXXXXX的原因 。我会使用解码的关联信息来搜索,如果只有一份,就说明镜像过来的流量有丢包 。巴拉巴拉hhh,如果有需要搜索的明文字符串也可以直接搜索 。
Wireshark工作使用小结

文章插图
 
去重与合并数据包
在wirkshark的安装目录下有许多exe文件 。
editcap.exe,数据包去重命令为 editcap -d input.pcap output.pcap 。(我之前就遇到了镜像之后tap过来的流量同一个ipid有四份,后面查看有两个两对mac流量,筛选一对mac的,之后使用该命令去重,获得一份正常的流量)
mergecap.exe,数据包合并命令为 mergecap -w out.pcap intput1.pcap input2.pcap inputN.pcap 。
editcap.exe的数据包截取就算了吧 。直接gui界面就可以文件——导出特定分组——range选填 。
筛选再筛选
如果我们抓到的数据包很大很大,但是我们仅仅需要部分ip到ip的分析 。可以先使用过滤条件之后界面上——文件——导出特定分组——Displayed的 。之后再打开那个pcap查看分析 。
其他小功能介绍
分析——专家信息(看看就好)
统计——流量图(这个可以看起来比较直观)也支持过滤条件
Wireshark工作使用小结

文章插图
 
编辑——首选项——Protocols——对于部分协议进行个性化配置
Wireshark工作使用小结

文章插图
 
编辑——首选项——RSA密钥可以添加之后解密HTTPS信息
常见异常分析说明
Packet size limited during capture:标记了的包没抓全
TCP Previous segment not captured:Wireshark 发现后一个包的 Seq 大于 Seq+Len,就知道中间缺失了一段 。
TCP ACKed unseen segment:发现被 Ack 的那个包没被抓到,就会提示 。
TCP Out-of-Order:后一个包的 Seq 号小于前一个包的 Seq+Len 时 。
TCP Dup ACK:当乱序或丢包发生时,接收方会收到一些 Seq 号比期望值大的包 。没收到一个这种包就会 Ack 一次期望的 Seq 值,提现发送方 。


推荐阅读