网络层:网际控制报文协议ICMP

news2024/11/17 7:30:20

网络层:网际控制报文协议ICMP

笔记来源:
湖科大教书匠:网际控制报文协议ICMP

声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考

主机或路由器使用ICMP来发送差错报告报文询问报文
ICMP报文被封装在IP数据报中发送

1.1 ICMP差错报告报文

ICMP差错报告报文有五种类型

1.1.1 终点不可达

当路由器或主机不能交付数据报时,就向源点发送终点不可达报文(通俗理解:发不过去别发了)

1.1.2 源点抑制

当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢(通俗理解:这有点挤慢点发)

1.1.3 时间超过

当路由器收到一个目的IP地址不是自己的IP数据报,会将其生存时间TTL字段的值减1。
情况一:IP数据报在路由器中发生的时间超过
IP数据报 -> 路由器(IP数据报目的地址不是自己,TTL-1)
T T L ≠ 0 TTL\neq0 TTL=0,则将该IP数据报转发出去;
T T L = 0 TTL=0 TTL=0,丢弃该IP数据报,还要向源点发送时间超过报文。
(通俗理解:我(IP数据报)的寿命到了,现通知你(源点))

情况二:IP数据报在终点主机中发生的时间超过
当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过报文。
(通俗理解:超过规定时间了,我(终点主机)你的数据还没都发过来,我都丢了,现通知你(源点))

1.1.4 参数问题

当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文。
(通俗理解:你这数据传错了吧,我(终点/路由器)把这些数据丢了,现通知你(源点))

1.1.5 改变路由(重定向)

路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)
(通俗理解:路由要改变啦,现通知你(源点))

1.2 ICMP询问报文

ICMP询问报文有两种类型

1.2.1 回送请求和回答

ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。
(主机/路由器 -> 询问 -> 目的主机)
收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
(源主机/路由器 <- 回答报文 <- 目的主机)

功能:这种询问报文用来测试目的站是否可达及了解其有关状态。

1.2.2 时间戳请求和回答

ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。
在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒

功能:这种询问报文用来进行时钟同步和测量时间。

1.3 ICMP应用

1.3.1 分组网间探测(Packet InterNet Groper,ping)

用来测试主机或路由器间的连通性
应用层直接使用网际层的ICMP(没有通过运输层的TCP或UDP)
使用ICMP回送请求和回答报文

1.3.2 跟踪路由(Traceroute)

用来测试IP数据报从源主机到达目的主机要经过哪些路由器
Window版本:tracert命令
应用层直接使用网际层ICMP
使用了ICMP回送请求和回答报文以及差错报告报文

Unix版本:traceroute命令
在运输层使用UDP协议
仅使用ICMP差错报告报文


如何知道经过哪些路由器?
源主机将IP数据报的 T T L TTL TTL的值设置为1,源主机发送封装有ICMP回送请求的第一个数据报
T T L = 0 TTL=0 TTL=0 时路由器会给源点发送ICMP超时报文,这时源点就知道刚刚IP数据报经过了这个发送超时报文的路由器


源主机将IP数据报的 T T L TTL TTL的值设置为2,源主机发送封装有ICMP回送请求的第二个数据报


数据报经过第一个路由器后 T T L = 1 TTL=1 TTL=1

数据报到达第二个路由器时 T T L = 0 TTL=0 TTL=0
T T L = 0 TTL=0 TTL=0 时路由器会给源点发送ICMP超时报文,这时源点就知道刚刚的这个IP数据报经过了这个发送超时报文的路由器

源主机将IP数据报的 T T L TTL TTL的值设置为3,源主机发送封装有ICMP回送请求的第三个数据报,剩下的情况如上类似

每次发送一个封装有ICMP回送请求的IP数据报,每次发送时更改TTL的值
第一次:发送封装有ICMP回送请求的第一个IP数据报,TTL=1,收到报文时就知道经过的第一个经过的路由器
第二次:再发送封装有ICMP回送请求的第二个IP数据报,TTL=2,收到报文时就知道经过的第二个经过的路由器,依次类推

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

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

