Wireshark TS | 访问网页失败

news2024/12/23 9:24:43

前言

访问网页失败也是日常比较常见的问题之一,导致问题的原因可能有很多种,像是客户端、浏览器、服务器或者网络等等,自然具体问题得具体分析。本篇以一个实际案例来说明下 TCP 连接相关的问题,该数据包仍然来自于 Wireshark sharkfest 2017,一些简短但有趣的 TCP 跟踪文件中的又一个。


问题信息

数据包跟踪文件基本信息如下:

λ capinfos Sample04.pcapng
File name:           Sample04.pcapng
File type:           Wireshark/... - pcapng
File encapsulation:  Ethernet
File timestamp precision:  microseconds (6)
Packet size limit:   file hdr: (not set)
Number of packets:   33
File size:           6228 bytes
Data size:           5005 bytes
Capture duration:    38.709141 seconds
First packet time:   2011-01-14 01:14:52.475277
Last packet time:    2011-01-14 01:15:31.184418
Data byte rate:      129 bytes/s
Data bit rate:       1034 bits/s
Average packet size: 151.67 bytes
Average packet rate: 0 packets/s
SHA256:              48ca202b8b7c2cf0fd20fe0909cae6cd2a30fbdbdad17492a5cab7f2749bb745
RIPEMD160:           151de4053735268f9943f00403f72aef66debf42
SHA1:                a3fb91edd6db023edb2648f6d69dfafb2b7c6a27
Strict time order:   True
Capture comment:     Sanitized by TraceWrangler v0.6.4 build 808
Number of interfaces in file: 1
Interface #0 info:
                     Encapsulation = Ethernet (1 - ether)
                     Capture length = 65535
                     Time precision = microseconds (6)
                     Time ticks per second = 1000000
                     Time resolution = 0x06
                     Number of stat entries = 0
                     Number of packets = 33

λ

数据包推测通过 Wireshark 所捕获,数据包数量 33 个,文件大小 6228 字节,捕获时长约 38.7 秒,平均速率 1034 bits/s,并经过 TraceWrangler 匿名化软件所处理。

关于 TraceWrangler 匿名化软件简介,可以查看之前的文章《Wireshark 提示和技巧 | 如何匿名化数据包》

专家信息如下,其中有需要注意的地方是 Previous segment not caputred 的警告信息,以及 RST、(疑似)重传、DUP ACK 等,考虑到总包数 33 本身较少,少量疑似有问题的信息仍然需要关注。

web-01


问题分析

TCP Previous segment not caputred

首先什么是 TCP Previous segment not caputred? 实际上在以前的文章,包括大家自己手头上的实际案例,应该是一种比较常见的专家提示信息。

Set when the current sequence number is greater than the next expected sequence number.

如字面意思所述,TCP 之前的段未被捕获到,实际上数据包跟踪文件里这个未被捕获到的提示一般有两种可能:

  1. 所捕获的原始 TCP 会话发生了丢包。如果是这种情况,镜像流量是原样复制了一份,原本就少了部分数据包,自然所捕获到的数据包也相应就少一部分。
  2. 所捕获的原始 TCP 会话数据包交互正常,但在镜像流量的过程中发生了丢包,也就是说镜像捕获丢包,如果是这样的情况,也同样会告警提示某些段未被捕获到。

当然这两种情况,有时也会比较好区别,简要说明如下:

  1. 所捕获的原始 TCP 会话发生了丢包。如果是这种情况,因为丢包,原始会话自然会进行重传之类的动作,在之后所捕获到的数据包自然也可以看到相关现象。(需要区分重传和乱序)
  2. 所捕获的原始 TCP 会话数据包交互正常,但镜像捕获丢包,如果是这样的情况,自然原始会话会正常 ACK 该分段,而捕获的数据包看到这个 ACK,会相应提示 ACKed segment that wasn’t caputred 信息,因为捕获的跟踪文件中实际没有这个分段。

举例:

web-02

类似文章和案例很多,有兴趣的同学可以查看《丢包?不要轻易下结论》、《丢包?不要轻易下结论续》、《TCP Previous Segment Lost》等。


基本分析

回到本案例,展开完整的数据包文件信息,如下:

web-03

主要分析如下:

  1. No.1 和 No.2,首先是一对 DNS 请求和响应,查询 www.boerse-stuttgart.de,以及响应的 A 记录 IP 217.110.67.201;

web-04

  1. 从 No.3 开始,客户端发起了到服务器 HTTP 80 的访问,也就是 TCP Stream 0,在 TCP 正常三次握手后,客户端发起的 HTTP 请求,服务器响应 301 重定向,http -> https 跳转 。

当然可能是 TraceWrangler 匿名化应用的问题,服务器端 IP 0.115.64.211(被修改过),和 DNS 响应中的 IP(217.110.67.201)并不一致,小问题可忽略。

web-05

