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

(考研湖科大教书匠计算机网络)第四章网络层-第八节:网际控制报文协议ICMP

  • 获取pdf:密码7281
  • 专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航

文章目录

  • 一:网际控制报文协议ICMP
    • (1)ICMP差错报告报文
      • A:终点不可达
      • B:源点抑制
      • C:时间超过
      • D:参数问题
      • E:改变路由
    • (2)ICMP查询报文
  • 二:ICMP应用举例
    • (1)分组网间探测PING
    • (2)跟踪路由

本节对应视频如下

  • 【计算机网络微课堂(有字幕无背景音乐版)】:网际控制报文协议ICMP

一:网际控制报文协议ICMP

网际控制报文协议ICMP:为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用了网际控制报文协议。主机或路由器使用ICMP来发送差错报告报文询问报文。ICMP报文被封装在IP数据报中发送

(1)ICMP差错报告报文

ICMP差错报告报文共有以下五种

  • 终点不可达
  • 源点抑制
  • 时间超过
  • 参数问题
  • 改变路由(重定向)

以下情况不应发送ICMP差错报告报文

  • 对ICMP差错报告报文不再发送ICMP差错报告报文
  • 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
  • 对具有多播地址的数据报都不发送ICMP差错报告报文
  • 对具有特殊地址(如127.0.0.00.0.0.0) 的数据报不发送ICMP差错报告报文

A:终点不可达

终点不可达:当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种错误

例如下图,假设主机H1给H2发送IP数据报,H1会将IP数据报发送给路由器R1,由R1帮其转发,若R1的路由表中没有网络N3的路由记录、默认路由以及主机H2的特定主机路由,则R1就不知道如何转发该数据报,只能将其丢弃,并向发送该数据报的源主机H1发送ICMP差错报文,其类型为终点不可达

在这里插入图片描述

B:源点抑制

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

例如下图,H1给H2发送IP数据报,当该数据报传输到路由器R2时,由于R2拥塞,所以R2根据自己的丢包策略丢弃了该数据报,并向发送该数据报的源主机H1发送ICMP差错报告报文,其类型为源点抑制

在这里插入图片描述

C:时间超过

时间超过:当路由器收到一个目的IP地址不是自己的IP数据报时,会将其生存时间TTL字段的值减1。若结果不为0,则将该IP数据报转发出去;若结果为0,除丢弃该IP数据报外,还要向源点发送时间超过报文。另外,当终点在预先规定的时间内不能收到- -个数据报的全部数据报片时,就把已收到的数据报片都丢弃,也会向源点发送时间超过报文

例如下图,某个生存时间等于2的IP数据报传输到了路由器R1,R1将其生存时间减1后结果为1,这表明该数据报的生存时间还未结束,R1将其转发出去;当该数据报传输到路由器R2后,R1将其生存时间减1后结果为0,这表明该数据报的生存时间结束了。R2丢弃该数据报, 并向发送该数据报的源主机H1发送ICMP差错报告报文,其类型为时间超过

在这里插入图片描述

D:参数问题

参数问题:当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段发现首部在传输过程中出现了误码,就丢弃该数据报,并向源点发送参数问题报文

例如下图是H1发送给H2的IP数据报,假设该数据报在传输过程中收到了干扰,其首部出现了误码,当该数据报传输到路由器R1后,R1检测出该数据报首部出错,于是丢弃该数据报,并向发送该数据报的源主机H1发送ICMP差错报告报文,其类型为参数问题

在这里插入图片描述

E:改变路由

改变路由:路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)

例如下图,假设我们给主机H1指定的默认网关是路由器R1,则H1要发往网络N2的IP数据报都会传输给R1,由其帮忙转发,当R1发现H1发往N2的数据报的最佳路由不应该经过R1而应该经过R4时,就用改变路由报文把这个情况告诉主机。于是H1就在自己的路由表中添加一个项目,到达N2应该经过路由器R4,而不是默认网关R1。之后H1要发往N2的IP数据报都会传输给R4

在这里插入图片描述

(2)ICMP查询报文

ICMP查询报文常见有以下两种

  • 回送请求和回答:ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达及了解其有关状态
  • 时间戳请求和回答:ICMP时间戳请求报文是请某个主机或路由器回答当前的日期和时间。在ICMP时间戳回答报文中有一个32位的字段,其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。这种询问报文用来进行时钟同步和测量时间

二:ICMP应用举例

(1)分组网间探测PING

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

如下图,使用ping命令测试某网站连通性

在这里插入图片描述

(2)跟踪路由

跟踪路由:用来测试IP数据报从源主机到达目的主机要经过哪些路由器

在这里插入图片描述

如下图,在Windows中使用tracert命令测试到达某主机需要经过哪些路由器

在这里插入图片描述

http://www.lryc.cn/news/10985.html

相关文章:

  • 华为OD机试 - GPU 调度 | 备考思路,刷题要点,答疑 【新解法】
  • 华为OD机试题 - 任务总执行时长(JavaScript)
  • 还在想假期去哪玩?直接做一个旅游攻略小程序
  • 十四、vue3项目如何使用three.js
  • python 向excel表中添加新的sheet页或者向旧sheet中写入数据
  • RPC-grpc实践
  • JavaEE——MyBatis配置文件的详细介绍
  • bwmarrin/snowflake生成ID重复问题排查记录
  • 操作系统题目收录(十)
  • IOS 自动化测试环境搭建
  • 系统设计原则
  • 推荐130个网站,非常实用,比涨工资都重要
  • 手机棋牌游戏开发的流程是怎样的?
  • 浅谈C++函数重载
  • 数据分析spss应急考试
  • Handler postDelayed的实现原理
  • 【数据结构】平衡二叉树
  • Minecraft服务端配置
  • yunUI组件库解析:图片上传与排序组件yImgPro
  • Java基础:回调函数
  • Springboot多环境配置
  • Java Number Math 类,超详细整理,适合新手入门
  • 俯瞰·明统系列·落霞与孤鹜齐飞、南征与北伐并举
  • Nodejs环境搭建和配置
  • MybatisPlus------条件构造器Wrapper以及QueryWrapper用法(七)
  • NetSuite Intercompany Framework 101
  • 限时活动|凭徽章领披萨大奖,玩转Moonbeam治理论坛
  • Golang中struct{}和struct{}{}的区别你知道吗?
  • 网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎
  • 基础篇—一文掌握css的边框属性