当前位置: 首页 > news >正文

聊聊wireshark的进阶使用功能 | 京东云技术团队

1. 前言

emmm,说起网络知识学习肯定离不来wireshark工具,这个工具能够帮助我们快速地定位网络问题以及帮助正在学习网络协议这块的知识的同学验证理论与实际的一大利器,平时更多的只是停留在初步的使用阶段。也是利用部门内部的网络兴趣小组的讨论机会,私下对wireshark的一些进阶功能,比如专家模式、图表等功能进行调研,并结合实际场景抓包分析对功能进行对照说明。

2. wireshark中的分析菜单——专家模式

2.1什么是专家模式?

Wireshark的专家信息是非常强大的一个分析模块,分别对错误、警告、注意、对话等数据信息做出分类和注释,对网络故障分析提供了强有力的信息依据,让你准确快速地判断出故障点,并进行下一步处理。

2.2 严重性级别的每种分类分别代表什么含义?

◦对话(Chat):关于正常通信的基本信息;

◦注意(Note):正常通信时的异常数据包;

◦警告(Warn):不是正常通信中的异常数据包(个人理解为:非正常的通信产生的数据包);

◦错误(Error):数据包中的错误,或者解析器解析时的错误;

2.3 除了严重性级别之外,专家信息项还按组进行了分类:

假设(Assumption):协议字段的数据不完整,根据假定值进行了剖析

检验和(Checksum):校验和无效

注释(Comment):数据包注释

调试(Debug):调试信息,你不应该在wireshark的发布版本中看到这个组

解密(Decryption):解密问题

已弃用(Deprecated):协议字段已经被弃用

畸形的(Malformed):格式错误的数据包或者解析程序有错误。此数据报的解析已中止

协议(Protocol):违反协议规范(比如无效字段值或者非法长度)。可能会继续对该数据包进行解析

重新组装():重新组装时出现问题。比如,不是所有的碎片都可用,或者在重新组装期间发生异常

请求代码(Request Code):一个应用程序请求。通常分配聊天级别。

响应代码(Response Code):应用程序响应代码表示潜在问题,比如找不到HTTP 404

安全(Security):安全问题,比如不安全的实现

序列(Sequence):协议序列号可疑,比如它不连续或者检测到重传

未编码(Undecoded):解析不完整或者数据因为其他问题无法解码

2.4 TCP的14种专家模式?

对话消息(Chat):

窗口更新(window update)__由接收者发送,用来通知发送者TCP接收窗口的大小已经发生变化。

注意消息(Note):

重复ACK(Duplicate ACK )__当一台主机没有收到下一个期望序列号的数据包时,会生成最近一次收到的数据的重复ACK。

注意:其实重复确认本身并不是问题,但如果接收方连续发送多个重复确认,则可以视为网络拥塞的信号。TCP协议中定义了一种拥塞控制机制,在发现网络拥塞时会触发这个机制,以减缓数据传输的速度,从而避免拥塞的加剧。 快速重传:当TCP接收方连续发送三个重复确认时,发送方就会认为一个数据包已经丢失,并立即进行快速重传(Fast Retransmit)操作。它会重新发送那个没有收到确认的数据包,而不是等待超时时间后再重传。这样做可以尽快地填补丢失的数据包,提高数据传输速度和效率。

TCP重传(retransmission)__数据包丢失的结果。发生在收到重传的ACK, 或者数据包的重传计时器超时的时候。

零窗口探查__在一个零窗口包被发送出去后,用来监视TCP接收窗口的状态。

零窗口探查ACK:用来响应零窗口探查数据包。

保活(TCP Keep-Alive Segment):当一个连接的保活数据出现时触发。

保活ACK(ACK to Tcp keep-alive):用来响应保活数据包。

窗口已满:用来通知传输主机接受者的TCP窗口已满。

警告信息(Warn):

上一段丢失(Previous segments not captured):指明数据包丢失。发生在当数据流中一个期望序列号被跳过时。

收到丢失数据包的ACK(ACKed segment that was not captured):发生在当一个数据包被确认丢失但在之后收到了这个已经被确认丢失的数据包的ACK数据包。

零窗口(TCP Zero Window):当接收方已经达到TCP接收窗口大小时,发出一个零窗口通知,要求发送方停止传输数据。可能是网络拥塞或接收方未及时处理数据等原因导致的。

乱序:当数据包被乱序接收时,会利用序列号进行检测。

