第六章 网络互连与互联网(四):ICMP 协议

ICMP 协议

(1)ICMP 与 IP 协议同属于网络层,用于传送有关通信问题的消息。

(2)ICMP 报文封装在 IP 数据报中传送,因而不保证可靠的提交。

(3)ICMP 报文有 11 种之多,报文格式如图所示。其中的类型字段表示 ICMP 报文的类型,代码字段可表示报文的少量参数,当参数较多时写入 32 位的参数字段,ICMP 报文携带的信息包含在可变长的信息字段中,校验和字段是关于整个 ICMP 报文的校验和。

(4)下面简要解释 ICMP 各类报文的含义。

  • 目标不可到达(类型3):如果路由器判断出不能把 IP 数据报送达目标主机,则向源主机返回这种报文。另一种情况是目标主机找不到有关的用户协议或上层服务访问点,也会返回这种报文。出现这种情况的原因可能是 IP 头中的字段不正确;或者是数据报中说明的源路由无效;也可能是路由器必须把数据报分段,但 IP 头中的 D 标志置位。
  • 超时(类型 11):路由器发现 IP 数据报的生存期已超时,或者目标主机在一定时间内无法完成重装配,则向源端返回这种报文。
  • 源抑制(类型 4):这种报文提供了一种流量控制的初等方式。如果路由器或目标主机缓冲资源耗尽而必须丢弃数据报,则每丢弃一个数据报就向源主机发回一个源抑制报文,这时源主机必须减小发送速度。另外一种情况是系统的缓冲区已用完,并预感到行将发生拥塞,则发出源抑制报文。但是与前一种情况不同,涉及的数据报尚能提交给目标主机。
  • 参数问题(类型12):如果路由器或主机判断出 IP 头中的字段或语义出错,则返回这种报文,报文头中包含一个指向出错字段的指针。
  • 路由重定向(类型5):路由器向直接相连的主机发出这种报文,告诉主机一个更短的路径。例如路由器 R1 收到本地网络上主机发来的数据报,R1 检查它的路由表,发现要把数据报发往网络 X,必须先转发给路由器R2,而R2又与源主机在同一网络中,于是R1向源主机发出路由重定向报文,把R2的地址告诉它。
  • 回声(请求/响应,类型 8/0):用于测试两个节点之间的通信线路是否畅通。收到回声请求的节点必须发出回声响应报文。该报文中的标识符和序列号用于匹配请求和响应报文。当连续发出回声请求时,序列号连续递增。常用的PING工具就是这样工作的。
  • 时间戳(请求/响应,类型 13/14):用于测试两个节点之间的通信延迟时间。请求方发出本地的发送时间,响应方返回自己的接收时间和发送时间。这种应答过程如果结合强制路由的数据报实现,则可以测量出指定线路上的通信延迟。
  • 地址掩码(请求/响应,类型17/18):主机可以利用这种报文获得它所在的 LAN 的子网掩码。首先主机广播地址掩码请求报文,同一 LAN 上的路由器以地址掩码响应报文回答,告诉请求方需要的子网掩码。了解子网掩码可以判断出数据报的目标节点与源节点是否在同一 LAN 中。
相关推荐
Lzg_na1 小时前
数据链路层差错控制使用的算法详解
网络
努力努力再努力wz2 小时前
【C++ 高阶系列】C++ 高性能网络编程:当 Reactor 遇见协程:从 epoll 回调到异步 MySQL,彻底打通任务挂起与恢复
网络·c++·mysql
loulanyue_2 小时前
当AI学会自主攻击与渗透破壁:Agent行为链失控与Mythos级攻防颠覆下的安全范式重构——读CNCC2026第六届网络生态治理论坛实录
网络·人工智能·安全
2401_868534782 小时前
英语演讲:麻省理工校长2024年毕业典礼演讲
服务器·网络
码完就睡3 小时前
Linux——以太网协议
运维·服务器·网络·1024程序员节
CV爱数码3 小时前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
星恒讯工业路由器3 小时前
Modbus透传和Modbus网关有什么区别?从字节转发到协议翻译的选型思路
网络·物联网·modbus·工业物联网·工业网关·rs485·协议转换
李&@杰3 小时前
交换机PoE供电不足导致AP反复重启故障处理
网络·华为
香蕉大香蕉(06敬畏市场)3 小时前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习
钱工的门窗技术笔记4 小时前
铝木复合门窗中木材的角色分类与界面可分解性:结构判定、失效路径与维护设计
网络·物联网·数据分析