问题背景

在《Wireshark TS | 丢包?不要轻易下结论》一文中,提到出现 TCP Previous segment not capturedACKed segment that wasn’t caputred 的一种情形,可能是交换机镜像会话丢弃了数据包,而不是真实会话发生了数据包丢失, 所以数据包文件才会显示有丢包,而且也才没有捕捉到数据包重传。总结来说,对于疑似丢包的情况,不要轻易下结论,需要结合上下文,看看是否有相应的乱序、重传或者快速重传等等,再来进一步分析判断问题。

本文再次介绍一种 Wireshark 提示 TCP Previous segment not capturedACKed segment that wasn’t caputred 的情形,来具体分析是否存在丢包现象。

问题描述

抓包如下,在数据包初始即出现了熟悉的 Bad TCP 提示。

单就从前5个数据包来说,筛选出 Seq、NextSeq、Ack 三列分析 ,Wireshark 的判断并没有任何问题。

数据包2 - ACKed segment that wasn’t caputred:从它的角度来说,Ack 2 应该是确认了一个 len 为 1 的数据分段,但是未抓到,所以会提示 TCP ACK确认了一个未曾看到的数据分段。
数据包3 - TCP Previous segment not captured:Seq 2 ,上一个数据包理论上应该 NextSeq 为 2 ,但是未抓到,所以会提示 TCP 上一个分段未捕获。
数据包4同数据包2一样,Ack 63 确认了63之前所有的分段,但实际上仍然缺少一个分段。

因此对 Wireshark 来说,它的判断原则认为在传输方向 10.1.1.1 -> 10.1.2.1 上可能丢了一个 Seq 1 , NextSeq 2 , Ack 1 的一个数据分段。

问题分析

分析阶段,再次添加过滤 ip.id 列来进一步分析,可以看到一个奇怪的现象,在传输方向 10.1.1.1 -> 10.1.2.1 上,数据1和数据包3的 ip.id 是连续字段,0x98a6 -> 0x98a7,也就是说在此方向上数据包1和3中间并没有额外的数据分段,也不可能存在数据包未捕获到的情况,那么是否是 Wireshark 错误判断了 ???

进一步研究接下来的数据包,发现会有 TCP Keep-AliveTCP Keep-Alive ACK 数据包,且业务数据包排列有一定规律。

拿数据包 12-14、15-20 为例,可以看出是 3个业务数据包 + 6个 TCP Keep-ALive 数据包,其中 TCP Keep-Alive 数据包的 Seq 会减 1,也就是数据包15(17、19)Seq 为 123,即 124 - 1。

往后数据包 21-23、24-xx 之后均是相同排列,那么往前呢?数据包 3-5、6-11 应该也是相同规律,同样为 3个业务数据包 + 6个 TCP Keep-ALive 数据包。

至此,数据包 1-2 的类型也可以明显定位了,是一对 TCP Keep-AliveTCP Keep-Alive ACK 数据包。因为捕获数据包并未抓到之前的包,Wireshark 无法根据上文判断,所以并未标记成 TCP Keep-Alive 数据包,造成之后的数据包 2-4 进行 tcp.analysis 判断时出现偏差,认为是存在丢包情况,但实际上的原因是 Seq 因为 Keep-Alive 的情况已经减 1,理论上之前未捕获的数据包有一个 Seq 2 , NextSeq 2 , Ack 1 的一个数据分段。

TCP 选项 Relative sequence numbers 关闭后,可以更加直观的对 Seq 进行判断分析,如下:

实际上应该是一个 Seq 1529774348 , NextSeq 1529774348 , Ack 516539103 的数据分段。

问题总结

综上所述,实际上此案例并未发生丢包,不管是实际业务又或是镜像方面均未发生丢包情况,仅仅是因为未抓到之前的数据包,且存在特殊情形(TCP Keep-Alive),综合起来造成 Wireshark 判断分析出现偏差。

所以对于疑似丢包的情况,不要轻易下结论,需要结合上下文的情况综合判断。


感谢阅读,更多技术文章可关注个人公众号:Echo Reply ,谢谢。