快速重传输:一次重传会在收到一个重复ACK的20毫秒内进行。

3. 统计菜单——IO图表、数据流图

3.1 IO图表的用途?

Wireshark IO Graph能把原始数据过滤并把数据以图表的形式展示出来,是一个非常好用的工具。 基本的Wireshark IO Graph会显示抓包文件中的整体流量情况。X轴为时间,Y轴是每一时间间隔的报文数。默认情况下,X轴时间单位为1s,Y轴是Packet/tick,可以自己调节单位。通过调节单位,对于查看流量中的波峰/波谷很有帮助。

3.2 一些常用的排错过滤条件?

对于排查网络延时/应用问题有一些过滤条件是非常有用的,下面罗列了一些常用的过滤条件:

tcp.analysis.lost_segment:表明已经在抓包中看到不连续的序列号。报文丢失会造成重复的ACK,这会导致重传。

tcp.analysis.duplicate_ack:显示被确认过不止一次的报文。大量的重复ACK是TCP端点之间高延时的迹象。

tcp.analysis.retransmission:显示抓包中的所有重传。如果重传次数不多的话还是正常的,过多重传可能有问题。这通常意味着应用性能缓慢和/或用户报文丢失。

tcp.analysis.window_update:将传输过程中的TCP window大小图形化。如果看到窗口大小下降为零,这意味着发送方已经退出了,并等待接收方确认所有已传送数据。这可能表明接收端已经不堪重负了。

tcp.analysis.bytes_in_flight:某一时间点网络上未确认字节数。未确认字节数不能超过你的TCP窗口大小(定义于最初3此TCP握手),为了最大化吞吐量你想要获得尽可能接近TCP窗口大小。如果看到连续低于TCP窗口大小,可能意味着报文丢失或路径上其他影响吞吐量的问题。

tcp.analysis.ack_rtt:衡量抓取的TCP报文与相应的ACK。如果这一时间间隔比较长那可能表示某种类型的网络延时(报文丢失,拥塞,等等)。

3.3 IO图表中的一些常用的函数?

IO Graphs有六个可用函数:SUM, MIN, AVG, MAX, COUNT, LOAD。

◦MIN(), AVG(), MAX()

MIN、AVG、MAX分别表示帧/报文之间的最小、平均、最大时间,对于查看帧/报文之间的延时非常有用。

我们可以将这些函数结合“frame.time_delta”过滤条件看清楚帧延时,并使得往返延时更为明显。如果抓包文件中包含不同主机之间的多个会话,而只想知道其中一个pair,可将“frame.time_delta”结合源和目标主机条件如“ip.addrx.x.x.x &&ip.addry.y.y.y”。

从上图可见,在第106秒时数据流的MAX frame.delta_time达到0.7秒,这是一个严重延时并且导致了报文丢失

◦Count()

此函数计算时间间隔内事件发生的次数,在查看TCP分析标识符时很有用,例如重传。

◦Sum()

该函数统计事件的累加值。有两种常见的用例是看在捕获TCP数据量,以及检查TCP序列号。

参数设置:分别使用客户端IP 192.168.1.4为源、目的地址,并将SUM功能结合tcp.len过滤条件;

从图表中我们可以看到,发送到客户端的数据量(IP.DST = = 192.168.1.4过滤条件)比来自客户端的数据量要。在图中红色表示。黑条显示从客户端到服务器的数据,相对数据量很小。这是有道理的,因为客户只是请求文件和收到之后发送确认数据,而服务器发送大文件。很重要的一点是,如果你交换了图的顺序,把客户端的IP作为图1的目标地址,并且客户端IP作为图2的源地址,采用了FBAR的时候可能看不到正确的数据显示。因为图编号越低表示在前台显示,可能会覆盖较高图号。

4. 实例场景分析

参数设置:1是HTTP总体流量,显示形式为packets/tick,时间间隔1秒。图2是TCP丢失报文片段。图3是TCP 重复ACK。图4是TCP重传。

图1:HTTP总体流量图

图2:TCP丢失报文片段图

图3:TCP 重复ACK

从这张图可以看到:整体的HTTP流量,TCP重传以及重复ACK的流量,这些事件发生的时间点,以及在整体流量中所占的比例。

•数据包丢失和延迟的TCP序列号场景:我们可以在下面的图中看到若干峰值和下降,表示TCP传输有问题。

