wireshark抓包分析ping数据包

article/2025/11/7 4:28:58

目录

1.抓取数据包

2.ping request数据包解析

2.1 ICMP

2.2 传输层

2.3 以太帧

2.3 数据链路层

3. ping reply数据包解析


1.抓取数据包

先用管理员权限打开WireShark应用,并在条件过滤栏输入“icmp”。打开cmd,输入:ping www.baidu.com。

这样我们在命令行中,得到如下的一个显示结果:

wireshark中显示如下的一个结果:

我们以35/36帧为例,来进行数据包的解析。比较这两帧的时间差,可以看到时间差为18.993ms,这个值跟cmd中显示的时间差19ms是可以对应起来的。

2.ping request数据包解析

我们按照TCP/IP四层模型自上而下的方式来分析ping request数据包,因为该数据就是从应用层开始,逐层添加报头来完成的数据包封包的。对端设备接收到后,又一层一层去掉报头,来获取里面的数据。这好像一个包包子和剥洋葱的过程,O(∩_∩)O哈哈~

2.1 ICMP

应用层是直接使用的icmp封包格式,如下图所示。可以看到整个数据包为40个字节。

icmp数据包的结构如下。

各字段的解释如下:

字段

解释

类型

占据一个字节,标识ICMP报文的类型。ICMP报文类型可以分为两大类,分别是取值在1~127之间的差错报文,另一类是取值大于128的信息报文

代码

占据一个字节,与类型字段一起共同标识ICMP报文的详细类型

校验和

是将整个ICMP数据包(包括数据部分)以16位为一个单位采用CRC校验,然后按位取反后的值

下面罗列一些常见的ICMP报文类型:

类型(十进制)

解释

0

回显应答

3

目标不可达,代码字段值为0标识网络不可达,代码字段值为1标识主机不可达,代码字段值为2标识协议不可达

4

源点抑制,通知主机减少数据包流量

5

重定向或改变路由

8

回显请求

9

路由器公告

10

路由器请求

11

超时,代码字段值为0标识传输超时,代码字段值为1标识分段重组超时

17

地址子网请求

18

地址子网应答

可以看到利用wireshark抓取的icmp如下,跟上面的icmp数据包可以对应起来。

2.2 传输层

传输层是增加的IP报文头部,如下图所示,工20个字节。

我们先看一下IP数据包的格式,它包括IP手部和数据部分,数据部分在本例中就是ICMP数据包。

IP头部各字段的解释:

字段

解释

版本

占据4位,IP协议的版本,IPV4的版本为4

首部长度

占据4位,标识IP首部的长度,值范围为20~60

区分服务

占据一个字节

总长度

占据两个字节,标识的是首部和数据的总大小

标识

占据两个字节,当数据报由于长度超过网络的MTU而必须分 片时,这个标识字段的值就被复制到所有的数据报片的标识字段中,等到重组的时候,相同标识符的值的数据报就会被重新组装成一个数据报

标志

占据3位,一般有用的是前面两位,最低为叫做MF,MF=1表示后面还有若干个数据报,MF=0表示后面没有数据报了;中间为DF,DF表示是否可以进行分片,DF=1表示不能进行分片

片偏移

占13位,片偏移就是,在原来的数据报分片以后,该片在原分组中的相对位置,片偏移中的基本单位是8字节,所以,也就是说,只要是分片,每个分片的长度都是8字节的整数倍,最后一个分片不够八字节的一样是填充

生存时间

占据1个字节,标识该数据包最多可以经过多少个路由器

协议

占据1个字节,标识该数据报使用的是什么协议

首部校验和

占据2个字节,只对首部进行校验,因为数据部分由上层来完成校验

源地址

占据4个字节,源IP地址

目的地址

占据4个字节,目的IP地址

从上面的表格可以看出,上面的字段长度加起来正好是20个字节,也就是IP头部的最小长度大小。

如果有其他数据需要放到IP头部,则可以放到可选字段,填充字段是为了保证IP头部满足4字节整数倍的要求增加的字段。

我们再结合wireshark抓取的数据做一下分析:

2.3 以太帧

