【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )

简介: 【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )

文章目录

一、ICMP 协议

二、ICMP 协议 简介

三、ICMP 五种差错报告报文

四、ICMP 差错报文形成

五、ICMP 差错报文 不发送 情形

六、ICMP 询问报文

七、ICMP 应用





一、ICMP 协议


网络层 协议 :


① IP 协议 : IP 协议是 网络层 核心协议 ;


② ARP 协议 : ARP 协议 是 网络层 与 数据链路层 之间的协议 , 通过 IP 地址查找 物理地址 ;


③ ICMP 和 IGMP 协议 : ICMP 和 IGMP 协议 是 网络层 与 传输层 之间的协议 ; 目的是更加有效的转发 IP 数据报 , 提高交付的成功率 ;






二、ICMP 协议 简介


ICMP 协议 简介 :


① ICMP 协议 全称 : 网际控制报文协议 ;


② ICMP 协议 功能 :


差错报告 : 对应 发送 差错报文 ;

网络探寻 : 对应 发送 探寻报文 ;

③ ICMP 报文 在 IP 数据报中位置 : ICMP 报文 属于 IP 数据报 的 数据部分 ;




ICMP 报文内容 : 其中的类型是 差错报文 / 探询报文 ;



image.png





三、ICMP 五种差错报告报文


ICMP 五种差错报告报文 :


① 终点不可达报文 : 路由器 / 主机 不能交付数据报时 , 就会向源点 发送 终点不可达报文 ;


② 源点抑制报文 : 路由器 / 主机 拥塞 , 丢弃 IP 数据报 , 向源点发送源点抑制报文 , 让源点降低发送速率 ;


③ 时间超过报文 :


生存周期为 0 00 : 路由器 生存周期 TTL = 0 00 时 , 丢弃该报文 , 同时向源点发送 时间超过报文 ;

分组丢失 : 终点 在预定时间内 没有收到 数据报的全部数据分组时 , 就会将已收到的数据分组全部丢弃 , 向源点发送时间超过报文 ;

④ 参数问题报文 : 路由器 / 主机 收到的 数据报 首部 字段由错误值 , 丢弃该数据报 , 向源点发送 参数问题报文 ;


⑤ 改变路由报文 : 路由器 将 改变路由报文 发送给主机 , 让主机下次将数据报发送给另外的路由器 ; 又称为 “重定向报文” ;






四、ICMP 差错报文形成


ICMP 差错报文形成 :


① 取出 IP 数据报内容 : 取出 IP 数据报 首部 , 以及 数据部分的 前 8 88 字节 ;


② ICMP 差错报文 组成 : ICMP 前 8 88 个字节 + IP 数据报 首部 + IP 数据报数据部分前 8 88 字节 ;


③ 组装 IP 数据报 : 将 ICMP 数据报 装入 IP 数据报 数据部分 ;



image.png





五、ICMP 差错报文 不发送 情形


ICMP 差错报文 不发送 情形 :


① ICMP 差错报文错误 : IP 数据报 中 , 如果 ICMP 差错报文部分出错 , 就不用再发送 ICMP 差错报告报文了 ;


② 后续数据报分片 : ICMP 差错报文只针对数据报的第一个分片 , 后续分片就不发送 ICMP 差错报告报文了 ;


③ 组播地址 : 如果 IP 数据报的地址是 组播地址 , 不发送 ICMP 差错报文 ;


④ 特殊地址 : 如果 IP 数据报的地址是 特殊地址 , 不发送 ICMP 差错报文 ; 如 : 默认路由地址 等 ;






六、ICMP 询问报文


ICMP 询问报文 :


① 回送请求 和 回答报文 : 主机 / 路由器 询问特定主机 , 目的主机收到该报文后 , 必须给源主机 发送 ICMP 回答报文 ; 目的是 测试该 目的主机是否可达 ;


② 时间戳请求 和 回答报文 : 请求 主机 / 路由器 当前的日期 和 时间 ; 用于进行时钟同步 和 时间测量 ;






七、ICMP 应用


ICMP 应用 :


① PING : 测试连通性 , 使用 ICMP 回送请求 和 回答报文 ;


② Traceroute : 追踪 分组 从原点 到 终点 路径 , 使用 ICMP 时间超过差错报告报文 ;



Traceroute 应用 细节 :


源主机 与 目的主机之间 有 n nn 个路由器 ;


第 1 11 个数据报 TTL = 1 11 , 第 1 11 个路由器收到该数据报 , 发现其生存周期为 0 00 , 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第 1 11 个路由器的地址 ;


第 2 22 个数据报 TTL = 1 11 , 第 2 22 个路由器收到该数据报 , 发现其生存周期为 0 00 , 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第 2 22 个路由器的地址 ;


⋮ \vdots⋮


第 n nn 个数据报 TTL = n nn , 第 n nn 个路由器收到该数据报 , 发现其生存周期为 0 00 , 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第 n nn 个路由器的地址 ;


目录
相关文章
|
7月前
|
数据采集 算法 数据挖掘
模块化控制协议(MCP)在网络中增强智能体执行效率的研究
随着Web3技术的迅速发展,去中心化应用和智能体在各种领域的应用逐渐增多。MCP(Modularized Control Protocol,模块化控制协议)作为一种增强智能体执行能力的关键技术,为Web3场景中的智能体提供了更强的灵活性和可扩展性。本文将探讨如何利用MCP技术提升智能体在Web3场景中的执行能力,并通过实例代码展示其实现路径。
613 22
|
6月前
|
负载均衡 网络协议 Linux
网络ping不通到底有多少原因?一文搞明白!
网络ping不通是网络中出现频率最高的故障之一,同时也是最让人抓狂的故障,谁没遇到过?今天就和你细说下ping不通的原因,看看能不能和你遇到的情况对上号。
4569 0
|
7月前
|
JSON 监控 API
在线网络PING接口检测服务器连通状态免费API教程
接口盒子提供免费PING检测API,可测试域名或IP的连通性与响应速度,支持指定地域节点,适用于服务器运维和网络监控。
863 0
|
4月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
5月前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
9月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
253 18
|
10月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
294 22
|
10月前
|
网络协议 数据安全/隐私保护 网络架构
|
11月前
|
缓存 网络协议 API
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。