其他分享
首页 > 其他分享> > TCP/IP卷一:32---ICMP之(ICMP(控制报文协议)简介、ICMPv4、ICMPv6报文格式/报文处理)

TCP/IP卷一:32---ICMP之(ICMP(控制报文协议)简介、ICMPv4、ICMPv6报文格式/报文处理)

作者:互联网

一、ICMP简介(控制报文协议)

ICMP的功能

  • ICMP负责传递可能需要注意的差错和控制报文
  • ICMP报文通常是由IP层本身、上层 的传输协议(例如TCP或者UDP),甚至某些情况下是用户应用触发执行的
  • 请注意,ICMP并不为IP网络提供可靠性。相反,它表明了某些类别的故障和配置信息。最常见的丢包(路 由器缓冲区溢出)并不会触发任何的ICMP信息。由其他协议如TCP来处理这种情况

二、ICMP在IPv4、IPv6报文中的封装

在IPv4中

  • 在IPv4中,协议(Protocol)字段值为1表示该报文携带了ICMPv4

在IPv6中

  • 在IPv6中,ICMPv6报文可能开始于0个或者多个扩展头部之后
  • 位于ICMPv6头部之前的最后一个扩展头部包含了一个值为58的下一个头部(Next Header)字段

三、ICMP的报文格式

  • 开头的4个字节在所有的报文中都是固定的,但是其与部分在不同的报文中不用

类型字段

  • 在ICMPv4中,为类型字段保留了42个不同的值,用于确定特定的报文
  • 但是,大概只有8个是经常使用的(在后面介绍)

代码字段

  • 许多类型的ICMP报文也使用不同的代码字段值进一步指定报文的含义

校验和字段

  • 校验和字段覆盖整个ICMPv4报文
  • 在ICMPv6中,它将涵盖一个来自IPv6头部的伪头部(pseudo-header)
  • 用于计算校验和的算法和前面介绍的Internet校验中用于计算IP头校验和的算法相同
  • 请注意,这是我们第一个端到端(end-to-end)的校验和例子。该校验和从发送方的ICMP报文被一路携带到最终的接收方。相比之下,前面介绍的Internet校验讨论的IPv4头校验和在路由器的每一跳中都会改变。如果一个ICMP实现收到一个校验和错误的ICMP报文,该报文将被丢弃;没有ICMP报文可以表示收到的ICMP报文中的校验和是错误的。回想一下,IP层不能对数据报的有效载荷部分进行保护。如果ICMP不包括校验和, ICMP报文的内容就可能不正确,进而导致错误的系统行为

报文类型种类

  • ICMP可以分为两大类:
    • 有关IP数据报传递的ICMP报文(称为差错报文)
    • 有关信息采集和配置的ICMP报文(称为查询或者信息类报文)

四、ICMPv4报文

  • 下面是ICMPv4的报文类型

  • 下面是对每种类型进行逐个细分的表格

五、ICMPv6报文

  • 下面是ICMPv6的报文类型

  • 下面是对每种类型进行逐个细分的表格

六、ICMP报文的处理

江南、董少 博客专家 发布了1300 篇原创文章 · 获赞 824 · 访问量 18万+ 他的留言板 关注

标签:ICMPv6,IP,报文,差错,ICMPv4,ICMP
来源: https://blog.csdn.net/qq_41453285/article/details/103957192