Wireshark抓包分析ICMP协议

news2024/10/7 8:24:52

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

分析目的:分析ICMP协议的数据格式、报文类型及作用。
操作系统:Windows 10 企业版
抓包工具:Wireshark 4.0.8

  • 第一步:捕获ICMP数据包
  • 第二步:分析报文类型
  • 第三步:分析数据报格式

第一步:捕获ICMP数据包

ping 命令底层使用了ICMP协议,使用 ping 命令,就可以观察到ICMP的「工作流程」

1)Wireshark「开启抓包」后, ping 一下我们的网关,触发ICMP协议。

  • cmd中执行命令:ping 192.168.2.1 -n 1

在这里插入图片描述

2)Wireshark的「显示过滤器」中过滤 icmp

  • 抓到了两个包:上面是ICMP「请求包」,下面是ICMP「响应包」
  • 因为我只Ping了一次,所有只抓了一对包,这样分析起来比较方便。

在这里插入图片描述


3)找到ICMP的数据包

  • 从上往下分别是这个数据包中,物理层、数据链路层、网络层、应用层使用的协议
  • 最下面的 Internet Control Message Protocol「首字母」连起来是ICMP,就是我们要找的ICMP协议,其他协议也是这种形式。

在这里插入图片描述


第二步:分析报文类型

ICMP协议通过的 Type Code 两个字段来表示「报文类型」,接收方根据报文类型执行对应的操作,以此来达到「控制」的效果。

因此,这里我们先看 Type Code 这两个字段。

1)先看第一个包,重点看我圈中的字段:

  • Type字段,标明了报文的类型, request 表示这是一个「请求」报文。
  • Code字段,标明了报文的代码。
  • Type=8,Code=0,表示这是一个回显请求(Ping请求)

在这里插入图片描述


2)再看第二个包,重点看我圈中的字段

  • Type字段,标明了报文的类型, reply 表示这是一个「响应」报文。
  • Code字段,标明了报文的代码。
  • Type=0,Code=0,表示这是一个回显应答(Ping应答)

在这里插入图片描述

第三步:分析数据报格式

接下来看看ICMP的报文数据格式,除了刚才讲的类型(Type)和代码(Code),还有其他字段。

在这里插入图片描述

1)「校验和」 Checksum 字段,用来验证报文是否有误

  • Checksum Status = Good,表示校验状态是良好的,报文无误

在这里插入图片描述

2)ICMP的响应中,会携带「响应时间」(Response time ),Ping命令返回的响应时间,就是从这里获取的

在这里插入图片描述


3)发送了多少「字节」,也可以在Data字段看到

在这里插入图片描述


4)BE 和 LE 这四个字段用来对应请求和响应的关系。

  • 请求和响应中,这四个字段都是一样的,用来标识这次请求。比如我给你发个1,你给我回个1,我就知道我们俩是同一个请求;如果你给我会个2,我就知道我们不是同一个请求,你是回给别人的,你不是会给我的。

在这里插入图片描述

平时使用,我们主要看Type 和 Code 这两个字段,知道ICMP的报文类型即可。

ICMP的报文类型有很多,详情可以参考我的另一篇文章:ICMP协议的功能及实现原理,ICMP协议报文类型

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

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

相关文章

【赠书活动】无测试组织:测试团队的敏捷转型

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

不可忽视的字符函数与字符串函数:它们如何改变你的编程世界

💓博客主页:江池俊的博客⏩收录专栏:C语言进阶之路👉专栏推荐:✅C语言初阶之路 ✅数据结构探索💻代码仓库:江池俊的代码仓库🎉欢迎大家点赞👍评论📝收藏⭐ 文…

苹果恢复出厂设置怎么操作?方法在这!

手机恢复出厂设置,简单点来说就是将手机恢复到出厂时的默认状态。如果在使用手机的过程中遇到内存不足、系统闪退、应用卡顿等问题,可以尝试通过将手机恢复出厂设置来解决问题。那么,苹果恢复出厂设置的方法是什么?还不知道如何操…

API接口自动化测试框架

前言 接口自动化逐渐成为各大公司投入产出最高的测试技术。但是如何在版本迅速迭代过程中提高接口自动化的测试效率,仍然是大部分公司需要解决的问题。 框架定位 数据驱动设计模式,无需写测试代码脚本即可实现自动化等价类非等价类覆盖, E2E…

浅谈如何预防高层小区电气火灾的发生

【摘要】:随着国民经济的发展和人民生活水平的不断提高,我国工业用电和家庭用电量逐年增加。电气火灾造成的人员伤亡和财产损失巨大,时刻威胁着人们的生命及财产安全。众所周知,因供电线路或用电设备的损坏引发的接地电气火灾的例…

Seata入门系列【2】Spring Cloud 2021.0.5集成seata 1.7.1

