【网络层】ICMP 因特网控制协议
文章目录
- ICMP 含义以及作用
- ICMP协议解析
- 结合ICMP协议和ping常见问题
ICMP 含义以及作用
ICMP:Internet control massage protocol 因特网控制协议
Internet控制报文协议ICMP是网络层的一个重要协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,
它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。
ICMP协议解析
使用ping、tracert等命令调用ICMP协议

ICMP的类型:echo request 回响请求; echo reply 回响应答
在电脑命令行使用ping命令:ping 域名/IP

默认会ping 4下,正常会有4个回复。现在使用Wireshark抓包看下:

如上图抓包情况来看,是有4组(request/reply)。现在对比下request包(图一)和reply包(图二):


在ICMP中有两个很重要的字段Type和Code

Type表示ICMP消息类型。
Code表示同一消息类型中的不同信息。(在例子中 request :Type/Code为8/0;reply :Type/Code为0/0)
Data是一串随机序列。
Type/Code组合有以下几种:
| 类型 | 编码 | 描述 |
|---|---|---|
| 0 | 0 | Echo Reply |
| 3 | 0 | 网络不可达 |
| 3 | 1 | 主机不可达 |
| 3 | 2 | 协议不可达 |
| 3 | 3 | 端口不可达 |
| 5 | 0 | 重定向 |
| 8 | 0 | Echo Request |
结合ICMP协议和ping常见问题
第一、无法访问 【 未获取到MAC地址,导致无法进行ICMP封装】

环境:192.168.80.123设备不在线
在链路中数据是以帧的形式传输的,封装ICMP时,由于在MAC表中没有找到这个IP对应的MAC地址,因此会先发出ARP请求获取这个IP的MAC地址。抓包数据可以看出发出ARP请求后没有设备进行回应,因此显示信息中只能来自自己的回复:无法访问目标主机。
这种情况在ARP阶段就失败了,无法封装并发出ICMP数据
第二、超时 【 对方主机不在线、屏蔽 (不在线-有对方MAC地址缓存,对方可能关机,平并-对方开启了策略“如防火墙”)】

