ICMP报文格式和种类

ICMP协议 ICMP(Internet Control Message Protocol)Internet控制协议,ICMP报文由以下字段组成,如何用于网络诊断和错误报告(字段取值及含义)主要看前两个字段——type和code?故障检测工具 阅读详情

关键字: icmp

--------------------------------格式-------------------------------------

各种ICMP报文的前32bits都是三个长度固定的字段:type类型字段(8位)、code代码字段(8位)、checksum校验和字段(16位)

8bits类型和8bits代码字段:一起决定了ICMP报文的类型。常见的有:
  
  类型8、代码0:回射请求。
  
  类型0、代码0:回射应答。
  
  类型11、代码0:超时。
  
  16bits校验和字段:包括数据在内的整个ICMP数据包的校验和,其计算方法和IP头部校验和的计算方法是一样的。

下图是一张ICMP回射请求和应答报文头部格式

ICMP回射请求和应答报文头部格式

对于ICMP回射请求和应答报文来说,接下来是16bits标识符字段:用于标识本ICMP进程。
  
最后是16bits序列号字段:用于判断回射应答数据报。

 

ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面

一个ICMP报文包括IP头部(20字节)、ICMP头部(8字节)和ICMP报文

IP头部的Protocol值为1就说明这是一个ICMP报文

ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式

此外还有代码(Code)域用于详细说明某种ICMP报文的类型

所有数据都在ICMP头部后面。RFC定义了13种ICMP报文格式,具体如下:

 

类型代码 类型描述

0 响应应答(ECHO-REPLY)

3 不可到达

4 源抑制

5 重定向

8 响应请求(ECHO-REQUEST)

11 超时

12 参数失灵

13 时间戳请求

14 时间戳应答

15 信息请求(*已作废)

16 信息应答(*已作废)

17 地址掩码请求

18 地址掩码应答

其中代码为15、16的信息报文已经作废。

下面是几种常见的ICMP报文:

1.响应请求

我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个节点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败),则目标返回Type=0的ICMP报文,说明这台主机存在,更详细的tracert通过计算ICMP报文通过的节点来确定主机与目标之间的网络距离。

2.目标不可到达、源抑制和超时报文

这三种报文的格式是一样的,目标不可到达报文(Type=3)在路由器或主机不能传递数据报时使用,例如我们要连接对方一个不存在的系统端口(端口号小于1024)时,将返回Type=3、Code=3的ICMP报文,它要告诉我们:“嘿,别连接了,我不在家的!”,常见的不可到达类型还有网络不可到达(Code=0)、主机不可到达(Code=1)、协议不可到达(Code=2)等。源抑制则充当一个控制流量的角色,它通知主机减少数据报流量,由于ICMP没有恢复传输的报文,所以只要停止该报文,主机就会逐渐恢复传输速率。最后,无连接方式网络的问题就是数据报会丢失,或者长时间在网络游荡而找不到目标,或者拥塞导致主机在规定时间内无法重组数据报分段,这时就要触发ICMP超时报文的产生。超时报文的代码域有两种取值:Code=0表示传输超时,Code=1表示重组分段超时。

3.时间戳

时间戳请求报文(Type=13)和时间戳应答报文(Type=14)用于测试两台主机之间数据报来回一次的传输时间。传输时,主机填充原始时间戳,接收方收到请求后填充接收时间戳后以Type=14的报文格式返回,发送方计算这个时间差。一些系统不响应这种报文。

--------------------------------种类------------------------------------

ICMP报文格式

ICMP虽然是网络层的协议,但要将ICMP报文放入IP中发送。

ICMP报文的公共头标由1字节的类型(type)、1字节的
代码(code)和2字节的校验和(checksum)组成。
类型域和代码域用来标识各种ICMP报文。类型域表示ICMP报文的类型,目前已定义了14
种,从类型值来看ICMP报文可分为二大类。

第1 类是取值为1~127的差错报文,

第2类是取值128以上的是信息(informational)报文。


1不能到达信宿(Destination Unreachable)差错报文
2分组过大(Packet Too Big)差错报文
3超时(Time Exceeded)差错报文
4参数问题(Parameter Problem)差错报文
128返回请求(Echo Request)报文
129返回应答(Echo Reply)报文
130组成员查询(Group Membership Query)
131组成员报告(Group Membership Report)
132组成员结束(Group Membership Termination)
133路由器请求(Router Solicitation)
134路由器公告(Router Advertisement)
135邻机请求(Neighbor Solicitation)
136邻机公告(Neighbor Advertisement)
137 重定向(Redirect)