图4:数据包丢失和延迟的TCP序列号场景

与正常TCP报文比较:

这张图可以看到TCP序列号相当稳定地增加,表示传输平稳,没有过多重传或丢包。

对比视频会议在网络卡顿与流畅时的IO图表实例场景:

https://zhiliao.h3c.com/Theme/details/104284

5. 总结

如果只是简单的排查网络问题,只需要使用wireshark中简单的添加过滤规则,通过观察抓取到的数据包就可以达到定位问题的目的,其实这几个进阶的功能,无论是专家模式、还是IO图表,底层其实还是需要配置规则,亦或者是通过wireshark的内置规则做了一个集成。针对一些场景,比如观测网络是否拥塞,可以通过IO图表直观的进行判断,以上。

作者:京东科技 宋慧超

来源:京东云开发者社区 转载请注明来源

相关文章:

聊聊wireshark的进阶使用功能 | 京东云技术团队

1. 前言 emmm,说起网络知识学习肯定离不来wireshark工具,这个工具能够帮助我们快速地定位网络问题以及帮助正在学习网络协议这块的知识的同学验证理论与实际的一大利器,平时更多的只是停留在初步的使用阶段。也是利用部门内部的网络兴趣小组…...

小米手机安装面具教程(Xiaomi手机获取root权限)

文章目录 1.Magisk中文网:2.某呼:3.最后一步打开cmd命令行输入的时候:4.Flash Boot 通包-Magisk(Flash Boot通刷包)5.小米Rom下载(官方刷机包)6.Magisk最新版本国内源下载 1.Magisk中文网: htt…...

DSU ON TREE

