使用Wireshark抓包中的常见提示与解决方案

更新时间:2025-03-27 03:41:44

Wireshark是一款非常强大的网络协议分析工具,主要用于捕获和分析网络封包。通常应用在网络故障诊断、安全审计与分析、协议分析与学习场景中。本文旨在系统地整理和解析Wireshark在抓取及分析网络数据包过程中常见的提示信息,详细阐述每种提示所对应的处理方法和注意事项。

安装及使用Wireshark

Wireshark支持大多数常见的主流操作系统:Alibaba Cloud Linux 3、Ubuntu、Windows。

说明

Linux(Alibaba Cloud Linux 3、Ubuntu等)操作系统上安装Wireshark需要安装图形化桌面组件。

Alibaba Cloud Linux3
Ubuntu
Windows
  1. 安装图形化桌面组件,详情请参见

  2. 更新yum依赖

    sudo yum update
  3. 安装Wireshark。

    sudo yum install wireshark
  4. 启动Wireshark。

    wireshark
  1. 安装图形化桌面组件,详情请参见Linux系统上安装图形化界面

  2. 添加Wireshark的官方存储库密钥

    sudo apt install curl gnupg
    curl -sS https://wireshark.org/download/keys/gpg-key | sudo apt-key add -
  3. 安装Wireshark。

    sudo apt-get install wireshark
  4. 启动Wireshark。

    wireshark
说明

免责声明:本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

  1. 下载WireShark

    Wireshark官网下载Wireshark安装包, 也可以到中国内地其他站点下载Wireshark工具。

    说明

    Windows Server 2008R2,Windows Server 2012建议安装老版本的Wireshark。

  2. 安装Wireshark

常见Wireshark提示

提示一:[Packet size limited during capture]

  1. 此提示说明被标记的包信息没有完整的获取,一般是由于抓包方式引起。如下图所示,全长有171字节,但只获取到前96个字节。

    image

  2. 某些OS系统中,tcpdump只抓每个帧的前96字节,一般可以用“-s”参数指定想要抓取的字节数。如以下命令所示。

    tcpdump -i eth0 -s 1000 -w tcpdump.cap

提示二:[TCP Previous segment not captured]

  1. 此提示说明未捕获TCP协议之前的分段,抓取的数据段缺失。一般是由于丢包或者抓包工具漏掉导致。具体示例如下图所示。

    image

  2. 使用TCP协议传输过程中,同一台主机发出的数据段应为连续的,即后一个包的Seq等于前一个包的SeqLen,而对方的Ack等于发送方刚发送的SeqLen,三次握手和四次挥手例外。如果后一个包的Seq大于前一个包的SeqLen,就可以清楚中间缺失了一段数据。如果在整个网络包中排除乱序,就会提示“TCP Previous segment not captured”。判断是否遗漏还是丢包,看回复方的Ack,如果包含没抓到的,可能抓包工具漏掉。

提示三:[TCP ACKed unseen segment]

  1. 此提示说明被Ack的包的没有被抓到,此提示可能是最常见的Wireshark提示,几乎可以永远忽略。具体示例如下图所示。

    image

  2. 上图中32行的信息Seq加上Len的值为68891448等于8337,服务器下一个包应该是Seq等于8337,但是35行确是11233,说明8337~11232这段没有抓到信息,即只抓到后面的Ack没抓到前面数据包。8337~11232这段信息理应出现在34行之前。

提示四:[TCP Out-of-Order]

  1. 此提示说明数据包乱序,当Wireshark发现后一个包的Seq小于前一个包的SeqLen,则会被认为是乱序。具体示例如下图所示。

    image

  2. 小跨度的乱序影响不大,比如原本1、2、3、4、5被打乱成2、1、3、4、5。但跨度大可能会触发快速重传,比如打乱成2、3、4、5、1,就会触发足够多的“Dup ACK”,从而导致包重传。

提示五:[TCP Dup ACK]

