2.3 - 网络协议 - ICMP协议工作原理,报文格式,抓包实战

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

ICMP协议

  • 1、ICMP协议工作原理
  • 2、ICMP协议报文格式
  • 3、ICMP协议报文类型
  • 4、ICMP协议抓包分析

ICMP(Internet Control Message Protocol)是「控制报文协议」,是IP协议的一个组成部分,负责在主机和路由器之间「传递控制信息」(不传递用户数据),比如网络通不通,主机是否可达等。

1、ICMP协议工作原理

ICMP的功能是「检错」而不是纠错。

它将出错的报文返回给发送方的设备,发送方根据ICMP报文确定「错误类型」,从而更好的重发错误的数据包。

pingtracert 命令就是利用ICMP协议来实现的

  • ping 127.0.0.1:检查网络连通性,ping的过程就是ICMP协议的工作过程。如果对方禁用了ICMP协议,就会Ping不通,但这并不代表网络不通。
  • tracert 127.0.0.1:路由跟踪,显示数据包到达目标主机经过的设备和消耗时间。

2、ICMP协议报文格式

ICMP是IP协议的一部分,因此,ICMP协议的报文包含在IP数据报的数据部分:
在这里插入图片描述
我们结合数据包解释一下每个字段的作用

在这里插入图片描述

  • Type:类型【4位】,标明ICMP报文的作用及格式。
  • Code:代码【4位】,标明报文的类型。
  • Checksum:校验和【8位】,检验报文是否有误。
  • Identifier:标识符【取决于类型】,确定是否是同一次请求响应。
  • Sequence number:序列号【取决于类型】,表示数据包在传输过程中的顺序。

3、ICMP协议报文类型

ICMP协议主要通过 Type Code 的组合,来表示报文的「类型」

比如正常的请求响应:发送方 Type=8 的报文,途中没有异常,接收方就返回 Type=0 的报文

在这里插入图片描述

如果端口不可达,接收方就返回 Type=3,Code=3

在这里插入图片描述
常见的ICMP响应类型:

  • 网络连通:Type=0Code=0
  • 网络不可达:Type=3Code=0
  • 主机不可达:Type=3Code=1
  • 协议不可达:Type=3Code=2
  • 端口不可达:Type=3Code=3

完整的ICMP类型:

TYPECODEDescription
00Echo Reply——回显应答(Ping应答)
30Network Unreachable——网络不可达
31Host Unreachable——主机不可达
32Protocol Unreachable——协议不可达
33Port Unreachable——端口不可达
34Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特
35Source routing failed——源站选路失败
36Destination network unknown——目的网络未知
37Destination host unknown——目的主机未知
38Source host isolated (obsolete)——源主机被隔离(作废不用)
39Destination network administratively prohibited——目的网络被强制禁止
310Destination host administratively prohibited——目的主机被强制禁止
311Network unreachable for TOS——由于服务类型TOS,网络不可达
312Host unreachable for TOS——由于服务类型TOS,主机不可达
313Communication administratively prohibited by filtering——由于过滤,通信被强制禁止
314Host precedence violation——主机越权
315Precedence cutoff in effect——优先中止生效
40Source quench——源端被关闭(基本流控制)
50Redirect for network——对网络重定向
51Redirect for host——对主机重定向
52Redirect for TOS and network——对服务类型和网络重定向
53Redirect for TOS and host——对服务类型和主机重定向
80Echo request——回显请求(Ping请求)
90Router advertisement——路由器通告
100Route solicitation——路由器请求
110TTL equals 0 during transit——传输期间生存时间为0
111TTL equals 0 during reassembly——在数据报组装期间生存时间为0
120IP header bad (catchall error)——坏的IP首部(包括各种差错)
121Required options missing——缺少必需的选项
130Timestamp request (obsolete)——时间戳请求(作废不用)
14Timestamp reply (obsolete)——时间戳应答(作废不用)
150Information request (obsolete)——信息请求(作废不用)
160Information reply (obsolete)——信息应答(作废不用)
170Address mask request——地址掩码请求
180Address mask reply——地址掩码应答

4、ICMP协议抓包分析

Wireshark开启抓包,cmd 执行 ping 192.168.2.1 -n 1,ping一次我的网关。

在这里插入图片描述

Wireshark 过滤 icmp,第一个是ICMP请求包,第二个是ICMP响应包。

在这里插入图片描述

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

  • Type=8Code=0,表示这是一个回显请求Echo (ping) request
    在这里插入图片描述
  • Checksum Status = Good,表示校验状态是良好的,报文无误
    在这里插入图片描述

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

  • Type=0Code=0,表示这是一个回显应答Echo (ping) Reply
    在这里插入图片描述
  • Response time只出现ICMP响应包,Ping命令返回的响应时间,就是从这里获取的
    在这里插入图片描述
  • Data表示数据包的大小,Ping命令返回的字节,就是从这里获取的
    在这里插入图片描述

3)IdentifierSequence number 这四个字段用来对应请求和响应的关系。

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

在这里插入图片描述

日常使用,主要看TypeCode 这两个字段,知道ICMP的报文类型即可。

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

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

相关文章

[C/C++]数据结构 链表OJ题: 反转链表