环境:ping 其他网段的ip地址(对方主机不在线)
这种情况和上面的设备不在线,区别在于这个设备之前已经通过ARP获取到MAC地址(在MAC地址缓存表中存在MAC地址),封装ICMP将数据发出去,但迟迟没有得到回应。这例子中1.2.3.4为检测到是其他网段的,所以在封装ICMP的时候目标MAC为本地设备网关的MAC地址。
环境:对端设备开防火墙或者禁用ping操作
现象:ping 对端设备ip地址失败,但是对端ping 本地设备是通的(屏蔽)
这种情况也是会显示“请求超时”。本地设备同样也是会发出ICMP数据,由于对端设备开启了防火墙或者禁用ping操作,因此不会有任何的回应发出。
相关文章:
【网络层】ICMP 因特网控制协议
文章目录 ICMP 含义以及作用ICMP协议解析结合ICMP协议和ping常见问题 ICMP 含义以及作用 ICMP:Internet control massage protocol 因特网控制协议 Internet控制报文协议ICMP是网络层的一个重要协议。 ICMP协议用来在网络设备间传递各种差错和控制信息,…...
汇编原理(四)[BX]和loop指令
loop:循环 误区:在编译器里写代码和在debug里写代码是不一样的,此时,对于编译器来说,就需要用到[bx] [bx]: [bx]同样表示一个内存单元,他的偏移地址在bx中,比如下面的指令 move bx, 0 move ax,…...
Linux查看设备信息命令
dmidecode | grep Product Name 查看grub版本号:rpm -qa | grep -i "grub" 客户端操作系统版本: cat /etc/issue cat /etc/redhat-release 处理器品牌及型号: less /proc/cpuinfo |grep model...
transformer的特点
Transformers是一种用于处理序列数据的神经网络架构,最初由Vaswani等人在2017年提出,主要用于自然语言处理任务。与传统的循环神经网络(RNN)和卷积神经网络(CNN)不同,Transformers采用了一种全新…...
27快28了,想转行JAVA或者大数据,还来得及吗?
转行到JAVA或者大数据领域,27岁快28岁的年龄完全来得及。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我在后台发给你。…...
英飞凌 AURIX TriCore 单片机开发入门
文章目录 目的硬件准备AURIX™ Development StudioInfineon MemtoolAURIX™ iLLD Drivers总结 目的 英飞凌的32位 AURIX™ TriCore™ 系列单片机 经常用于汽车和工业领域。开发该系列单片机比较常用的开发环境有 HighTec 和 AURIX™ Development Studio 。本文将基于后者&…...
Centos安装,window、ubuntus双系统基础上安装Centos安装
文章目录 前言一、准备工作二、开始安装1、2、首先选择DATE&TIME2、选择最小安装3、 选择安装位置 总结 前言 因工作需要,我需要在工控机上额外装Centos7系统,不过我是装在机械硬盘上了不知道对性能是否有影响,若有影响,后面…...
2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷6(容器云)
#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…...
第13章 常用类
一、包装类 二、String String的常用方法: equals:判断内容是否相等,区分大小写。 String str1 "hello";String str2 "Hello";System.out.println(str1.equals(str2));//false equalsIgnoreCase:判断内容…...
15.数组的方法(改变原数组和不改变原数组)
改变原数组 (1)pop 语法:数组名.pop() 作用:删除数组最后一项 返回值:返回被删除的那一项 var arr=["zhangsna","lisi","wanger","mazi"] var res=arr.pop() console.log(arr) //[zhangsna, lisi, wange…...
随后记: uniapp uview u-dropdown 下拉菜单固定高度滑动不生效
使用u-dropdown 下拉组件 按照uview官网讲解使用 配置根本不生效 scroll-y"true" style"height: 200rpx;" 但是在下拉的时候,不能上下滑动 ,原因是自带的遮罩层挡住了 解决办法:在下拉菜单打开和关闭的时候,…...
一文梭哈动态代理
大家好,这里是教授.F 引入: 先看一个生活化的例子,如果一个明星他会唱歌,会跳舞。但是自己太忙了,没时间去宣传自己和去找工作,所以他需要有人帮他代理。然后呢这个代理者也需要知道他会什么,什…...
如何查询Windows 10电脑的IP地址
如何查询Windows 10电脑的IP地址 引言 在Windows 10操作系统中,查询电脑的IP地址是一项基本而重要的任务,无论是为了配置网络、解决连接问题,还是进行远程访问。 基础知识 IP地址:互联网协议地址,用于标识网络中的…...
java: 警告: 源发行版 8 需要目标发行版 8
前言 该文章中项目背景是:IDEA与设置的版本与实际电脑配置的不一致。也就是说只改了这个团队项目的JDK版本,IDEA上其它项目JDK版本未更改。 提示: IDEA警告:javaX:警告:源发行版 需要目标发行版 简略步…...
CCF-CSP认证 2023年12月 2.因子化简
题解: 通过质数筛法,用个板子函数就行了,计算出质数系数就行了 #pragma GCC optimize(2, 3, "Ofast", "inline") #include <bits/stdc.h> #define endl \n using namespace std; long long int num; const int M…...
基于Vue2与3版本的Element UI与Element Plus入门
基于Vue2与3版本的Element UI与Element Plus入门 Element UI 入门安装引入 Element UI使用组件 Element Plus 入门安装引入 Element Plus使用组件 常用组件自定义主题兼容性和升级社区和支持 Element UI 入门 Element UI 是基于 Vue 2.0 的桌面端组件库,它提供了一…...
Mysql数据库创建自增序列
创建序列表 CREATE TABLE sequence (name varchar(50) NOT NULL,current_value bigint(30) NOT NULL,increment int(11) NOT NULL DEFAULT 1 ) ENGINEInnoDB DEFAULT CHARSETutf8 ROW_FORMATDYNAMIC COMMENT序列表;创建函数 查询当前序列名的序列值 CREATE DEFINERroot% FUNC…...
macOS上用Qt creator编译并跑shotcut
1 简介 Shotcut是一个开源的跨平台的视频编辑软件,支持WIN/MACOS/LINUX等平台,由于该项目的编译较为麻烦,踩坑几许,因此写此文章记录完整编译构建过程,后续按此法编译,可减少走弯路,提高生产力。…...
基于高光谱数据集的创新点实现-高斯核函数卷积神经网络
一、高光谱数据集简介 1.1 数据集简介 数据集链接在这:高光谱数据集(.mat.csv)-科研学术 数据集包含下面三个文件: 文件中包含.mat与.csv,145x145x220, 其实主要使用avirissub.csv文件,在代码上只是将mat文件转成了csv文件。具体avirissub.csv如下&am…...
【python 进阶】 绘图
1. 将多个柱状绘制在一个图中 import seaborn as sns import matplotlib.pyplot as plt import numpy as np import pandas as pd# 创建示例数据 categories [A, B, C, D, E] values1 np.random.randint(1, 10, sizelen(categories)) values2 np.random.randint(1, 10, siz…...
提升vue开发效率的秘诀,快马平台一键生成通用组件库
最近在重构公司的中后台管理系统时,发现很多重复性的工作占用了大量开发时间。经过实践总结,我发现通过合理封装通用组件和工具集,可以显著提升Vue3项目的开发效率。今天就来分享下我的实战经验。 通用表格组件的封装 这个组件基于Element Pl…...
BNO055传感器IIC地址冲突?手把手教你修改PS引脚配置
BNO055传感器I2C地址冲突解决方案:PS引脚配置实战指南 在机器人、无人机等需要多传感器协同工作的项目中,BNO055作为一款高性能9轴惯性测量单元(IMU)被广泛使用。但当多个BNO055传感器通过I2C总线连接时,默认地址冲突问题常常让开发者头疼不已…...
从DCM到NII:医学影像数据处理中,为什么我劝你放弃保存回DCM格式?
从DCM到NII:医学影像数据处理中格式选择的深度实践指南 医学影像数据处理的流程中,文件格式的选择往往被忽视,却直接影响着后续分析的效率与兼容性。许多研究者习惯性地将处理后的数据保存回DCM格式,殊不知这可能在后续流程中埋下…...
终极Koikatu HF Patch配置指南:游戏体验全面升级方案
终极Koikatu HF Patch配置指南:游戏体验全面升级方案 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch Koikatu HF Patch作为非官方增强…...
TOAST UI Chart折线图实战:实时数据更新与同步工具提示完整指南
TOAST UI Chart折线图实战:实时数据更新与同步工具提示完整指南 【免费下载链接】tui.chart 🍞📊 Beautiful chart for data visualization. 项目地址: https://gitcode.com/gh_mirrors/tu/tui.chart TOAST UI Chart是一款功能强大的数…...
Gitee:中国DevOps生态的数字化转型引擎
本土化创新重塑开发者体验在中国数字经济蓬勃发展的背景下,Gitee作为国产代码托管平台的代表,正在重新定义中国开发者的工作方式。不同于国际平台在中国市场的适应性局限,Gitee通过深度理解本土开发者的工作习惯和业务场景,构建了…...
揭秘100.64.0.0/10:运营商级NAT如何重塑IPv4网络格局
1. 100.64.0.0/10:这个神秘IP段到底是什么? 第一次在路由器后台看到100.64.0.1这个IP时,我整个人都懵了——这既不是常见的192.168局域网地址,也不是公网IP。就像发现自家门牌号突然变成了酒店房间号,这种违和感促使我…...
开源工具Cursor Free VIP:突破AI编程限制的高效使用指南
开源工具Cursor Free VIP:突破AI编程限制的高效使用指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your t…...
FanControl:重新定义你的散热管理体验
FanControl:重新定义你的散热管理体验 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanControl.Rel…...
手把手教你用Strongswan App通过IKEv2 EAP认证连接Freeradius(附调试技巧)
移动端安全连接实战:Strongswan与Freeradius的IKEv2 EAP认证深度配置指南 在移动办公日益普及的今天,企业级VPN解决方案需要兼顾安全性与易用性。Strongswan作为开源的IPsec实现,配合Freeradius进行EAP认证,能够为Android设备提供…...
