【计算机网络】网络层 : 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 个路由器的地址 ;


目录
相关文章
|
9天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
34 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
16天前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
|
23天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
48 8
|
21天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
34 2
|
23天前
|
机器学习/深度学习 人工智能 安全
探索人工智能在网络安全中的创新应用
探索人工智能在网络安全中的创新应用
|
网络架构
ICMP协议(Internet控制消息协议)
本文详细的介绍ICMP协议,内含详细的实例解析,该文你值得拥有。
|
网络协议 网络架构
网络协议与攻击模拟-05-ICMP协议
网络协议与攻击模拟-05-ICMP协议
108 0
|
7月前
|
存储 网络协议 算法
基于 Wireshark 分析 ICMP 协议
基于 Wireshark 分析 ICMP 协议
|
3月前
|
网络协议 Unix 网络架构
网际控制报文协议ICMP
网际控制报文协议(ICMP)是TCP/IP体系结构中网际层的关键组件,用于提高IP数据报的成功传输率。ICMP主要处理两类报文:差错报告报文与询问报文。前者包括终点不可达、源点抑制、时间超过、参数问题及重定向等五类;后者则涵盖回送请求/回答及时间戳请求/回答。ICMP广泛应用于检测网络连通性的PING工具和追踪数据包路径的traceroute工具中。两者分别利用ICMP的回送请求报文及差错报告报文实现功能。
102 10
|
4月前
|
网络协议 网络架构
用户态协议栈03-icmp实现
用户态协议栈03-icmp实现