相关文章

合宙Air724UG Cat.1模块硬件设计指南--I2C接口

I2C接口 简介 I2C总线&#xff08;Inter&#xff0d;Integrated Circuit&#xff09;是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。 特性 支持 Fast mode &#xff08;400Kbps&#xff09;和 Slow mode&…

探索人工智能在自动化测试中的应用

自动化测试技术从最初的模拟硬件方式&#xff0c;到基于数据驱动&#xff0c;基于关键字驱动&#xff0c;再到现在基于功能和指令驱动的自动化测试技术&#xff0c;在各类软件项目中的应用也越来越多&#xff0c;越来越成熟。自动 背景 自动化测试技术从最初的模拟硬件方式&a…

MATLAB | 如何使用MATLAB获取顶刊《Nature》全部绘图(附带近3年全部图像)

我出了如何使用MATLAB获取期刊《Cell》全部绘图&#xff0c;立马就有粉丝问《Nature》、《Sience》、《PNAS》啥的会不会安排&#xff0c;这期就给大家安排《Nature》全部绘图获取&#xff0c;之后其他期刊也会慢慢安排&#xff0c;但是不会一次性全出完(毕竟不能抓住一个主题就…

【第三次】21级计科计算机组成原理课外练习

【第三次】21级计科计算机组成原理课外练习 一、单选题二、填空题三、程序填空题 一、单选题 2-1假设变量x的位数为n&#xff08;n>8&#xff09;&#xff0c;x的最低有效字节不变&#xff0c;其余各位全变为0&#xff0c;则对应C语言表达式为。 A.x | ~ 0xFF B.x ^ 0xFF C…

css基础四:说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?

一、背景 在css中我们通常使用px作为单位&#xff0c;在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉&#xff0c;我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此&#xff0c;css中的像素只是一个抽象的单位&#xff0c;在不同…

循环码生成矩阵与监督 (校验) 矩阵

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 循环码生成多项式与…

详解七层反向代理与四层反向代理【Nginx+Tomcat负载均衡、动静分离】

文章目录 1. 反向代理和正向代理概述2.七层反向代理实例2.1 实验环境描述2.2 部署Nginx负载均衡器2.3 部署2台Tomcat应用服务器2.3.1 部署CentOS 7-5 Tomcat服务器2.3.2 部署CentOS 7-6 Tomcat多实例服务器 3.四层反向代理实例3.1 实验环境描述3.2 部署Nginx负载均衡器&#xf…

2023年护网常见面试题汇总!看过的都通过面试啦!

​时间过得很快&#xff0c;回想起去年的这个时候&#xff0c;我也正在准备秋招&#xff0c;今天的我刚刚结束培训。 我的个人情况就读于某双非大学&#xff0c;信息与计算科学&#xff08;大数据方向&#xff0c;校企合作&#xff0c;一个介于数学与计算机之间的专业&#xf…

JVM调优参数+Visual GC 插件安装及使用,jvm分析

调优的目的是什么呢&#xff1f; 1.就是让系统更加的丝滑&#xff0c;让用户体验变得更好。 2.提升系统的性能&#xff0c;提高效率&#xff0c;充分利用jvm内存。 更多参考->JVM常用调优参数 一.JVM参数配置位置 1.java.lang.OutOfMemoryError: Java heap space 解决方…

微信小程序开发之获取用户头像昵称

本文是对另一篇文档 https://blog.csdn.net/duke_ding2/article/details/130674320 的补充。 环境 微信开发者工具 Stable 1.06.2306020调试基础库 2.32.2 背景 在较低版本&#xff08;2.27.0及以下&#xff09;的基础库中&#xff0c;在小程序里可以使用 wx.getUserProfil…

PostgreSQL BTree(B-Link-tree) 索引 基本 实现原理

