当前位置: 首页 > news >正文

你了解网络层的 ICMP 吗?

你了解网络层的 ICMP 吗?

    • 一. 什么是 ICMP
    • 二. ICMP 的工作原理
    • 三. ICMP 的结构
    • 四. ICMP 的常见应用
    • 五. ICMP 的局限性与安全性
    • 六. 总结

前言

这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
作者:神的孩子都在歌唱

一. 什么是 ICMP

ICMP(Internet Control Message Protocol,互联网控制消息协议) 是网络层的一个重要协议,用于在计算机网络中传递控制消息。它是 IP协议 的一部分,主要用于网络设备之间传递错误消息、诊断信息和网络状态,帮助网络管理员和设备了解网络运行情况。

ICMP 的基本功能是对网络通信中的问题进行报告,例如目标不可达、超时等。最常见的应用是 Ping 命令,它利用 ICMP 协议来测试主机之间的连通性。

ICMP报文封装在IP数据报内部

image-20241218234117010

二. ICMP 的工作原理

ICMP 主要通过发送 控制消息 来实现其功能。这些消息可以是以下两类之一:

  1. 错误报告消息:用于报告网络中出现的问题或错误。
  2. 查询消息:用于请求网络状态信息或进行诊断。

ICMP 消息通常由 IP 层产生,并由目的地的主机或路由器响应。

ICMP 错误消息类型

  1. 目的不可达(Destination Unreachable)
    当数据包无法到达目标主机或网络时,路由器或目标主机会发送此消息。它的代码字段指示错误的具体原因,如网络不可达、主机不可达、端口不可达等。

  2. 超时(Time Exceeded)
    当数据包在网络中循环超过了最大传输时间(TTL,Time to Live)时,网络设备(通常是路由器)会返回此消息。TTL 是用来防止数据包在网络中无限循环的。

  3. 源抑制(Source Quench)
    当路由器或主机认为数据发送速率过快,可能导致网络拥堵时,它会返回此消息,要求发送方降低数据发送速度。此消息已经逐渐不常使用。

  4. 参数问题(Parameter Problem)
    当 IP 数据包的头部存在错误时,ICMP 会返回此错误消息,告知发送方数据包格式错误或其他问题。

ICMP 查询消息类型

  1. 回显请求与回显应答(Echo Request and Echo Reply)
    这类消息用于诊断工具,如 Ping。Ping 命令通过向目标主机发送 Echo Request 消息,然后等待目标主机返回 Echo Reply 消息,从而测试主机间的连通性。

  2. 时间戳请求与时间戳应答(Timestamp Request and Timestamp Reply)
    用于网络设备间同步时间戳,通常用于诊断时延和同步问题。

  3. 信息请求与信息应答(Information Request and Information Reply)
    用于查询目标设备的信息。

三. ICMP 的结构

ICMP 消息的格式非常简单,主要由以下几部分组成:

  • 类型(Type):定义消息的类型(如回显请求、目的不可达等)。
  • 代码(Code):进一步细化消息类型,提供具体的错误或状态信息。
  • 校验和(Checksum):用于检测ICMP消息在传输过程中是否发生了错误。
  • 标识符(Identifier):通常用于匹配请求和响应消息,特别是在回显请求/响应中。
  • 序列号(Sequence Number):用于标识发送的消息序列,通常用于 Ping 的应答匹配。

四. ICMP 的常见应用

  1. Ping
    Ping 是利用 ICMP 的 Echo RequestEcho Reply 消息来检测网络连通性的工具。当你在命令行中输入 ping 命令时,它会向目标主机发送一个 ICMP Echo 请求,目标主机响应 Echo 回复。如果目标主机可达,你会看到延迟和其他网络信息。

  2. Traceroute
    Traceroute 是另一个基于 ICMP 的工具,用于诊断数据包从源主机到目标主机经过的路由。Traceroute 通过发送 ICMP 超时(Time Exceeded)消息来逐步揭示路由路径,从而帮助用户识别网络瓶颈或故障。

  3. 网络故障排查
    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个分区&#xf…...

旅游创业,千益畅行,开启新的旅游模式!

在当今旅游市场蓬勃发展的时代,旅游卡项目如一颗新星闪耀登场,而千益畅行旅游卡服务更是其中的佼佼者,为广大旅游爱好者带来了全新的旅游体验与机遇。 一、旅游卡项目是如何运作的呢? 千益畅行旅游卡服务的运作模式犹如一部精心…...

集成自然语言理解服务,让应用 “听得懂人话”

如今,应用程序智能化已成趋势,开发者想要实现智能化,那么首先需要赋予应用理解自然语言的能力,使其能够准确地听懂人话,进而响应用户需求,并提供一系列智能化服务。比如用户语音控制应用程序帮忙订票&#…...

利用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)&#xf…...

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…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

二维FDTD算法仿真

二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...

本地部署drawDB结合内网穿透技术实现数据库远程管控方案

文章目录 前言1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 前言 在数字化浪潮席卷全球的背景下,数据治理能力正日益成为构建现代企业核心竞争力的关键因素。无论是全球500强企业的数据中枢系统,还是初创…...

Ansible+Zabbix-agent2快速实现对多主机监控

ansible Ansible 是一款开源的自动化工具,用于配置管理(Configuration Management)、应用部署(Application Deployment)、任务自动化(Task Automation)和编排(Orchestration&#xf…...

SAP学习笔记 - 开发24 - 前端Fiori开发 Filtering(过滤器),Sorting and Grouping(排序和分组)

上一章讲了SAP Fiori开发的表达式绑定,自定义格式化等内容。 SAP学习笔记 - 开发23 - 前端Fiori开发 Expression Binding(表达式绑定),Custom Formatters(自定义格式化)-CSDN博客 本章继续讲SAP Fiori开发…...