我们选中以太帧报文(红色方框圈中的地方),则下面有14个字节被选中了(绿色方框圈中的地方)。可以看到圈中的数据分别是:目的地址的mac地址,源地址的mac地址,还有一个值为0x8000的数据。

我们先看一下以太帧的数据报格式:

字段

解释

目的地址

占据6个字节,标识目标设备(路由器)的mac地址

源地址

占据6个字节,标识源设备的mac地址

类型

占据2个字节,标识上层协议的类型,常见的:0x8000标识IPV4,0x806标识ARP,0x0835标识RARP

这个0x8000表示的就是上层协议类型为ipv4

2.3 数据链路层

双击第35帧数据包,可以得到如下的显示结果。点击数据链路层报文(红色方框标注的地方),可以看到整个74字节的报文内容(绿色方框圈起来的地方)就被选中了,这说明ping request数据链路层报文一共有74个字节。

双击该行,可以展开看到里面更详细的内容:

3. ping reply数据包解析

reply数据包跟request包没有大的区别,在这里就不用再次分析了。

如有错误,请帮忙留言指出,感谢~


http://chatgpt.dhexx.cn/article/hjiBxBlt.shtml

相关文章

Wireshark-----抓包分析

目录 一、Wireshark简介 二、安装与使用 三、抓包分析 1.初次抓包 2.捕获选项设置 3.ARP协议抓包分析 4.IP协议抓包分析 5.TCP协议抓包分析 6.UDP协议抓包分析 7.ICMP协议抓包分析 参考文献 一、Wireshark简介 Wireshark是一款世界范围最广、最好用的网络封包分析软件…

计算机网络——数据包抓取与分析

数据包抓取与分析 目录 一、实验目的 二、实验内容 三、实验环境 四、实验步骤与过程 一、实验目的 学习安装、使用协议分析软件,掌握基本的数据报捕获、过滤和协议的分析技巧,能对抓取数据包进行分析。 二、实验内容 协议分析软件的安装和使用、学…

抓包与分析

(一)作业目的 (1)了解网络通信的分层实现过程,了解不同层次PDU的逐层封装与解封过程; (2)了解数据通信的过程,进一步认知协议的构成与通信过程,进而对TCP/IP分…

Wireshark抓包分析基础

Wireshark抓包分析 (仅作为个人笔记,如有雷同,请联系删除。。) 下载:https://www.wireshark.org/#download 1、设置时间格式:视图–>时间显示格式 2、设置解析:视图–>Name Resoluti…

Java抓包分析四(基于jnetpcap进行抓包)——分析Http请求数据包

在上篇文章中Java抓包分析三(基于jnetpcap进行抓包)——抓取Http请求数据包,我们讲解了TCP三次握手的过程和如何抓取Http数据包,但是我们并没有进行一个数据分析,接下来这篇文章我们将要开始对Http抓取的数据报进行深入…

【HTTP】Fiddler(二) - 使用Fiddler做抓包分析