DSU ON TREE DSU:并查集 DSU ON TREE:树上启发式合并 我也不知道为啥树上并查集就是树上启发式合并 启发式合并的思想是每次把小的往大的合并,也就是最大化利用已有的答案(大的数组不用清空,在原基础上加上小的即可&…...

Java“对象”

Java:PO、VO、BO、DO、DAO、DTO、POJO PO持久化对象(Persistent Object) PO是持久化对象,用于表示数据库中的实体或表的映射通常与数据库表的结构和字段对应PO的属性对应数据库表的字段,可以进行持久化操作&#xff0…...

vuepress+gitee免费搭建个人在线博客(无保留版)

文章目录 最终效果,一睹为快!一、工具选型二、什么是VuePress三、准备工作3.1 node 安装3.2 Git安装3.3 Gitee账号注册 四、搭建步骤4.1 初始化VuePress4.2 安装VuePress4.3 初始化目录4.4 编写文章 五、部署到Gitee5.1 创建仓库5.2 个人空间地址设置4.3…...

Android 12.0 系统限制上网系列之iptables用IOemNetd实现app上网白名单的功能实现

1.前言 在12.0的系统rom定制化开发中,对于系统限制网络的使用,在system中netd网络这块的产品需要中,会要求设置app上网白名单的功能, liunx中iptables命令也是比较重要的,接下来就来在IOemNetd这块实现app上网白名单的的相关功能,就是在 系统中只能允许某个app上网,就是…...

Idea和DataGrip自定义常用代码模板,熟练使用快捷模板可促进开发效率

场景: 在实际工作中,我们不可能一个一个字母的去敲代码,为了提升开发效率,可以使用常用的快捷代码模板。idea和datagrip自带的有,我们也可以自定义快捷模板 一、Idea自定义代码模板、有些是基于 hutool 常用包 1、-&g…...

Vue.js :实现嵌套对话框的查看按钮

Vue.js :实现嵌套对话框的查看按钮 Vue.js 是一款流行的 JavaScript 框架,用于构建交互性强、响应式的前端应用程序。本博客将介绍如何使用 Vue.js 和 Element UI 库创建一个前端应用,其中包括了嵌套对话框的查看按钮,以及如何在…...

9.2.4 【MySQL】段的结构

段不对应表空间中某一个连续的物理区域,而是一个逻辑上的概念,由若干个零散的页面以及一些完整的区组成。像每个区都有对应的XDES Entry来记录这个区中的属性一样,定义了一个INODE Entry结构来记录段中的属性。 它的各个部分释义如下&#xf…...

怎么快速提取图片中的文字信息?怎么使用OCR图片文字提取一键提取文字

图片里的文字如何提取?一些图片中的文字信息是我们需要的,但是一个个输入太麻烦了,怎么将图片上的文字提取出来?Initiator是一款易于使用的小型 macOS OCR(光学字符识别)应用程序,可提取和识别 Mac 计算机屏幕上的任…...

Selenium隐藏浏览器特征

Selenium隐藏浏览器特征 Selenium特征1. CDP2. stealth.min.js3. undetected_chromedriver4. 操作已开启的浏览器4. 常见的隐藏Selenium特征的方法4.1 修改navigator.webdriver标志4.2 改变user-agent4.3 排除或关闭一些Selenium相关的开关4.4 代码展示4.5 总结 Selenium特征 …...

Linux下的buff/cache

目录 一、buff/cache二、buff/cache与内存管理三、buff/cache对系统性能的影响四、优化buff/cache1、调整vm.dirty_ratio和vm.dirty_background_ratio2、配置vm.swappiness3、配置vm.vfs_cache_pressure 五、释放buff/cache 一、buff/cache 按照Linux内核文档所说的&#xff0…...

3.wifi开发,网络编程

网络协议栈LwIP WiFi UDP Clinet编程 WiFi UDP Server编程 WiFi TCP Client编程 WiFi TCP Server编程 一。LWIP原理介绍,API介绍,文件结构 1.Lwip支持的协议 2.API 3.文件结构 1.api目录:应用程序接口文件。 2.arch目录:与硬件和…...

Android框架mqtt库无法兼容高版本android13的问题

最近使用mqtt库,测试的时候发现在Android12及以下正常,但在13上闪退,闪退日志如下 java.lang.IllegalArgumentException: com.yummo.xcar: Targeting S (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be spe…...

一招解除csdn复制限制

先看这个代码 python读取英文pdf翻译成中文pdf文件导出代码 想要复制代码,csdn有限制怎么办(csdn流氓,无耻) 解除方法 ctrlu 看效果...

安全基础 --- nodejs沙箱逃逸

nodejs沙箱逃逸 沙箱绕过原理:沙箱内部找到一个沙箱外部的对象,借助这个对象内的属性即可获得沙箱外的函数,进而绕过沙箱 前提:使用vm模块,实现沙箱逃逸环境。(vm模式是nodejs中内置的模块,是no…...

Redis集群架构搭建——主从、哨兵、集群

上一篇文章Ubuntu上通过源码方式安装Redis已经介绍了如何安装redis,在这篇文章中,将会教大家搭建Redis的几种高可用的架构:主从架构、哨兵集群、Cluster集群。 本篇文章使用的redis版本为6.2.13,不同版本的配置可能有略微的区别&a…...

39 | selenium基础架构,UI测试架构

什么是测试基础架构? 测试基础架构指的是,执行测试的过程中用到的所有基础硬件设施以及相关的软件设施。因此,我们也把测试基础架构称之为广义的测试执行环境。通常来讲,测试基础架构主要包括以下内容: 执行测试的机器…...

2023研究生数学建模E题保姆级思路 出血性脑卒中临床智能诊疗

本次E题是一道J机器学习题目,难度也比较高,该题一般是有正确结果的,容易踩坑,不太建议小白选择,小白可以选择D题,D题思路也可以看另一篇文章,总的难度都不算低,这三道的难度接近&…...

画电路板通用知识

快捷键 快捷键 功能 shift+鼠标滚轮左右移动Ctrl+鼠标滚轮放大缩小 (Alt+) 鼠标滚轮上下移动滚轮按下鼠标滚轮可任意方向拖动图纸(可以一直保持按下状态或者按一下松开) CTRL+鼠标左键拖动复制该元件CTRL+E编辑选中元件的属性CTRL+鼠标左键 元叠选izoom in,聚焦光标所…...

三相组合式过电压保护器试验

三相组合式过电压保护器试验 试验目的 三相组合式过电压保护器主要分为有带串联间隙过压保护器和无间隙过压保护器两大类,其试验项目内容要求分别使用高压工频交流和高压直流电源。 三相组合式过电压保护器试验,主要是为了及早发现设备内部绝缘受潮及…...

C++提高编程:01 模板

这里写目录标题 1 模板的概念2 函数模板2.1 函数模板语法2.2 函数模板注意事项2.3 函数模板案例2.4 普通函数与函数模板的区别2.5 普通函数与函数模板的调用规则2.6 模板的局限性 3 类模板3.1 类模板语法3.2 类模板与函数模板区别3.3 类模板中成员函数创建时机3.4 类模板对象做…...

Latex Overleaf 写作问题记录

Latex & Overleaf 写作问题记录 公式换行及排列整齐 \begin{equation} \begin{split}Y & a1\\&b2 \end{split} \end{equation}顶格 \noindent求和符号 求和符号(上下限上下排列) \sum\limlits求和符号(上下限右边排列&#…...

OpengL之纹理

简介 我们可以为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像。但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多的颜色。这将会产生很多额外开销,因为每个模型都会需求更多的顶点…...

IOTE 2023盛况回顾,美格智能聚连接之力促数字新生长

9月20~22日,IOTE国际物联网展深圳站在深圳国际会展中心正式召开。本届展会以“IoT构建数字经济底座”为主题,聚焦物联网技术助推数字经济发展的核心动力。美格智能携前沿技术成果亮相展会,与参展观众深入交流。 展会上,美格智能带…...

科普:什么是视频监控平台?如何应用在场景中?

随着科技的发展,监控无处不在,就像一张密不透风的网,将生活中的角角落落都编织在一起。可是,你真的知道什么是安防视频监控平台吗?它可不止是一个简单的通电摄像头,如今的视频监控平台,涵盖了无…...

arcgis js 缓冲区分析(GP服务)

arcgis文档中的有提供缓冲区的接口 geometryService,但要4.19后版本才提供 案例中使用的版本为4.16,因此这里的缓冲区分析借助gp工具 新建服务 1、打开arcmap 选择工具将要存放的文件夹,右键> new > Toolbox 对新建好的工具的mode…...

【word格式】mathtype公式插入 | 段落嵌入后格式对齐 | 字体大小调整 |空心字体

1. 公式嵌入 推荐在线latex编辑器,可以截图转 latex 识别率很高 https://www.latexlive.com/home 美中不足,不开会员每天只能用3次识别。 通过公式识别后,输出选择align环境,然后在mathtype中直接粘贴latex就可以转好。 2.公式…...

【动态规划刷题 17】回文子串 最长回文子串

647. 回文子串 链接: 647. 回文子串 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由…...

mysql 每日自动备份数据库

在 MySQL 中,你可以使用定时任务来每日自动备份数据库。通常,最常用的方法是使用操作系统的定时任务工具(如cron)来调度备份操作。以下是一些步骤来设置每日定时备份MySQL数据库: 创建备份脚本:首先&#x…...

设计官网收费标准/南京seo排名扣费

题库来源:安全生产模拟考试一点通公众号小程序 2022年制冷与空调设备运行操作操作证考试题库系制冷与空调设备运行操作考题高频考题覆盖!2022制冷与空调设备运行操作考试模拟100题及在线模拟考试根据制冷与空调设备运行操作考试大纲。制冷与空调设备运行…...

化妆品网站素材/网络品牌推广

本文针对grub故障及服务故障导致的开机无法启动的情况进行模拟,并给出修复详细步骤。一、grub各配置文件问题引起的开机故障可能出现此故障场景:当前硬盘没有grub,每次启动都是通过有grub的光盘或U盘启动的当前硬盘上的操作系统有两块硬盘其中…...

建站工具推荐/百度竞价推广培训

楼经济,还能印多久钞票。...

dreamweaver绿色版下载/seo搜索引擎优化推荐

本文刚刚发在51CTO.com网站,文章链接:[url]http://soft.51cto.com/art/200611/34788.htm[/url]11月中旬,CA EXPO 2006分别在上海和北京召开。作为一直与CA保持联系的记者,51CTO老杨受邀参与北京站的会议。我是2000年开始接触和了解…...

怎么建小说网站/百度做网站

win8 无法安装 net framework3.5 问题的解决办法 通过CMD 打指令 dism.exe /online /enable-feature /featurename:NetFX3 /Source:G:\sources\sxs 都OK了 注意G:\sources\sxs中的 G为window8安装的ISO装载到虚拟盘符, 这个必须用ISO文件里的东西,也就是必须用镜像…...

美术馆网站建设总体要求/说到很多seo人员都转行了

关于切片 按照我的理解的话,切片相当于是一个循环,语法就是for...in 列表或tuple名称,然后逐个遍历出来 但是切片可以根据自己想要的数据进行取舍 首先定义一个列表 Numberlist(range(100)) #0-99的数字如若想取出前20个数字的话,…...