此提示说明出现重复的Ack。当乱序或者丢包发生时,接受方收到一些Seq比期望值大的包。每收到一个这种包就会回应一次期望的Seq值,依次提醒发送方,因此会产生重复的Ack。具体示例如下图所示。

image

提示六:[TCP Retransmission]

此提示说明数据包进行重传,如果一个包丢失,又没有后续包可以在接收方触发“Dup ACK”,就不会快速重传。这种情况发送方只能等到超时重传。具体示例如下图所示,客户端发了1053号原始包,一直等不到对应的Ack,于是只能在100多毫秒之后重传1225包。

image

说明

TCP为可靠传输,通过在发送时设置一个定时器来解决数据包确认问题。如果当定时器溢出时还没有收到确认,它就重传该数据。对于重传时间是如何计算的问题,在RFC2988中也提供了一种Linux至今都在使用的方案。详细介绍可以参考文档TCP-IP详解中的RTTRTO。

提示七:[TCP Fast Retransmission]

此提示说明数据包快速重传,当发送方收到3个及3个以上的“TCP Dup ACK”时,就意识到之前发的包可能丢了,于是快速重传。具体示例如下图所示。当服务器端收到3个“TCP Dup ACK”,于是在1177号包重传了Seq等于991851。

image

说明

快速重传机制,实现了另外的一种丢包评定标准。当接收方一连收到三个重复的ACK,那么发送方不必等待重传定时器到期,尽早重传未被确认的报文段。

提示八:[TCP zerowindow]

此提示说明接受窗口为0,缓存区已满,不再接受数据。“win=”表示这个包的发送方还有多少缓存区可以接受数据。“Win=0”表示缓存区已满,告知对方自己不再接受数据。具体示例如下图所示。

image

提示九:[TCP window Full]

此提示说明发送窗口已满。具体示例如下图所示。表示包的发送方已经把对方所声明的接受窗口耗尽,暂时无法再发送数据。

image

说明

在途字节数(Bytes in flight)等于对方的接受窗口,表示发送方已经发送数值,减去对方最近的一次确认数值,等于确认了多少数值。也就是等于Seq加上Len等于Ack,即最近的一次Ack。以下2个字段意味着传输暂停,都需引起重视。

提示十:[TCP segment of a reassembled PDU]

此提示说明重组PDUTCP协议分段。表示Wireshark可以把属于同一个应用层PDUTCP包虚拟的集中起来。具体示例如下图所示,需要在软件中设置,选择Edit>Preferences>Protocol>TCP,确认启用“Allow sub dissector to reassemble TCP streams”,ACK确认包号是相同的。

image

image

提示十一:[Continuation to #X]

此提示表示关闭了"Allow sub dissector to reassemble TCP streams",按照实际情况开启即可。

image

提示十二:Time-to-live exceeded (Fragment reassembly time exceeded)

此提示说明超出TTL生存时间,即超出碎片重组时间。表示这个包的发送方之前收到了一些分片,但是由于某些原因迟迟无法组装起来。具体示例如下图所示,由于上海发往北京的一些包被分片传输,且有一部分在链路上丢失。因此北京无法组装起来,只能使用这个ICMP报错告知对方。

image

相关文档

  1. Wireshark官方文档

  • 本页导读 (1)
  • 安装及使用Wireshark
  • 常见Wireshark提示
  • 提示一:[Packet size limited during capture]
  • 提示二:[TCP Previous segment not captured]
  • 提示三:[TCP ACKed unseen segment]
  • 提示四:[TCP Out-of-Order]
  • 提示五:[TCP Dup ACK]
  • 提示六:[TCP Retransmission]
  • 提示七:[TCP Fast Retransmission]
  • 提示八:[TCP zerowindow]
  • 提示九:[TCP window Full]
  • 提示十:[TCP segment of a reassembled PDU]
  • 提示十一:[Continuation to #X]
  • 提示十二:Time-to-live exceeded (Fragment reassembly time exceeded)
  • 相关文档
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等