Wireshark TS | 丢包?不要轻易下结论续相关推荐

  1. Wireshark TS | 丢包?不要轻易下结论

    问题背景 首先,案例来自于互联网,数据包分析过程相对简单,但对个人来说,算是之前没实际碰到的情况,因此分享一下. 问题描述 当第一次查看数据包文件时,一眼就能看到 "Bad TCP" ...

  2. wireshark抓包,丢包分析

    零基础学黑客,搜索公众号:白帽子左一 前言 我们都知道,一般流量分析设备都支持pcap回放离线分析的功能,但如果抓的pcap丢了包,会影响最终安全测试的效果. 比如说竞测现场需要提供pcap包测试恶意 ...

  3. 使用wireshark检测RTP丢包问题

    一.RTP协议简介 RTP 数据协议负责对流媒体数据进行封包并实现媒体流的实时传输,每一个RTP 数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前12 个字节的含义是固定 ...

  4. Wireshark tcptrace图关于丢包重传细节图解

    上周六写了< 在Wireshark的tcptrace图中看清TCP拥塞控制算法的细节(CUBIC/BBR算法为例)>,收到一封邮件,说我文中的图示画错了.         确实,关于CUB ...

  5. 【计算机网络】 0、各网络命令 + tcpdump + Wireshark、抓包实战、TCP 握手挥手、防火墙、保活、MTU

    文章目录 一.各层网络工具 应用层 找到服务器的 IP 查接口.对象的耗时 删除指定网站的Cookie 表示层.会话层 tcpdump.wireshard 传输层 telnet: 路径可达性测试 nc ...

  6. Wireshark网络抓包(三)——网络协议

    一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通 ...

  7. 网络丢包问题排查总结

    问题描述 发送端以UDP的方式向服务器发送数据包,但是一直没有接收完全,导致发送端一直发送数据. 排查步骤 对于网络发包的这种问题,首先需要确认的2件事情,1是发送端数据是否发送完全,2是接收端数据是 ...

  8. 丢包和网络延迟对网络性能的影响

    一般地,网络性能指标涉及延迟.丢失和抖动.现在,我们将探讨这些问题(尤其是延迟和丢包)如何影响应用程序的性能. 实际上,所有的应用程序都使用TCP,即从A到B的数据传输控制协议.85%的因特网流量是T ...

  9. 云网络丢包故障定位全景指南

    作者简介:冯荣,腾讯云网络高级工程师,腾讯云网络核心开发人员. 万字长文  建议收藏 引言 本期分享一个比较常见的⽹络问题--丢包.例如我们去ping⼀个⽹站,如果能ping通,且⽹站返回信息全⾯,则 ...

  10. Wireshark网络抓包(一)——数据包、着色规则和提示

    一.数据包详细信息 Packet Details面板内容如下,主要用于分析封包的详细信息. 帧:物理层.链路层 包:网络层 段:传输层.应用层 1)Frame 物理层数据帧概况 2)Ethernet ...

最新文章

  1. ORM查询语言(OQL)简介--概念篇
  2. 熬夜变傻有科学依据,人类睡觉时会被“洗脑”,科学家首次拍下全程
  3. 浅谈SAP CRM开发——基本业务概念
  4. 在linux上搭建本地yum源
  5. wdcp后台重启服务器后mysql打不开
  6. boost::regex模块在 cpp 文件中搜索类定义,使用绑定成员函数回调测试程序
  7. 解决 PowerDesigner 错误 The generation has been cancelled…
  8. 在Ubuntu 18.04上实际安装OpenJDK 11
  9. visual studio 2005中生成网站和发布网站区别
  10. 文本界面安装linux 7,安装 CentOS7 后必做的事 [最小化、文本界面]
  11. GlobalSign 团队与世界领先的认证机构(CAs)合作 共同加强网络安全
  12. jQuery打造智能提示插件
  13. 9.微服务设计 --- 安全
  14. python html5 便利店收银系统_简单又好用的便利店收银系统
  15. unity3d中如何把对象存进数组
  16. js中(0, function)是什么意思
  17. 七日之都账号服务器,永远的7日之都服务器数据互通吗_永远的7日之都iOS和安卓能一起玩吗_玩游戏网...
  18. 用windows搭建ntp时间服务器(从上级获取时间,并为客户机提供时间)
  19. 蓝桥杯 算法训练 Cowboys 递推 动态规划
  20. 软件项目管理进度计划-Gantt图和工程网络图,工程网络是系统分析和系统设计的强有力的工 具

热门文章

  1. 怎么建立局域网_智能电视局域网共享怎么操作?多数品牌都适用的方法!
  2. linux学习资料(转帖收藏)
  3. Excel使用技巧 查找重复值
  4. 六级考研单词之路-十五
  5. 进制转换(简单的能看懂就够了)
  6. 贡献度分析--帕累托图
  7. 容器技术—docker stack
  8. 两种方法解决Undefined symbol SystemInit问题
  9. linux的lilo,深入Linux的LILO
  10. idea Lombok插件下载