3.9 网际控制报文协议ICMP

news2024/12/17 9:38:43

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅!

文章目录

  • 前言
  • 1 ICMP报文的封装
  • 2 ICMP差错报告报文的类型
  • 3 不应发送ICMP差错报告报文的情况
  • 4 常用的ICMP询问报文类型
  • 5 ICMP的应用


前言

网际控制报文协议(ICMP) 是Internet协议套件中的一个重要组成部分,工作在网络层(Layer 3)。它的主要功能是通过发送控制报文来报告网络状态或出现的差错,从而提高IP数据报的传输效率和稳定性。本章将详细讲解ICMP的作用、封装方式、报文类型、使用场景以及其在网络中的应用。

1 ICMP报文的封装

ICMP报文并不直接在网络上传输,而是作为IP数据报的一部分进行封装

当一个设备(如路由器或主机)需要发送ICMP报文时,它将ICMP报文封装在一个IP数据报中通过网络进行传输。

因此,ICMP实际上是运行在IP协议之上的一种控制协议,它的报文格式包括ICMP报文头部和数据部分,后者通常包含了发生差错的原始IP数据报的一部分。

ICMP的作用:

  • 提高IP数据报转发效率

  • 发送差错报告和询问报文

2 ICMP差错报告报文的类型

ICMP支持多种差错报告类型,以下是一些常见的差错报告报文:

①终点不可达(Destination Unreachable)
当网络中某一节点无法将数据包传递到目标主机时,ICMP会发送目标不可达报文。此类报文可以由路由器或主机生成,可能的原因包括目标主机不存在、路由不可达等。
在这里插入图片描述

②源点抑制(Source Quench)
当网络设备(如路由器)由于网络拥塞无法及时处理接收到的数据包时,会通过ICMP发送源点抑制报文,要求源主机减少数据包的发送速率。这种机制帮助缓解网络拥塞,优化流量控制。
在这里插入图片描述
在这里插入图片描述

③时间超过(Time Exceeded)
ICMP的时间超时报文在数据包的生存时间(TTL)达到零时被发送。当IP数据报在网络中转发时,每经过一个路由器,TTL值会减1。如果TTL值减至0,数据包就会被丢弃,并由发送方收到ICMP的时间超时报文。该报文有助于诊断网络中数据包停留过久的原因。
在这里插入图片描述

④参数问题(Parameter Problem)
如果路由器或主机接收到的IP数据报首部格式错误,例如某个字段的值不合法或缺失,ICMP会发送参数问题报文。这有助于确认数据包格式错误并及时解决。
在这里插入图片描述

⑤重定向(Redirect)
当路由器检测到主机使用了非最优路径时,会向主机发送重定向报文,建议使用更优的路由。这样可以使网络中的路由更加高效,避免流量走非最佳路径。

  • 在这里插入图片描述
    在这里插入图片描述

3 不应发送ICMP差错报告报文的情况

为了避免ICMP报文的无效传递和冗余反馈,存在一些特殊情况,不应发送ICMP差错报告报文:

①不对ICMP差错报文产生新的ICMP差错报文
如果某一ICMP差错报文本身出现错误,不会再生成新的ICMP差错报文,以避免形成无限循环。例如,当路由器收到ICMP差错报文时,它不会再向源主机发送新的ICMP差错报文。

②不对第一个分片的后续分片发送ICMP差错报文
在IP数据报进行分片后,如果第一个分片发生错误,则后续分片不需要再发送差错报文。这是因为第一个分片的丢失或错误通常意味着整个数据报都无法被正确接收。

③不对多播地址的数据报发送ICMP差错报告
对于多播地址发送的数据包,由于其通信方式的特殊性,ICMP不会对其进行差错报告。这是为了避免多播通信中的冗余反馈。

④不对特殊地址(如127.0.0.0或0.0.0.0)的数据报发送差错报告
127.0.0.0是环回地址(Loopback Address),0.0.0.0是默认路由地址,它们在网络中有特定的用途,不需要针对这些地址的ICMP差错报告。

4 常用的ICMP询问报文类型

除了差错报告,ICMP还支持询问报文,常见的ICMP询问报文有以下几种:

①回送请求和回送应答(Echo Request and Echo Reply)
回送请求和回送应答报文用于测试主机之间的连通性

通过ping命令,源主机向目标主机发送回送请求,目标主机收到后返回回送应答。这个机制通常用于检查网络的可达性、延迟等。

②时间戳请求和时间戳应答(Timestamp Request and Timestamp Reply)
时间戳请求和应答用于获取其他主机的当前时间,常用于时钟同步等操作。源主机发送时间戳请求报文,目标主机响应时间戳应答报文,包含其当前时间。

5 ICMP的应用

①网络故障诊断
使用ping命令发送ICMP回送请求报文,可以检查主机或路由器是否可达。如果ping命令返回应答,就意味着目标设备可以成功接收到数据包。否则,可能存在网络中断、路由配置问题或设备故障。

②路径追踪(Traceroute)
Traceroute工具利用ICMP的时间超时报文来追踪数据包的传输路径。通过逐步减小TTL值并跟踪每个路由器的回应,Traceroute可以显示数据包经过的所有路由节点,从而帮助管理员定位网络瓶颈和故障点。
在这里插入图片描述
在这里插入图片描述
以此类推……

③流量控制与网络优化
ICMP的源点抑制功能有助于控制数据流量,避免网络拥塞。路由器根据网络负载情况向源主机发送源点抑制报文,从而降低发送速率,优化网络性能。

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

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

相关文章

东北大学《2024年839自动控制原理真题》 (完整版)

本文内容,全部选自自动化考研联盟的:《东北大学839自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2024年真题 Part1:2024年完整版真题 2024年真题

百度智能云千帆AppBuilder升级,百度AI搜索组件上线,RAG支持无限容量向量存储!

百度智能云千帆 AppBuilder 发版升级! 进一步降低开发门槛,落地大模型到应用的最后一公里。在千帆 AppBuilder 最新升级的 V1.1版本中,企业级 RAG 和 Agent 能力再度提升,同时组件生态与应用集成分发更加优化。 • 企业级 RAG&am…

就业相关(硕士)

一、嵌入式 1.机器人行业 1.1 大致情况 要做机器人行业,主要技术栈是运动控制、深度学习、强化学习、具身智能等,主要求职方向有运动控制算法工程师和机器人算法工程师等等。大致薪资在30w到50w不等,主要看方向(双211&#xff…

Selenium操作指南

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 大家好,今天带大家一起系统的学习下模拟浏览器运行库Selenium,它是一个用于Web自动化测试及爬虫应用的重要工具。 Selenium测试直接运行在…

OpenCV相机标定与3D重建(11)用于在图像上绘制世界坐标系的三条轴函数drawFrameAxes()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 从姿态估计绘制世界/物体坐标系的轴。 cv::drawFrameAxes 是 OpenCV 库中的一个函数,用于在图像上绘制世界坐标系的三条轴&#xff0…

spring学习(XML中定义与配置bean(超详细)。IoC与DI入门spring案例)

目录 一、配置文件(XML)中定义与配置bean。 (1)bean的基础配置。(id、class) (2)bean的别名配置。 1、基本介绍。 2、demo测试。 3、NoSuchBeanDefinitionException! (3)…

Docker容器编排与Docker Compose

1. Docker Compose介绍与基础概念 Docker Compose是一个用于定义和运行多容器Docker应用的工具。通过Compose,用户可以用YAML文件来定义多个容器的服务、网络、存储等配置,并通过一个命令来启动、停止和管理这些容器。它简化了多容器应用的管理&#xf…

鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现

鸿蒙项目云捐助第七讲鸿蒙App应用的首页推荐模块布局的实现 最后设置首页的推荐模块,参考模板如下图所示。 一、首页热门推荐模块的实现 对于热门推荐模块,先有上面的小标题栏,这里的标题栏也有一个小图标,首先从“百度图库”中…

MySQL八股-MVCC入门

文章目录 当前读(加锁)快照读(不加锁)MVCC隐藏字段undo-log版本链A. 第一步B.第二步C. 第三步 readview MVCC原理分析RCA. 先来看第一次快照读具体的读取过程:B. 再来看第二次快照读具体的读取过程: RR隔离级别 当前读…

基于单片机的无绳跳绳设计

基于单片机设计了一款无绳跳绳,采用传感器代替了绳子的摆动,从而实现了模拟跳绳的功能。其研究的方法是:以单片机作为这次设计的核心,它的外围包含有传感器模块、按键模块、显示模块、语音播报模块及电源模块等。本设计采用STM32芯…

【图像处理】利用numpy实现直方图均衡、自适应直方图均衡、对比度受限自适应直方图均衡

直方图均衡化是一种在图像处理技术,通过调整图像的直方图来增强图像的对比度。 本博客不利用opencv库,仅利用numpy、matplotlib来实现直方图均衡、自适应直方图均衡、对比度受限自适应直方图均衡 直方图均衡 包括四个流程 计算图像RGB三通道的归一化直…

Azure Function流式返回

最近用azure function做了一个api和llm交互,需要流式返回。但是默认不支持流返回,搜索了一下。记录。 官方文档:https://techcommunity.microsoft.com/blog/azurecompute/azure-functions-support-for-http-streams-in-python-is-now-in-prev…

【软件工程】简答题系列(一)(山东大学·软院考试专属)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀软件开发必练内功_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…

WebGIS城市停水及影响范围可视化实践

目录 前言 一、相关信息介绍 1、停水信息的来源 2、停水包含的相关信息 二、功能简介 1、基础小区的整理 2、停水计划的管理 三、WebGIS空间可视化 1、使用到的组件 2、停水计划的展示 3、影响小区的展示 4、实际效果 四、总结 前言 城市停水,一个看似…

数据结构,链表的简单使用

任意位置删除&#xff1a; void Any_Del(LinkListPtr h,int a)//任意删 {if(NULLh||a>h->len){printf("删除失败");}LinkListPtr ph;for(int i0;i<a-1;i){pp->next;}LinkListPtr p2p;p2p2->next;p->nextp->next->next;free(p2);p2NULL;h-&g…

组织空转数据(人类+小鼠)

空间转录组&#xff08;Spatial Transcriptomics&#xff09;是一种新兴的高通量基因组学技术&#xff0c;它允许我们在组织切片中同时获取基因表达信息和细胞的空间位置信息。其可以帮助我们更好地理解细胞在组织中的空间分布和相互作用&#xff0c;揭示组织发育、器官功能和疾…

人工智能增强的音频和聊天协作服务

论文标题&#xff1a;AI-enabled Audio and Chat Collaboration Services 中文标题&#xff1a;人工智能增强的音频和聊天协作服务 作者信息&#xff1a; Emil P. Andersen, Norwegian Defence Research Establishment (FFI), Kjeller, NorwayJesper R. Goksr, Sindre E. Ha…

【操作系统1】一篇文章便可入门操作系统

操作系统 (Operating System,OS)是一种系统软件&#xff0c;它负责管理计算机的硬件和软件资源。它的主要任务是组织和调度计算机的工作&#xff0c;并分配资源给用户和其他软件。操作系统为用户和软件提供了方便的接口和环境。它是计算机系统中最基本的软件之一。 一、操作系…

51c嵌入式~单片机~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、STM32代码远程升级之IAP编程 IAP是什么 有时项目上需要远程升级单片机程序&#xff0c;此时需要接触到IAP编程。 IAP即为In Application Programming&#xff0c;解释为在应用中编程&#xff0c;用户自己的…

ComfyUI 与 Stable Diffusion WebUI 的优缺点比较

ComfyUI与Stable Diffusion WebUI都是AI绘画领域比较知名两款产品&#xff0c;两者存在诸多差异&#xff0c;本篇就带你熟悉二者的优劣&#xff0c;方便自己做出决策。 界面与操作 ComfyUI&#xff1a;界面简洁直观&#xff0c;通过节点和连线的方式构建工作流&#xff0c;用…