WireShark 安装及基本操作
WireShark安装#
wireshark在windows和mac上的安装方式都比较简单,下面是Linux下的安装方式
1 | sudo apt-add-repository ppa:wireshark-dev/stable |
WireShark的名字解析#
- L2层的名字解析,对Mac地址进行解析,返回机器名
- L3层 ip解析为域名
- L4层 端口号解析为协议端口号
Wireshark抓到的包更改时间格式#
查看EndPoint#
点击Statistics->EndPoints,可以查看每一个捕获文件里的每个端点
查看网络会话#
Statistics->Conversations. 查看地址A和地址B,以及每个设备发送或收到的数据包和字节数
基于协议分层结构的统计数据#
Statistics->Protocol Hierarchy
跟随流功能#
右键选中一个数据包,然后右键,follow。比如我在这里跟随一个tcp流
//这里也可以使用decode as解码功能,但是没有例子,暂不附图
查看IO图#
Statistics->IO Graphs
双向时间图#
Statistics->TCP Stream Graph -> Round Trip Time Graph
数据流图#
Statistics->Flow Graph
专家信息#
Analyze->Expert Info Composite
触发的专家信息#
对话消息#
窗口更新 由接收者发送,用来通知发送者TCP接收窗口的大小已被改变#
注意消息#
TCP重传输 数据包丢失的结果,发生在收到重复的ACK,或者数据包的重传输计时器超时的时候#
重复ACK 当一台主机没有收到下一个期望序列的数据包时,它会生成最近收到一次数据的重复ACK#
零窗口探查ACK 用来响应零窗口探查数据包#
窗口已满 用来通知传输主机及其接收者的TCP接收窗口已满#
警告消息#
上一段丢失 指明数据包丢失,发生在当数据流中一个期望的序列号被跳过时。#
收到丢失数据包的ACK 发生在当一个数据包已经确认丢失但受到了其ACK数据包时#
保活 当一个连接的保活数据包出现时触发#
零窗口 当接收方已经达到TCP接收窗口大小时,发出一个零窗口通知,要求发送方停止传输数据#
乱序 当数据包被乱序接收时,会利用序列号进行检测#
快速重传输 一次重传会在收到一个重复ACK的20ms内进行#
WireShark性能#
Statistics -> Summary 查看平均速度#
Analyze -> Expert Infos#
Statistics -> TCP StreamGraph -> TCP Sequence Graph(Stenens)#
TCP Previous segment not captured#
在TCP传输过程中,同一台主机发出的数据段应该是连续的,即后一个包的Seq号等于前一个包的Seq + Len. 如果在网络包中没有找到,就会出现这个错误
TCP ACKed unseen segment#
Wireshark发现被Ack的那个包没被wireshark捕获
TCP Out-of-Order#
在TCP传输过程中,同一台主机发出的数据段应该是连续的,即后一个包的Seq号等于前一个包的Seq +
Len.当Wireshark发现后一个包的Seq号小于前一个包的Seq+Len 就乱序le
TCP Dup ACK#
当乱序或者丢包的时候,接收方会收到Seq号比期望值大的包,每收到一个这种包就会Ack一次期望的Seq值
TCP Fast Retransmission#
当发送方收到3个或以上TCP Dup ACK,就意识到之前发的包可能丢了,触发快速重传
TCP Retransmission#
没有触发tcp超时重传,超时重传
TCP zerowindow#
缓存区已满,不能再接收数据了
TCP window FUll#
Wireshark检测到,发送方发送的数据会把接收方的接收窗口耗尽