上文( http://blog.csdn.net/ohmygirl/article/details/17846199 )中已经介绍了Fiddler的原理和软件界面。本文主要针对Fiddler的抓包处理。 Fiddler抓取HTTP请求。 抓包是Fiddler的最基本的应用,以本博客为例,启动Fiddler之后,在浏览器中输入http://blog.csdn.net/ohmygi…

MySQL索引优化实战EXPLAIN解析

先来介绍一下具体的业务场景 当用户登录后,需要查看能够学习的课程,不同的用户看到的课程是不同的,课程存在权限,权限是被下面lesson_user_permissions表控制的,其中sys_user_id 和 lesson_id 作为联合主键 另外还有一…

MySQL索引优化面试题

mysql索引优化熊大注意我们是以innodb为例 创建表sql如下: CREATE TABLE user (id bigint(11) NOT NULL AUTO_INCREMENT COMMENT 主键,age int(10) NOT NULL COMMENT 年龄,name varchar(100) NOT NULL COMMENT 姓名,card_no varchar(64) CHARACTER SET utf8 COLLATE utf8_gen…

【MySQL】深入理解MySQL索引优化器工作原理

本文导读 本文将解读MySQL数据库查询优化器(CBO)的工作原理。简单介绍了MySQL Server的组成,MySQL优化器选择索引额原理以及SQL成本分析,最后通过 select 查询总结整个查询过程。 一、MySQL 优化器是如何选择索引的 下面我们来…

MySQL索引优化与查询优化

1. 索引失效案例 1 全值匹配 2 最佳左前缀法则 3 主键插入顺序 如果 这个数据页已经满了,我们需要把当前 页面分裂 成两个页面,把本页中的一些记录移动到新创建的这个页中。页面分裂和记录移位意味着:性能损耗 !所以如果我们想尽量避免这样…

mysql索引优化系列(一)

一、不常见的索引失效场景 1、举例 还是之前的member会员记录表&#xff0c;往里面插入十万条数据 drop procedure if exists insert_emp; CREATE PROCEDURE insert_emp () BEGINDECLAREi INT;SET i 1;WHILE( i < 100000 ) DOINSERT INTO member ( NAME, age, address, …

MySQL索引优化一

MySQL索引 索引是什么 索引是一种排好序的数据结构&#xff0c;目的是提高查找效率一般来说&#xff0c;索引本身也占内存&#xff0c;因此索引以文件的形式存储在磁盘上平常我们所说的索引一般都是BTree。当然还有hash索引等等 索引优劣势 优势&#xff1a;提高检索效率&a…

MYSQL索引详解和优化

索引的定义 我们在看书的时候&#xff0c;都知道有目录&#xff0c;我们可以通过目录快速的找到书中的内容&#xff0c;而书中的目录就是充当书的索引。在数据库中的索引也是一样的。 索引的定义&#xff1a; 索引是帮助存储引擎快速获取数据的一种数据结构&#xff0c;即数据…

一文彻底搞懂Mysql索引优化

专属小彩蛋&#xff1a;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff08;前言 - 床长人工智能教程&#xff09; 目录 一、索引介绍 二、性能分析 三、查询优化 四、排序优化…

MYSQL通过索引进行优化

MYSQL通过索引进行优化 一&#xff1a;什么是索引&#xff1a; 在关系数据库中&#xff0c;索引是一种与表有关的数据库结构&#xff0c;它可以使对应于表的 SQL 语句执行得更快。索引的作用相当于图书的目录&#xff0c;可以根据目录中的页码快速找到所需的内容。 对于数据…

MySQL索引优化(超详细)

Mysql索引优化 1 索引介绍 1.1 什么时MySQL的索引 ​ MySQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 ​ MySQL在存储数据之外&#xff0c;数据库系统中还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种引用(指向)表中的数据&#xff…

MySQL索引(二)索引优化方案有哪些

在上一篇文章中&#xff0c;我们介绍了MySQL中常见的索引类型以及每种索引的各自特点&#xff0c;那么这篇文章带你来与我一起看一下聚集索引与二级索引的关系&#xff0c;最后在附上常见的索引优化方案。首先我们还是看一下聚集索引和二级索引的区别 MySQL索引&#xff08;一…

【MySQL】索引优化原则

前面几篇博文谈到索引使用场景和explain命令帮助我们分析索引的执行情况&#xff0c;今天进入正题&#xff0c;来谈谈索引优化的原则。 1、全值匹配 查询语句尽量使用全值匹配。 2、左前缀原则 如果一个索引是组合索引&#xff0c;索引了多列&#xff0c;要遵循左前缀原则…

MySQL:索引优化、查询优化

一、哪些情况适合创建索引 1、字段的数值有唯一性的限制&#xff1b; 业务上具有唯一特性的字段&#xff0c;即使是组合字段&#xff0c;也必须建成唯一索引&#xff1b; 说明&#xff1a;创建唯一索引会影响添加的速度&#xff08;在添加的时候会维护索引&#xff09;&…

Mysql-索引优化

一、索引基本知识 1、索引的优点 很大程度上减少服务器扫描的数据量很大程度上避免服务器排序和临时表将随机IO变成顺序IO 2、索引的用处 使用索引列可以快速查找Where条件的行数据 mysql> explain select * from emp where empno 7469; ----------------------------…