描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表 示例: 方法一: 让链表指向反向 如图所示: 代码思路: struct ListNode* reverseList(struct ListNode* head) {struct ListNode* n1NULL;struct ListNode* n2head;struct ListNode*…

Moco框架初探

一、简介 Moco是一个搭建模拟服务器的工具,其支持API和独立运行两种方式,前者通常在junit等测试框架中使用,后者则是通过运行一个jar包开启服务。 二、用途 主要用于实现mock技术 1、后端接口开发未完成情况下,通过moco模拟接…

猫头虎分享从Python到JavaScript传参数:多面手的数据传递术

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

网络数据包传感器简化流量监控

数据包捕获基于数据包镜像的概念,可用于深度数据包检查、测量应用程序的响应时间以及监视服务器、网络和用户行为,该技术还可用于对需要特定信息的某些区域进行广泛分析,尽管它有效,但并非在所有情况下都是必要的。要分析和管理流…

企业数字化转型与供应链效率-基准回归复刻(2007-2022年)

参照张树山(2023)的做法,本团队对来自统计与决策《企业数字化转型与供应链效率》一文中的基准回归部分进行复刻。文章实证检验企业数字化转型对供应链效率的影响。用年报词频衡量上市公司数字化转型程度,以库存周转天数来衡量供应…

mysql 全文检索 demo

mysql5.6.7之后开始支持中文全文检索一直没用过,这次试试。 创建表 CREATE TABLE articles (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,title VARCHAR (200),body TEXT,FULLTEXT (title, body) WITH PARSER ngram ) ENGINE INNODB DEFAULT CHARSETut…

Docker学习——④

文章目录 1、Docker Image(镜像)2、镜像命令详解2.1 docker rmi2.2 docker save2.3 docker load2.4 docker image inspect2.5 docker history2.6 docker image prune 3、镜像综合实战3.1 离线镜像迁移3.2 镜像存储的压缩与共享 1、Docker Image&#xff…

你知道在游戏开发中怎么将算法与其作用的对象隔离开来吗?

点击上方亿元程序员关注和★星标 引言 你可能知道的设计模式-访问者模式 大家好,今天我们要来聊一聊在游戏开发中非常实用的设计模式——访问者模式。访问者模式是一种将算法与对象结构分离的软件设计模式,它可以让代码更加灵活、可扩展,同…

那些年遇到过的问题与解决方案

目录 一、当我们想进行数据回显并且只是让用户查看信息不能编辑时,置灰处理 二、多选框初始化加载问题 三、时间处理 获取当前年月日 时间自定义格式化 时间脱敏处理,去掉秒 四、input输入框处理 input输入框设定为只能输入0与正整数 刚进页面…

UE4 Niagara Module Script 初次使用笔记

这里可以创建一个Niagara模块脚本 创建出来长这样 点击号,输出staticmesh,点击它 这样就可以拿到对应的一些模型信息 这里的RandomnTriCoord是模型的坐标信息 根据坐标信息拿到位置信息 最后的Position也是通过Map Set的号,选择Particles的P…

数据库实验:SQL的数据视图

目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一…

安科瑞出席2023湖南智能建筑电气高峰论坛-安科瑞 蒋静

10月27日,安科瑞电气股份有限公司受邀出席在湖南长沙召开的2023湖南智慧建筑电气高峰论坛。会议主题是“安全、健康、智慧、创新”,现场汇集湖南省设计院、施工单位、高等院校和企业代表等300余人参会。 湖南省建筑设计院集团股份有限公司机电院总工、正…

原文远知行COO张力加盟逐际动力 自动驾驶进入视觉时代?

11月7日,通用足式机器人公司逐际动力LimX Dynamics官宣了两位核心成员的加入。原文远知行COO张力出任逐际动力联合创始人兼COO,香港大学长聘副教授潘佳博士为逐际动力首席科学家。 根据介绍,两位核心成员的加入,证明一家以技术驱…

Flink SQL Regular Join 、Interval Join、Temporal Join、Lookup Join 详解

Flink ⽀持⾮常多的数据 Join ⽅式,主要包括以下三种: 动态表(流)与动态表(流)的 Join动态表(流)与外部维表(⽐如 Redis)的 Join动态表字段的列转⾏&#xf…

低代码开发,节约成本更好的选择

目录 低代码开发过程中是如何工作的? 低代码开发具备哪些功能? 具备的功能有: 01、高性能、高拓展 02、功能丰富,满足通用场景 03、私有化部署 04、代码生成器,下载代码进行二次开发 05、适配国产化,支持主…

黄金走势分析:美元反弹,金价已失守1980关口

昨晚美元和美债收益率反弹回升,现货黄金震荡下行,美市尾盘金价失守1980美元关口,最低至1977.22美元/盎司,最终收跌0.72%,报收1977.69美元/盎司。在汉声集团分析师张新才发稿前,今日(周二&#x…

JavaSE 再续篇-面试题:this 与 super 关键字的区别

🔥博客主页: 小扳_-CSDN博客 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 this 与 super 关键字的区别 1.1 在Java中,this 关键字有以下作用 1.2 在Java中,super 关键字有以下作用 2.0 经典习题 1.0 this 与 su…

一种以RGB颜色登录的密码实现

当用户点击了某些密码之后,就可以登录成功,主要用于安全码,辅助安全手段。 颜色密码虽然不方便用键盘输入,只能用鼠标点击,但是容易记忆,也不容易被黑客攻陷。

工程(十四)——ubuntu20.04 PL-VINS

博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。这是一个科研互助群,主要围绕机器人,无人驾驶,无人机方面的感知定位,决策规划,以及论文发表经验,以方便大家很好很快的科研…

MySQL的备份恢复

数据备份的重要性 1.生产环境中,数据的安全至关重要 任何数据的丢失都会导致非常严重的后果。 2.数据为什么会丢失 :程序操作,运算错误,磁盘故障,不可预期的事件(地震,海啸)&#x…