1 引出分布式事务问题 1.1 seata-service-account编写查询用户、远程调用下订单接口 RestController RequestMapping("/accountTbl") public class AccountTblController {AutowiredAccountTblMapper accountTblMapper;AutowiredOrderFeign orderFeign;GetMapping(…

西门子KTP触摸屏做画面时如何把设备图片或Logo做到画面上?

西门子KTP触摸屏做画面时如何把设备图片或Logo做到画面上? 如下图所示,新建一个项目,添加一个触摸屏设备,这里以TP1200 Comfort触摸屏为例进行说明,双击进入根画面, 如下图所示,在右侧的工具箱中…

SpringBoot 学习(一)自动装配

本系列文章为【狂神说 Java 】视频的课堂笔记,若有需要可配套视频学习。 1.1 pom.xml (1) 父工程( spring-boot-starter-parent ) 核心依赖,静态资源过滤等配置。编写或导入 springboot 依赖时不需要指定版本号,继承…

MySQL 连接查询(多表查询 二)

基本介绍 作用:连接查询(Join)操作,用于联结多个表以获取更全面和准确的数据 基本分类: 内连接:相当于查询A、B交集部分数据(去掉迪卡尔积无效组合)外连接: 左外连接&…

nginx: 部署前端项目的详细步骤(vue项目build打包+nginx部署)

目录 第一章 前言 第二章 准备工作 2.1 项目打包理解 2.1.1 打包命令 2.1.2 理解npm run serve/dev 和 npm run build命令 2.2 nginx参数配置理解 2.2.1 nginx常用基本命令 2.2.2 默认配置 2.2.3 搭建不同网站的站点 2.2.4 禁止访问的目录以及一键申请SSL证书验证目录…

Red Hat更新开发套件了,有你期待的功能吗?

导读近日,Red Hat公司将Red Hat Development Suite更新到了2.0版本,其中包括对Red Hat JBoss Development Suite和Red Hat Container Development Kit的一系列优化。 Red Hat Development Suite 2.0版本的主题是扩展可用性与产品集成,以及扩展…

毕业设计--基于SpringBoot+Vue的科研课题项目管理系统

介绍 基于SpringBootVue的科研课题项目管理系统 ; 实现 登录 /注销、 用户管理、项目管理、申报管理、变更管理、结题管理、角色管理、权限管理、数据字典等功能 ; 可作为 SpringBoot前后端分离项目 开发练习模型、课程设计 、 毕业设计 等。 环境准…

上车加速!为下一代LCoS HUD造势,华为和哪些企业在领跑

高工智能汽车研究院监测数据显示,今年1-7月中国市场(不含进出口)乘用车前装标配W/AR HUD交付108.35万辆,同比增长47.98%,前装搭载率升至9.82%。 其中,从价位区间分布来看,30万元及以上车型标配W…

【如何看待Unity收费】对标中小公司的待就业者的该如何做

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

多个vtk文件合并

收费工具,白嫖党勿扰 收费金额200元 程序下载链接 1 概述 最近在项目上,有一个客户,通过超算,得到了几百个vtk文件,让我们显示出来,将这几百个vtk文件分别解析,然后再做可视化显示&#xff0c…

更好的用户体验, 开源实时监控新版发布

哈喽大家好,时间很快两个月又过去了,HertzBeat 经过近两个月的迭代终于发布了 v1.4.1 版本。为什么是终于,因为有点难哈哈。我们参考 rocketmq 重构了 netty 的 server client 端模块,重构了采集器集群调度。比起上一版本有了更优…

2023-09-27 monetdb-存储架构-记录

摘要: 2023-09-27 monetdb-存储架构-记录 存储架构 MonetDB SAM/BAM 模块支持两种类型的模式来存储 SAM/BAM 数据。使用顺序模式,所有对齐记录都可以轻松读取、解析并随后存储,与它们在 SAM/BAM 文件中的存储方式相当。使用成对模式,对齐记…

【计算机网络笔记六】应用层(三)HTTP 的 Cookie、缓存控制、代理服务、短连接和长连接

HTTP 的 Cookie HTTP 的 Cookie 机制要用到两个字段:响应头字段 Set-Cookie 和请求头字段 Cookie。 Cookie 可以设置多个 key-value 对, 响应头中可以设置多个 Set-Cookie 字段,请求头Cookie后面可以设置多个键值对,用分号隔开&a…

Linux工具(二)

前言:在Linux工具(一)中,我们学习了yum软件安装工具和vim文本编辑器工具,那么本次我们就再来介绍两种工具,分别是,编辑器gcc/g、项目自动化构建工具-make/Makefile ,接着我们再来写一…

【Linux进行时】环境变量and进程优先级

1.环境变量 ❓首先一个问题:我写的代码(这个代码很简单,不用管)编译之后运行的时候为什么要带./ ? 或者说我怎么才可以让我不用带./ ? 💡.代表当前文件下,/是文件分隔符,…