【计算机网络笔记】ICMP(互联网控制报文协议)

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)------速率、带宽、延迟
计算机网络性能(2)------时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层------多路复用和多路分用
传输层------UDP简介
传输层------可靠数据传输原理之Rdt协议
传输层------可靠数据传输之流水线机制与滑动窗口协议
传输层------TCP特点与段结构
传输层------TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层------拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能
网络层服务模型------虚电路网络
网络层服务模型------数据报网络
Internet网络的网络层------IP协议之IP数据报的结构
IP分片
IP编址与有类IP地址
IP子网划分与子网掩码
CIDR与路由聚合
DHCP协议
网络地址转换(NAT)



ICMP(互联网控制报文协议)

互联网控制报文协议 ICMP (Internet Control Message Protocol)支持主机或路由器完成差错(或异常)报告网络探询

ICMP协议通过发送特定的ICMP报文来实现这两种功能。所以有两大类ICMP报文:

  • 差错报告报文(5种)

    • 目的不可达报文。数据到达目的后无法成功交付给目的,比如目的网络、目的主机、目的端口等等。这时这个IP数据报会被丢弃,同时会向源主机发送目的不可达的ICMP报文
    • 源抑制(Source Quench) 报文。当一个路由器发现自身的缓存已满导致后面发来的数据被丢弃,就可以向源主机发送源抑制ICMP报文,目的是让源主机降低发送IP数据报的速度。这时最初的目的。但目前的互联网中并没有按照这种方式进行拥塞控制
    • 超时/超期报文。最常见的就是TTL超时。TTL为0时,该IP数据报会被丢弃
    • 参数问题报文。如果发现IP数据报有一些参数有问题,就会被丢弃
    • 重定向 (Redirect)报文。当路由器收到一个IP数据报,但这个数据报所要到达的目的网络不应该由这个路由器进行转发,而是另一个路由器,就发送重定向 (Redirect)报文
  • 网络探询报文(2组)。这类报文通常是由主机或路由器主动发送的

    • 回声(Echo)请求与应答报文(Reply)。验证能否成功到达目的。最具有代表性的工具就是ping这个工具
    • 时间戳请求与应答报文

ICMP报文是通过一个类型号和编码来给出具体的不同类型的报文。比如:

有一些例外情况:

  • 几种不发送 ICMP差错报告报文的特殊情况:

    • 对ICMP差错报告报文不再发送 ICMP差错报告报文
    • 除第1个IP数据报分片外,对所有后续分片均不发送ICMP差错报告报文
    • 对所有多播IP数据报均不发送 ICMP差错报告报文
    • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP数据报不发送 ICMP 差错报告报文
  • 几种 ICMP 报文已不再使用:

    • 信息请求与应答报文
    • 子网掩码请求和应答报文
    • 路由器询问和通告报文

ICMP报文封装到IP数据报中进行传输。ICMP报文也是由头部和数据部分构成的。

ICMP差错报告报文数据封装:

ICMP的应用举例:**Traceroute。**用于网络跟踪。

  • 源主机向目的主机发送一系列 UDP数据报。可以设置数据报的TTL。
    • 第1组IP数据报TTL =1
    • 第2组IP数据报TTL=2,以此类推
    • 目的端口号为不可能使用的端口号
  • 当第n组数据报(TTL=n)到达第 n个路由器时:
    • 路由器丢弃数据报
    • 向源主机发送ICMP报文 (type=11, code=0)
    • ICMP报文携带路由器名称和 IP地址信息
  • 当ICMP报文返回到源主机时, 记录RTT
  • 停止准则:
    • UDP数据报最终到达目的主机
    • 目的主机返回"目的端口不可 达"ICMP报文 (type=3, code=3)
    • 源主机停止
相关推荐
8Qi87 分钟前
Windows 系统Claude Code安装与使用笔记
windows·笔记·agent·claudecode
nnsix41 分钟前
Windows电脑 驱动 笔记
笔记
疯狂打码的少年44 分钟前
【程序语言与编译】程序设计语言分类(机器/汇编/高级)
汇编·笔记
liulilittle1 小时前
删除 Inflight Bounds:为什么 KCC 放弃了 BDP 钳位
linux·网络·tcp/ip·计算机网络·信息与通信·tcp·通信
旅僧1 小时前
机械臂学习笔记(更新中)
笔记·学习
qingwufeiyang_5301 小时前
Python学习笔记3-项目实战-AI应用
笔记·学习
智者知已应修善业2 小时前
【proteus 74160实现模60计数器模41计数器】2024-5-27
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
墨白曦煜2 小时前
算法实战笔记:空间换时间的黑魔法——单调栈全景解析(十一)
java·笔记·算法
问心无愧05132 小时前
ctf show web入门157 158
前端·笔记
闪闪发亮的小星星2 小时前
STK-03-通信卫星方向最常遇到的场景
笔记