你了解网络层的 ICMP 吗?
你了解网络层的 ICMP 吗?
- 一. 什么是 ICMP
- 二. ICMP 的工作原理
- 三. ICMP 的结构
- 四. ICMP 的常见应用
- 五. ICMP 的局限性与安全性
- 六. 总结
前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱
一. 什么是 ICMP
ICMP(Internet Control Message Protocol,互联网控制消息协议) 是网络层的一个重要协议,用于在计算机网络中传递控制消息。它是 IP协议 的一部分,主要用于网络设备之间传递错误消息、诊断信息和网络状态,帮助网络管理员和设备了解网络运行情况。
ICMP 的基本功能是对网络通信中的问题进行报告,例如目标不可达、超时等。最常见的应用是 Ping 命令,它利用 ICMP 协议来测试主机之间的连通性。
ICMP报文封装在IP数据报内部

二. ICMP 的工作原理
ICMP 主要通过发送 控制消息 来实现其功能。这些消息可以是以下两类之一:
- 错误报告消息:用于报告网络中出现的问题或错误。
- 查询消息:用于请求网络状态信息或进行诊断。
ICMP 消息通常由 IP 层产生,并由目的地的主机或路由器响应。
ICMP 错误消息类型:
-
目的不可达(Destination Unreachable)
当数据包无法到达目标主机或网络时,路由器或目标主机会发送此消息。它的代码字段指示错误的具体原因,如网络不可达、主机不可达、端口不可达等。 -
超时(Time Exceeded)
当数据包在网络中循环超过了最大传输时间(TTL,Time to Live)时,网络设备(通常是路由器)会返回此消息。TTL 是用来防止数据包在网络中无限循环的。 -
源抑制(Source Quench)
当路由器或主机认为数据发送速率过快,可能导致网络拥堵时,它会返回此消息,要求发送方降低数据发送速度。此消息已经逐渐不常使用。 -
参数问题(Parameter Problem)
当 IP 数据包的头部存在错误时,ICMP 会返回此错误消息,告知发送方数据包格式错误或其他问题。
ICMP 查询消息类型:
-
回显请求与回显应答(Echo Request and Echo Reply)
这类消息用于诊断工具,如 Ping。Ping 命令通过向目标主机发送 Echo Request 消息,然后等待目标主机返回 Echo Reply 消息,从而测试主机间的连通性。 -
时间戳请求与时间戳应答(Timestamp Request and Timestamp Reply)
用于网络设备间同步时间戳,通常用于诊断时延和同步问题。 -
信息请求与信息应答(Information Request and Information Reply)
用于查询目标设备的信息。
三. ICMP 的结构
ICMP 消息的格式非常简单,主要由以下几部分组成:
- 类型(Type):定义消息的类型(如回显请求、目的不可达等)。
- 代码(Code):进一步细化消息类型,提供具体的错误或状态信息。
- 校验和(Checksum):用于检测ICMP消息在传输过程中是否发生了错误。
- 标识符(Identifier):通常用于匹配请求和响应消息,特别是在回显请求/响应中。
- 序列号(Sequence Number):用于标识发送的消息序列,通常用于 Ping 的应答匹配。
四. ICMP 的常见应用
-
Ping
Ping 是利用 ICMP 的 Echo Request 和 Echo Reply 消息来检测网络连通性的工具。当你在命令行中输入ping命令时,它会向目标主机发送一个 ICMP Echo 请求,目标主机响应 Echo 回复。如果目标主机可达,你会看到延迟和其他网络信息。 -
Traceroute
Traceroute 是另一个基于 ICMP 的工具,用于诊断数据包从源主机到目标主机经过的路由。Traceroute 通过发送 ICMP 超时(Time Exceeded)消息来逐步揭示路由路径,从而帮助用户识别网络瓶颈或故障。 -
网络故障排查
ICMP 协议经常用于排查网络故障,尤其是在目标不可达、延迟等问题的诊断中。网络管理员通常通过 ICMP 消息了解网络状态,迅速定位问题所在。
五. ICMP 的局限性与安全性
虽然 ICMP 对于网络诊断非常有用,但它也存在一些潜在的安全风险:
- ICMP 洪水攻击(Ping Flood):通过大量发送 ICMP 请求,攻击者可以消耗目标系统的带宽和处理能力,导致拒绝服务(DoS)攻击。
- ICMP 重定向攻击:攻击者可能通过伪造 ICMP 重定向消息,将数据流量重定向到恶意主机,从而进行中间人攻击。
- ICMP 监控:ICMP 消息能够透露网络拓扑信息,这可能被攻击者用来收集网络信息,因此许多防火墙和路由器对 ICMP 流量有一定的限制。
六. 总结
ICMP 是网络层的一个重要协议,提供了网络故障诊断和报告功能。它用于错误报告、网络状态查询以及测试网络连通性等。ICMP 在工具如 Ping 和 Traceroute 中得到了广泛应用,是网络管理和故障排查的重要工具。然而,ICMP 也存在一些安全隐患,因此在网络管理中需要谨慎使用。
作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接。
相关文章:
你了解网络层的 ICMP 吗?
你了解网络层的 ICMP 吗? 一. 什么是 ICMP二. ICMP 的工作原理三. ICMP 的结构四. ICMP 的常见应用五. ICMP 的局限性与安全性六. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神…...
清理C盘小记
突然C盘就爆满了,想当初还是给他预留了120G的空间,感觉到现在也不够用了,担心出现死机的情况就赶紧进行了清理。有一说一,清理回收站是真的有用。 参考:C盘清理指南,清理出30G起,超详细总结&am…...
Excel中如何消除“长短款”
函数微调可以可以实施,简单且易于操作的气球🎈涨缩更妙。 (笔记模板由python脚本于2024年12月17日 06:19:13创建,本篇笔记适合用Excel操作数据的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Fre…...
超越 RAG 基础:AI 应用的高级策略
作者:来自 Elastic Elastic Platform Team 我们最近与 Cohere 举办的虚拟活动深入探讨了检索增强生成 (retrieval augmented generation - RAG) 的世界,重点讨论了在概念验证阶段之后构建 RAG 应用程序的关键注意事项。我们的演讲者是 Elastic 的首席解…...
[shader]【图形渲染】【unity】【游戏开发】 Shader数学基础2-认识点和矢量
在计算机图形学和Shader编程中,点和矢量是两种常见且基础的数学对象。它们在空间中的作用和性质是理解图形渲染的关键。本篇文章将深入探讨点(Point)和矢量(Vector)的定义、特性以及它们之间的关系。 1. 点(Point)的定义 在数学和计算机图形学中,**点(Point)**用于…...
微软开源Python Markdown转换工具
分享一个microsoft开源的Python工具——markitdown,轻松将各类文件转换为Markdown格式。 markitdown支持的文件格式 PDF(.pdf)PowerPoint(.pptx)Word(.docx)Excel(.xlsx)图片(支持EXIF元数据和OCR识别)音频(支持EXIF元数据和语音转录)HTML(包括对Wikipedia...
安装与配置MongoDB 6.0以支持远程连接
安装与配置MongoDB 6.0以支持远程连接 目录 安装curl工具下载并导入MongoDB 6.0 PGP密钥向APT导入MongoDB 6.0版软件包的资源链接安装MongoDB依赖libssl1.1安装MongoDB启动并检查MongoDB服务状态进入MongoDB Shell交互式执行环境设置MongoDB开机自启配置MongoDB允许远程连接 …...
零衍门户国际化:助力拓展全球视野
概述 零衍系统管理平台统一门户管理,支持门户看板灵活配置,同时提供场景化的门户模板,丰富的门户组件,可协助用户快速搭建企业专属门户。 随着零衍产品的不断成熟,国际化需求日益增多,客户期望零衍门户可…...
mysql免安装版配置教程
一、将压缩包解压至你想要放置的文件夹中,注意:绝对路径中要避免出现中文 二、在解压目录下新建my.ini文件,已经有的就直接覆盖 my.ini文件内容 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\tools\\mysql-8.1.0-win…...
kafka的处理的一些问题 消费延迟
kafka的处理的一些问题 消费者客户端不但没有背压而且内存充足,但产生的消费延迟越来越大在Kafka的Leader副本宕机时 消费者客户端不但没有背压而且内存充足,但产生的消费延迟越来越大 比如我们这个kakfa集群一共有3个Broker节点 TOp1有5个分区…...
旅游创业,千益畅行,开启新的旅游模式!
在当今旅游市场蓬勃发展的时代,旅游卡项目如一颗新星闪耀登场,而千益畅行旅游卡服务更是其中的佼佼者,为广大旅游爱好者带来了全新的旅游体验与机遇。 一、旅游卡项目是如何运作的呢? 千益畅行旅游卡服务的运作模式犹如一部精心…...
集成自然语言理解服务,让应用 “听得懂人话”
如今,应用程序智能化已成趋势,开发者想要实现智能化,那么首先需要赋予应用理解自然语言的能力,使其能够准确地听懂人话,进而响应用户需求,并提供一系列智能化服务。比如用户语音控制应用程序帮忙订票&#…...
利用notepad++删除特定关键字所在的行
1、按组合键Ctrl H,查找模式选择 ‘正则表达式’,不选 ‘.匹配新行’ 2、查找目标输入 : ^.*关键字.*\r\n (不保留空行) ^.*关键字.*$ (保留空行)3、替换为:(空) 配置界面参考下图: …...
[HNOI2002] 营业额统计 STL - set集合
文章目录 [HNOI2002] 营业额统计题目描述样例输入 #1样例输出 #1 提示题解相关知识点set [HNOI2002] 营业额统计 STL - set解题 题目描述 Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger 拿出…...
fastAPI接口(普通流式响应和大模型流式响应)
1. 流式输出和非流失输出: 大模型的流式输出(Streaming Output)和非流式输出(Non-streaming Output)是指在生成文本或其他输出时,如何将结果返回给用户或下游系统。 流式输出 (Streaming Output)…...
Linux系统安装node.js
一、node官网下载想要的node版本 https://nodejs.org/en/download/package-manager 二、将tar.xz文件解压 tar -xvf node-vxxx.tar.xz 三、改文件夹的名字,改成nodejs mv node-xxx nodejs 四、复制nodejs文件,并上传到linux 服务器 /usr/local 目录下…...
《解决两道有趣的编程问题:交替数字和与简单回文》
在编程的世界里,算法和逻辑的挑战无处不在。今天,我们将用 Python 来解决两道有趣的编程问题,分别是计算交替数字和以及生成简单回文。 一、交替数字和(Alternating Sum of Numbers) 1. 问题描述 给定一系列整数&am…...
2412d,d的8月会议
原文 总结 替换D的逃逸分析 Rikki说,他一个月前曾与Dennis讨论过简化D的逃逸分析,但没有结果.在BeerConf上,他再次提起了它,Dennis说他一直在考虑它. Rikki也与Walter谈过这件事,Walter曾说过DIP1000并没有完全如期工作,且有点太复杂了. 因此,Rikki想讨论按D逃逸分析方法替…...
WEB自动化测试(selenium工具)框架、面试题
一、什么是web自动化测试 让程序员代替人为去验证web项目功能的过程 二、什么web项目适合自动化测试 1)需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本&…...
前端自动化部署之ssh2和ssh2-sftp-client
ssh2-sftp-client 本身是一个专门用于处理 SFTP文件操作的库,它不直接提供执行远程命令的功能。但是可以通过它的底层依赖库 ssh2 实现执行命令的功能。 以下是实现方法和示例代码: 方法一:使用 ssh2 执行远程命令 ssh2 是 ssh2-sftp-client…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