ICMP协议详解 icmp图文详解,感兴趣的同学,请花5分钟时间弄懂icmp协议。 阅读详情

相关推荐

TCP/IP详解--ICMP报文分析

一.概述: 1.   ICMP允许主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。 2.   ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。 3.   ICMP报文的种类有两种,即ICMP差错报告报文

鱼思故渊的专栏 3801

icmp类型

ICMP类型这是一个完整的ICMP类型的列表:Table C-1. ICMP类型TYPECODEDescriptionQueryError00Echo Reply——回显应答(Ping应答)x 30Network Unreachable——网络不可达 x31Host Unreachabl

3959

实验七 ICMP 协议分析实验

实验七 ICMP 协议分析实验 1.ICMP 协议介绍 ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议。ICMP允许路由器或主机报告差错情况和提供有关信息,用以调试、监视网络。 (1)ICMP 的报文格式 图1 ICMP 回送请求和应答报文格式 在网络中,ICMP 报文将封装在IP数据报中进行传输。由于ICMP的报文类型很多,且又有各自的代码,因此,ICMP并没有一

Sum 1万+

ICMP报文的格式和种类

--------------------------------格式-------------------------------------    各种ICMP报文的前32bits都是三个长度固定的字段:type类型字段(8位...

cuanyan3685的博客 1348

安卓开发者必看:Win11最新Fastboot驱动安装避坑指南(含Android Bootloader Interface选择技巧)

本文为安卓开发者提供了Windows 11系统下Fastboot驱动安装的详细指南,特别针对Android Bootloader Interface选择技巧和多设备并发连接时的驱动冲突问题。通过解析Windows 11的特殊驱动验证机制,推荐使用Google官方USB驱动,并提供安装流程、版本选择建议及疑难问题排查方法,帮助开发者高效完成开发环境配置。

sea99的博客 1332

ubuntu18.04安装R——无法连接上 dl.google.com:80 (6.6.6.6),连接超时&&E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

安装R的时候,sudo apt update 的时候出现错误: 查资料要修改/etc/apt/sources.list.d/google-chrome.list 文件 原来是: deb http://dl.google.com/linux/chrome/deb/ stable main 改为: deb [arch=amd64] http://dl.google.com/linux/chrom...

许希律的博客 4350

ICMP协议类型0和8区别

ICMP协议类型 0和8的区别 ​ 0:回显应答,表示回显自己对别人的请求 ​ 8:回显请求,表示回显别人对自己的请求 下面用防火墙和ping命令来演示 iptables -F iptables -P INPUT DROP #设置默认INPUT链规则为全部拒绝 iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #放行icmp协议类型8 此时会发现 自己无法ping通其他人,而其他人可以ping通自己 因为我们设置的拒绝所有,其他主机

weixin_47677347的博客 9017

uni-app一键登录实战:从云函数配置到前端调用的完整指南

本文详细介绍了uni-app中一键登录功能的实现方法,从DCloud控制台配置到云函数开发,再到前端调用全流程。通过一键登录,用户无需输入账号密码即可快速使用本机手机号登录,显著提升用户体验和登录转化率。文章还提供了常见问题排查和安全合规要点,帮助开发者高效完成集成。

weixin_29291573的博客 446

ICMP报文协议(转自优快云 tigerjb博客)

tigerjb博客)" alt="ICMP报文协议(转自优快云 tigerjb博客)" src="http://s11.sinaimg.cn/middle/9e16dc4d4bb93ec046cfa&690"> 一.概述: 1. ICMP允许主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(T

TAXUEc750的专栏 3505

AgentScope Java 入门:Spring AI Alibaba 与 AgentScope 的定位与区别

摘要:Spring AI Alibaba是阿里基于Spring AI开发的本地化AI应用框架,旨在服务Java开发者。它提供模型接入、函数调用、RAG等功能,并与阿里云基础设施深度集成。同时,阿里开源了多智能体框架AgentScope,其Java版(AgentScope-Java)专注于Agentic设计理念。两者将协同发展:Spring AI Alibaba侧重Spring生态集成,AgentScope-Java强化智能体能力。未来计划包括支持AgentScope、升级Admin平台,以及推进Server

SmartSi 1534

【3D Slicer】的小白入门使用指南一

3D Slicer 是一个免费的开源软件平台,用于医学、生物医学和其他 3D 图像的可视化、处理、分割、配准和分析。Slicer 的功能包括:读/写。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 5555

理解ICMP协议其实不难

