计算机网络第四章笔记(四)

目录

一、核心定义

[二、ICMP 差错报告报文](#二、ICMP 差错报告报文)

[1. 四类差错报告](#1. 四类差错报告)

[2. 不应发送差错报告的情况](#2. 不应发送差错报告的情况)

[三、ICMP 询问报文](#三、ICMP 询问报文)

[四、ICMP 报文格式与封装](#四、ICMP 报文格式与封装)

[五、ICMP 典型应用](#五、ICMP 典型应用)

[1. PING(分组网间探测)](#1. PING(分组网间探测))

[2. 跟踪路由(tracert)](#2. 跟踪路由(tracert))


一、核心定义

ICMP 是 TCP/IP 体系结构网际层 的重要协议,用于主机或路由器之间传递差错报告报文 和询问报文,以辅助 IP 协议更好地工作。

二、ICMP 差错报告报文

1. 四类差错报告

  • 目的不可达:当路由器/主机无法交付 IP 数据报时触发,细分为目的网络、主机、协议、端口不可达等情况。

  • 时间超过(超时):

    • 路由器收到 TTL 减 1 后为 0 的数据报,丢弃并发送此报文。

    • 终点主机未在规定时间内收到所有分片,丢弃已收分片并发送此报文。

  • 参数问题:收到首部字段值错误的 IP 数据报时丢弃并发送此报文。

  • 改变路由(重定向):路由器发现主机选的下一跳并非最优时,通知主机改用更佳路由。

2. 不应发送差错报告的情况

  • 对 ICMP 差错报告报文自身出错,不发送。

  • 对 IP 数据报的非首个分片出错,不发送。

  • 对目的地址为 IP 广播/多播地址的数据报出错,不发送。

  • 对具有特殊地址(如 127.0.0.0(127.0.0.0)、0.0.0.0(0.0.0.0))的数据报出错,不发送。

三、ICMP 询问报文

  • 回送请求/回答 :用于测试目的站是否可达及状态,是 ping 命令的核心原理。

  • 时间戳请求/回答 :用于测量延迟和时钟偏差,返回从 1900 年 1 月 1 日到当前的秒数。

四、ICMP 报文格式与封装

  1. 格式:前 4 字节固定(类型、代码、检验和),数据部分依报文类型而定。

  2. 封装 :ICMP 报文作为 IP 数据报的数据载荷,封装在 IP 数据报中传输。

五、ICMP 典型应用

1. PING(分组网间探测)

  • 属于应用层程序,直接使用网际层的 ICMP,不依赖传输层。

  • 通过发送 ICMP 回送请求/回答报文,测试主机/路由器间的连通性。

2. 跟踪路由(tracert)

  • Windows 系统:发送 TTL 依次递增的 ICMP 回送请求报文,路由器收到 TTL 超时的报文后返回"时间超过"差错报告,从而追踪路径。

  • 最终目的站收到请求后,返回 ICMP 回送回答报文。

相关推荐
江屿风27 分钟前
【Plain Language Large Model】【从麦当劳点餐到Redis接入:MCP如何让AI工具集成变简单】流食般投喂
人工智能·redis·笔记·语言模型·llm·mcp
海绵宝宝转agent1 小时前
Leetcode二叉树算法个人理解
笔记·学习·算法·leetcode·深度优先
小oo呆1 小时前
【学习心得】MCP工具开发学习笔记
笔记·学习
2601_961146202 小时前
实验室用等离子表面处理设备处理汽车PP内饰件和PBT骨架的一点记录
笔记·汽车·设备
二十七日秋2 小时前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
星恒随风2 小时前
Linux Socket TCP编程(二):逐文件重构多进程、多线程与线程池服务器,深入fork、pthread_create、popen和std::bind
linux·服务器·笔记·学习·tcp/ip
hkNaruto3 小时前
【AI】深度学习、强化学习、深度强化学习基础概念笔记
人工智能·笔记·深度学习
无心水4 小时前
15、云原生架构设计理论与实践 核心考点与学习笔记
笔记·学习·云原生·架构师·软考·系统架构设计师·软考系统架构设计师
动词ing4 小时前
【学习笔记】51单片机 独立按键控制LED显示二进制
笔记·学习·51单片机
叼烟扛炮4 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip