以太网ICMP协议(九)

目录

一、概述

二、ICMP消息类型

2.1 ICMP类型0和类型8:Ping功能

2.2 ICMP类型3:目标不可达

2.3 ICMP类型5:重定向

2.4 ICMP类型11:超时

三、报文格式


一、概述

        由于IP协议是不可靠的通信协议,需要有其他协议的辅助进行网络上的问题诊断,由此引入了ICMP协议。

        ICMP的主要功能包括,确认IP包是否成功送达目标地址,通知在发送过程当中IP包被废弃的具体原因,改善网络设置等。

        ICMP的消息大致可以分为两类:

    • 一类是通知出错原因的错误消息
    • 另一类是用于诊断的查询消息

二、ICMP消息类型

类型(十进制数)

内容

0

回送应答,ping功能使用

3

目标不可达

4

原点抑制

5

重定向或改变路由

8

会送请求,ping功能使用

9

路由器公告

10

路由器请求

11

超时

17

地址子网请求

18

地址子网应答

2.1 ICMP类型0和类型8:Ping功能

        用于进行通信的主机或路由器之间,判断所发送的数据包是否已经 成功到达对端的一种消息。常用的ping命令就是利用这个消息实现的。

        ping的过程如下图:

2.2 ICMP类型3:目标不可达

        IP路由器无法将IP数据包发送给目标地址时,会给发送端主机返回一个目标不可达的ICMP消息,并在这个消息中显示不可达的具体原因。

        其细分类型如下:

2.3 ICMP类型5:重定向

        如果路由器发现发送端主机使用了次优的路径发送数据,那么它会 返回一个ICMP重定向的消息给这个主机。通知主机最优的路由信息和源数据。

2.4 ICMP类型11:超时

        IP包中有一个字段叫做TTL(Time To Live,生存周期),它的值随着每经过一次路由器就会减1,直到减到0时该IP包会被丢弃。当IP报文被舍弃的时候,IP路由器将会发送一个ICMP超时的消息给发送端主机以通信该报已被舍弃。

        备注:TTL是为了预防IP报文在路由控制出问题的时候被无止境的转发,有时也会被设置为一个较小的值用于控制包的到达范围。

三、报文格式

(1)类型:ICMP消息类型大约有10多种,常用的类型有,8 = Echo Request(ping请求),0 = Echo Reply(ping应答),13 = 时间戳请求,14 = 时间戳应答;3 = 目标不可达

(2)代码:ICMP消息类型下得进一步细分,用于进一步分析错误的原因,代码值不同对应错误也不同

(3)校验和:对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JMeter 4.x 简单使用

文章目录 前言JMeter 4.x 简单使用1. 启动2. 设置成中文3. 接口测试3.1. 设置线程组3.2. HTTP信息请求头管理器3.3. 添加HTTP请求默认值3.4. 添加HTTP cookie 管理3.5. 添加http请求3.5.1. 添加断言 3.6. 添加监听器-查看结果树3.7. 添加监听器-聚合报告 4. 测试 前言 如果您觉…

gcc编译过程

源文件需要经过编译才能生成可执行文件。在 Windows 下进行开发时,只 需要点几个按钮即可编译,集成开发环境 ( 比如 Visual studio) 已经将各种编 译工具的使用封装好了。 Linux 下也有很优秀的集成开发工具,但是更多的时 候是直接使用…

C++ 指针函数和函数指针

除了void类型的函数之外,函数在调用结束之后都要有返回值,指针也可以是函数的返回值。当一个函数的返回值是指针类型时,这个函数就是指针型函数。 使用指针型函数的最主要目的就是要在函数结束时把大量的数据从被调函数返回到主调函数中。而通…

【MySQL】当前读和快照读

文章目录 当前读快照读 在学习 MVCC 多版本并发控制之前,必须先了解一下,什么是 MySQL InnoDB 下的 当前读和 快照读? 当前读 读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。对…

【动态网页抓取】 :用Python抓取所有内容的指南

一、说明 您在抓取动态网页内容时是否得到了糟糕的结果?不仅仅是你。对于标准抓取工具来说,爬网动态数据是一项具有挑战性的任务(至少可以说)。这是因为当发出HTTP请求时,响应程序的某些部分JavaScript在后台运行&…

Java转换流

文章目录 转换流的理解**InputStreamReader****OutputStreamWriter**练习 引入情况1: 使用FileReader 读取项目中的文本文件。由于IDEA设置中针对项目设置了UTF-8编码,当读取Windows系统中创建的文本文件时,如果Windows系统默认的是GBK编码&a…

437. 路径总和 III

题目描述: 主要思路: 方法一:递归 从每个节点开始一次递归 class Solution { public:int ans0;void dfs(TreeNode* now,int targetSum, long sum){if(!now)return;sumnow->val;if(sumtargetSum)ans1;dfs(now->left,targetSum,sum);df…

Mysql主从搭建 基于DOCKER

创建目录 #主节点目录 mkdir -p /home/data/master/mysql/#从节点目录 mkdir -p /home/data/slave/mysql/创建配置文件 # 主节点配置 touch /home/data/master/mysql/my.cnf# 从节点配置 touch /home/data/slave/mysql/my.cnf编辑配置文件 主节点配置文件 vim /home/data/m…

VR内容研发公司 | VR流感病毒实验虚拟现实课件

由广州华锐互动开发的《VR流感病毒实验虚拟现实课件》是一种新型的教学模式,可以为学生提供更加真实和直观的流感病毒分离鉴定实验操作体验,从而提高学生的实验技能和工作效率。 《VR流感病毒实验虚拟现实课件》涉及了生物安全二级实验室(BSL-2)和流感病…

高级web前端开发工程师岗位的具体内容概述(合集)

高级web前端开发工程师岗位的具体内容概述1 职责: 1、负责前端页面开发和维护,并根据需求优化产品性能、用户体验、交互效果及各种主流浏览器以及各类型移动客户端的兼容适配工作; 2、配合产品经理和UI设计师,通过各种前端技术手段&#xf…

AI编程工具Copilot与Codeium的实测对比

csdn原创谢绝转载 简介 现在没有AI编程工具,效率会打一个折扣,如果还没有,赶紧装起来. GitHub Copilot是OpenAi与github等共同开发的的AI辅助编程工具,基于ChatGPT驱动,功能强大,这个没人怀疑…

数学建模—分类模型

本讲将介绍分类模型。对于而分类模型,我们将介绍逻辑回归(logistic regression)和Fisher线性判别分析两种分类算法;对于多分类模型,我们将简单介绍Spss中的多分类线性判别分析和多分类逻辑回归的操作步骤下。 本题按水…