web-06

  1. 因此从 No.8 开始,客户端发起了到服务器 HTTPS 443 的访问,也就是 TCP Stream 1 ,在 TCP 正常三次握手后,在进行 TLS 握手时发生了问题。

web-07

在客户端 No.11 发送 Client Hello 后,服务器并无任何响应,在 3 秒后,客户端 No.13 超时重传了数据包,服务器此时所发送来的 No.14 提示即有 TCP Previous segment not caputred,说明服务器传输方向在之前有分段丢失的情况发生,因此客户端产生了 No.15 的 DUP ACK 现象。之后因为 TLS 握手失败问题,客户端主动 FIN 了连接,之后会话匆匆结束。而体现在应用上的异常现象,就是网页访问失败,打不开~


进一步分析

转向 TCP 详细分析,打开上帝视图,看看究竟发生了什么问题

web-08

  1. TCP 三次握手中,注意双方通告后的结果,MSS 为 1380 字节;
  2. 客户端 No.11 Client Hello 发送出去后,理论上应该是收到服务器端的 Server Hello,但是却发生了丢包,无任何数据包收到后,因此 No.13 客户端发生超时重传;
  3. 服务器端 No.14 Seq 4141 以及 TCP Previous segment not caputred, 说明了丢失了 4140 字节的分段,也就是 4140/1380 = 3,刚好 3 个 MSS 的数据包。说明服务器按 MSS 1380 所发送出来的数据包,在中间传输时被丢弃了,这种情况判断是中间路径 MTU 小于 1420 (1380+40)导致;(传输路径 MTU 问题
  4. 之后服务器方面也并没有啥补救措施,在客户端 No.15 DUP ACK 仍然请求数据分段 Seq 1 的情况下,服务器陷于沉寂,当然这是站在客户端的抓包角度上来说,从服务器方面来说肯定是在重传,不断重传;
  5. 最后客户端在 30 秒后忍无可忍,FIN 断开连接,Over 。

问题总结

本案例中的访问网页失败算是一类比较简单的故障场景,问题现象明确且容易复现,三下五除二也就解决了,当然相对也会有很复杂的场景,就比较烧脑了 ~ 😔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视频m4v怎么转换成mp4?

在平时我们所使用的视频格式中除了常见的mp4,还有几十种不同的格式种类,不同的视频格式适用不同的播放设备,同时在画质,体积,编码,兼容性等方面都各具特色有所区别。其中m4v格式的视频就是适用于苹果系统的…

这波服装设计作品对女性美的诠释,十分到位

女性是温柔的、美丽的,多样的,莱佛士学生Xu Xinyi作品《Femininity&Softness》便是围绕女性展开创作。而Xinyi的作品想要传达的是:女性不应该被物化,她们是美丽且具有多样性的。 莱佛士服装设计专业学生作品在设计中&#xff…

海外直播公会Tik Tok,蓝海项目官方火热招募中

时过境迁,国内营销越来越成熟,国内公会(MCN机构)开始出现严重内卷。2022年国内公会/MCN公司已有40000多家;国内公会发展成熟,头部主播形成市场垄断;主播招墓难;孵化主播成本高。找她(HS3873)快速拿官方后台 有多少国内…

最短路径条数

在一个m行n列的网格中&#xff0c;每个网格的各边的长度均相等&#xff0c;求由A(x1,y1)点到达B(x2,y2)点的最短路径条数&#xff0c;其中1<m,n<30。输入保证x2>x1,y2>y1 如有下图网格&#xff0c;起点和终点分别是A(1,1),B&#xff08;2&#xff0c;3&#xff09;…

MySQL8.0优化 - 事务的状态

文章目录学习资料事务的状态活动的&#xff08;active&#xff09;部分提交的&#xff08;partially committed&#xff09;失败的&#xff08;failed&#xff09;中止的&#xff08;aborted&#xff09;提交的&#xff08;committed&#xff09;学习资料 【MySQL数据库教程天…

Pandas知识点-读写Excel最全参数总结(收藏)

Pandas知识点-读写Excel最全参数总结&#xff08;收藏&#xff09; pandas文件读写工具汇总 pandas中的文件读写工具由一组read的函数&#xff08;执行Input&#xff09;和一组write的对象方法&#xff08;执行Output&#xff09;组成&#xff0c;具体见下表。 本文总结最常用…

指纹识别系统设计(VC++)

目 录 摘 要 I Abstract II 1绪论 1 1.1选题背景及意义 1 1.2研究现状 2 1.3研究主要内容 2 2技术介绍 3 2.1软件环境 3 2.1.1 C的产生和发展以及特点简介 3 2.1.2 Visual C6.0简介及其优点 5 2.2硬件环境 5 3指纹识别系统需求分析 6 3.1业务需求分析 6 3.2功能需求分析 6 3.3性…

四招教你样式化界面组件KendoReact,让应用程序主题更个性化

Kendo UI致力于新的开发&#xff0c;来满足不断变化的需求&#xff0c;通过React框架的Kendo UI JavaScript封装来支持React Javascript框架。Kendo UI for React能够为客户提供更好的用户体验&#xff0c;并且能够更快地构建更好的应用程序。 开发人员在应用程序主题色的选择…

省重点实验室成果转化:24h在线的专业数字朋友,不用欠人情的网上解答神器~

数据解决大师 一个适合所有人的 数据问题咨询小程序 海量数据如何安全储存&#xff1f; 电脑系统崩溃&#xff0c;关键文档丢失怎么办&#xff1f; 手机被格式化&#xff0c;视频文档等数据如何恢复&#xff1f; 毕业论文遭恶意破坏&#xff0c;如何操作能将损失降至最低&…

Java Final关键字使用

Final关键字 final可以修饰类, 属性, 方法和局部变量 在某些情况下程序员可能有以下需求&#xff0c;就会使用到final: 1)当不希望类被继承时&#xff0c;可以用final修饰. 2)当不希望父类的某个方法被子类覆盖/重写(override)时&#xff0c;可以用final关键字修饰。[访问修饰…

谷粒学院——Day06【整合阿里云OSS、EasyExcel技术实现Excel导入分类】

阿里云存储OSS 一、对象存储OSS 1. 开通“对象存储OSS”服务 阿里云&#xff1a;https://www.aliyun.com/申请阿里云账号实名认证开通“对象存储OSS”服务进入管理控制台 2. 创建Bucket 选择&#xff1a;标准存储、公共读、不开通。 3.上传默认头像 4. 创建RAM子用户 二、…

如何手写一个单向链表?看这里

一. 问题展现 通常我们在大多数的面试中&#xff0c;遇到关于集合的问题都是比较多的。一般情况下&#xff0c;许多面试官通常都会问我们关于Set集合和Map集合的相关知识点&#xff0c;并对此进行重重陷阱的布置&#xff0c;此时很多面试者往往就很容易被带到面试官挖好的陷阱…

netstat命令详解

netstat命令详情一、前言二、netstat查看端口命令三、显示每个协议的统计信息四、显示核心路由信息五、netstat的其他参数一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;小伙伴们&#xff0c;让我们一起来学习netstat命令使用&#xff0c;netstat命令是一个监控TC…

echarts疑难杂症

echarts疑难杂症1.调整柱状图、饼图的大小2.嵌套饼图且颜色保持一致3.并排展示饼图且中间展示文字4.折线图&#xff08;柱状图&#xff09;双y轴5.使用echarts56.图形不展示的问题1.调整柱状图、饼图的大小 //柱状图主要根据grid属性中的top/bottom/left/right属性调整大小 le…

【毕业设计】机器视觉行人口罩佩戴检测系统 - python 深度学习

文章目录0 前言1 简介2 效果展示3 实现方法3.1 模型介绍3.2 获取数据集3.3 数据集获取4 最后0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长哦! 这两年开始&#xff0c;各个学…

164页5万字轨道交通BIM方案建议书

目录 1、 概况 1.1. BIM国内外现状 1.1.1. 国外BIM现状 1.1.2. 国内BIM现状 1.2. BIM在轨道交通工程领域的发展概况 1.3. 中铁二院BIM发展总体思路的建议 2、 解决方案总体架构 2.1. 解决方案应具备的要素 2.2. 解决方案整体架构 2.3匹配度分析 3、 设计阶段解决方案…

数据库的基本操作(5)

先回顾一下在上一篇中的内容&#xff1a; 聚合查询&#xff1a;行和行之间的数据的加工。 聚合函数&#xff1a;count&#xff0c;avg&#xff0c;sum...... group..by...进行分组&#xff0c;将指定列的值进行分组&#xff0c;将相同的记录合并到一个组中。每个组还可以进行…

Golang入门笔记(10)—— 包

使用包的原因&#xff1a; 1.不可能把所有的不同业务功能的函数都放在一个源文件中&#xff0c;这样不便于管理。通常的做法是&#xff1a;我们会把具有相同一些功能和业务的维度的函数&#xff0c;分门别类的放在不同的源文件中。 2.不同的包名&#xff0c;可以解决两个函数…

【SQL 中级语法 3】三值逻辑和NULL

普通语言里的布尔型只有true和false两个值&#xff0c;这种逻辑体系被称为二值逻辑。而SQL语言里&#xff0c;除此之外还有第三个值unknown&#xff0c;因此这种逻辑体系被称为三值逻辑&#xff08;three-valued logic&#xff09;。 为什么SQL语言采用了三值逻辑呢&#xff1…

java项目-第139期ssm博客系统-ssm毕业设计_计算机毕业设计

java项目-第139期ssm博客系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm博客系统》 该项目分为前台和后台2个部分。 前台不需要登录&#xff0c;游客都可以访问&#xff0c;并发表评论 管理员登录后可以进行文章的发表&#xff0c;分类&…