文章目录 背景BTreeBTreeB-Link-Tree 基本数据结构的插入实现BTree Insert 实现BTree Insert 实现 PostgreSQL BTree实现整体结构BTree 索引创建实现_bt_buildadd_bt_uppershutdown BTree 查询 _bt_search 实现BTree 插入 _bt_doinsert 实现_bt_split 节点分裂_bt_insert_paren…

flyway在Windows下安装及基本使用

文章目录 1. flyway中的SQL脚本命名2. flyway执行SQL脚本演示3. flyway中设置 ${CURRENT_DATE} 为当前时间的值 Flyway是一个开源的数据库迁移工具&#xff0c;用于管理和自动化数据库架构的演进。它允许开发人员和团队对数据库进行版本控制&#xff0c;并通过简单的命令行或脚…

【数据库与身份认证】课程笔记

目标&#xff1a; 知道如何配置MySQL数据库环境认识并使用常见的SQL语句操作数据库在Express中操作MySQL数据库了解Session的实现原理了解JWT的实现原理 目录&#xff1a; 数据库的基本概念安装并配置MySQLMySQL的基本使用在Express中操作MySQL前后端的身份认证 一. 数据库的…

美团一面:OOM后,JVM一定会退出吗?为什么?

说在前面 在40岁老架构师 尼恩的读者社区(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如美团、拼多多、极兔、有赞、希音的面试资格&#xff0c;遇到一几个很重要的面试题&#xff1a; OOM后&#xff0c;JVM一定会退出吗&#xff1f;为什么&#xff1f; 生产环境&am…

MIT 6.S081 (BOOK-RISCV-REV1)教材第四章内容 -- 上

MIT 6.S081 教材第四章内容 -- 上 引言陷阱指令和系统调用RISC-V陷入机制代码&#xff1a;调用系统调用从用户空间陷入系统调用参数补充 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第四章教材内容翻译加整理。 本课程前置知识主要涉及: C语言(建议阅读C程序语言设计…

Django基础入门⑤:模板变量和标签的使用

Django基础入门④&#xff1a;数据表显示和Django模板详讲 模板变量使用模板变量模板标签if标签for标签forloop变量forloop.revcounter 示例forloop.first 和 forloop.last 示例forloop.parentloop 示例 &#x1f3d8;️&#x1f3d8;️个人简介&#xff1a;以山河作礼。 &…

Liunx开发工具:git和gdb

目录 一. git的功能和使用 1.1 git的功能 1.2 git三板斧 1.3 git使用中的其他问题 二. 使用gdb调试代码 2.1 生成带有调试信息的可执行程序 2.2 gdb调试代码的方法 一. git的功能和使用 1.1 git的功能 git是一块开源、免费的版本管理系统&#xff0c;能够高效敏捷地处…

【人工智能】— 神经网络、前向传播、反向传播、梯度下降、局部最小值、多层前馈网络、缓解过拟合的策略

【人工智能】— 神经网络、前向传播、反向传播 前向传播反向传播梯度下降局部最小值多层前馈网络表示能力多层前馈网络局限缓解过拟合的策略 前向传播和反向传播都是神经网络训练中常用的重要算法。 前向传播是指将输入数据从输入层开始经过一系列的权重矩阵和激活函数的计算后…

计算机网络408大题(2009-2019)

必备结构 TCP报文段结构 IP数据报结构 2009年 考察点&#xff1a;子网划分、路由表、路由聚合 2010年 考察点&#xff1a;CSMA/CD协议的相关计算 2011年 考察点&#xff1a;以太网帧格式、IP分组格式、IP地址和MAC地址、ARP协议、HTTP/1.1持续的非流水方式 在转发过程中&am…

Jupyter中使用Pyecharts绘制地图

背景&#xff1a;根据各省频率绘制地图 根据各省频率绘制地图&#xff0c;可以使用 Pyecharts 绘制。下面是详细的步骤&#xff1a; 1、安装 Pyecharts&#xff1a;可以通过 !pip install pyecharts 命令安装。 2、导入相关库 import pandas as pd from pyecharts import o…