1.ICMP简介 ICMP:网际控制报文协议 ICMP协议与IP协议同属于网络层,ICMP报文是封装在IP数据报中传送的,所以不保证可靠提交 ICMP报文通常被IP层或更高层协议(TCP或UDP)使用,一些ICMP报文把差错报文返回给用户。 ICMP报文格式: 类型字段可以有15个不同值,以描述特定类型的ICMP报文。某些ICMP报文还使用代码字段的值来进一步描述不同的条件。 检验和字段覆盖整个ICMP报文 2.ICMP报文种类 ICMP报文种类有两种:ICMP差错报告报文和ICMP询问报文。 几种常用的

qq_41185807的博客 436

HX711重量传感器原理图设计,已量产(压力传感器)

最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。

不脱发的程序猿 368

网络层 网际控制报文协议 ICMP

网际控制报文协议 ICMPICMP的报文格式ICMP的报文种类ICMP差错报文(四种)不应发送 ICMP 差错报告报文的几种情况ICMP询问报文(两种)ICMP 的应用举例PING (Packet InterNet Groper) 的应用举例Traceroute 的应用举例 为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (InternetControl Message Protocol)。 ICMP 是互联网的标准协议。 ICMP 允许主机或路由器报告差错情

是小D吖!的博客 438

保研考研机试攻略:第一章——从零开始

🧊保研考研机试攻略:第一章——从零开始

qq_63349644的博客 1321

PHP实现SM2算法(附完整源码)

PHP实现SM2算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 4025

ICMP and it’s ApplicationsICMP and it’s Applications

ICMP and it’s Applications 图1.Ip Header 和Icmp Header图2.ICMP Subnet Request packet formatICMP PacketSimilar to TCP and UDP, ICMP uses a specific packet format to identify information in t

glumtree的专栏 663

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TCPIP之常用协议(ARP、ICMP)

硬件类型:1(以太网)协议类型:0x0800(IP)硬件地址长度:6(MAC地址长度)协议地址长度:4(IP地址长度)操作:1(ARP请求,二层封装广播,目的MAC为FFFF-FFFF-FFFF);2(ARP应答,二层封装单播)因为 MAC地址占48位,6个字节,所以报文中的硬件地址需要多行才能写全。

2301_76702662的博客 245

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ICMP报文分析

一.概述: 1.   ICMP允许主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。 2.   ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。 3.   ICMP报文的种类有两种,即

wangpengqi的专栏 1446

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ICMP 协议

一、什么是ICMP协议? ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 ICMP使用IP的基本支持,就像它是一个更高级别...

xxx0028的博客 5417

ICMP报文格式解析

ICMP报文的格式类型总共分为三大类: 1、差错报文 2、控制报文 3、查询报文 上图是ICMP报文的基本格式,上面提到的三种ICMP报文均有“类型,代码和校验和”三个字段,后面还有4个字节是根据不同的报文类型而有不同的格式,有的是全0,有的则有其他的特殊格式。但是ICMP始终有8个字节的头部长度。其中类型字段代表着不同的报文类型,而代码字段指明了某个类型的报文中细分出的该报文的指定的功能。即一个类型的报文拥有着多种功能。 同时还需要注意的是ICMP差错报文的数据部分存储的是IP头部和IP头.

qq_47529104的博客 1万+

ICMP报文格式详解

ICMP(Internet Control Message Protocol)是一种网络层协议,用于在IP网络中传递控制信息和错误消息。 错误报告: ICMP主要用于在网络中传递错误报告。例如,当一个主机试图向另一个主机发送数据包,但目标主机不可达时,目标主机可能会发送一个ICMP错误消息,通知源主机发生了错误。

sinat_53184817的博客 5738

ICMP详解

ICMP(Internet Control Message Protocol)网际控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。 ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的...

顺其自然~专栏 1万+

arp icmp 等报文格式

ARP是一个独立的三层协议,所以ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议(如以太网协议)进行封装。ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。ARP报文不是直接在网络层上发送的,它还是需要向下传输到数据链路层,以以太网为例,ARP报文传输到以太网数据链路层后会形成ARP帧。ARP帧如下图所示,他就是在ARP报文前面加了一个以太网帧头。

u013434525的博客 2324

分析ICMP报文

目录 捕获准备: ICMP的相关知识: 报文分析: 捕获准备: 启动wireshark录制数据包,打开命令行窗口输入pingwww.sina.com.cn。 Wireshark已记录下报文,在过滤器输入 ip.addr == 120.192.83.125过滤报文。 ICMP的相关知识: ICMP是(Internet Control Message ...

但行好事,莫问前程 1万+
上一篇: VC实现驱动程序的开发和编译的完整步骤
下一篇: ::符的使用
codestinity
博客等级 码龄16年 29粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值