Wireshark异常解析

[Packet size limited during capture]

  • 被标记的包信息没有完整的获取,一般是由于抓包方式引起。比如全长有171字节,但只获取到前96个字节。
  • 某些系统中,tcpdump默认只抓每个帧的前96字节,一般可以用 -s 参数指定想要抓的字节数。

[TCP Previous segment not captured]

  • 未捕获TCP协议之前的分段,抓取的数据段缺失。一般是由于丢包或者抓包工具漏掉导致。
  • 使用TCP协议传输过程中,同一台主机发出的数据包应为连续的,即后一个包的Seq等于前一个包的Seq加Len,而对端回应的Ack等于发送方刚发的Seq加Len,三次握手和四次挥手例外。
  • 如果后一个包的Seq大于前一个包的Seq加Len,就可以清楚中间缺失了一段数据。
  • 大多数情况都是由乱序引起的,数据包在网络包中传输的距离长、流量大、网络拥塞时,乱序的几率会很大,但一般情况下都可以在到达目的地后进行重组。

TCP乱序重组

假如发送端发了2个包,到达接收端后发生了乱序,第2个包先到,第1个包后到,此时因为TCP具有缓冲区和序列号,所以TCP会将先到的2缓存下来,当1到达时,再根据序列号进行拼接。

缓冲区也有满的时候,这时接收端会直接丢弃报文,不做任何其他处理,发送方的定时器发现迟迟收不到接收方的回复的确认包时,就会触发TCP的重传机制,重传该报文。

[TCP ACKed unseen segment]

  • 丢包或乱序时会出现。

[TCP Out-of-Order]

  • 说明数据包乱序,当Wireshark发现后一个包的Seq小于前一个包的Seq加Len,则会被认为是乱序。

[TCP Dup ACK]

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

[TCP Retransmission]

  • 数据包进行重传,如果一个包丢失,又没有后续包可以在接收方触发“Dup ACK”,就不会快速重传。
  • 这种情况发送方只能等到超时重传。

[TCP Fast Retransmission]

  • 数据包快速重传,当发送方收到3个及3个以上的“TCP Dup ACK”时,就意识到之前发的包可能丢了,于是快速重传。

[TCP zerowindow]

  • 接受窗口为0,缓存区已满,不再接受数据。
  • “win=”表示这个包的发送方还有多少缓存区可以接受数据。
  • “Win=0”表示缓存区已满,告知对方自己不再接受数据。

[TCP window Full]

  • 发送窗口已满。
  • 包的发送方已经把对方所声明的接受窗口耗尽,暂时无法再发送数据。

Time-to-live exceeded (Fragment reassembly time exceeded)

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

借鉴于:https://help.aliyun.com/document_detail/112990.html

本文链接:

http://blog.ps-ef.cn/Network/148.html
1 + 1 =
快来做第一个评论的人吧~