ICMP网际控制报文协议

ICMP网际控制报文协议

ICMP 的概念和作用

• IP 是一种不可靠的,无连接的数据报传输协议,提供了一种尽力而为的点到点数据传输服务,但不能保证所有数据报都可以成功地从信源到达信宿。为此人们在网络层(也称为 IP 层)引入了另外一种协议 ——* 网际控制报文协议( Internet Control Message Protocol , ICMP )来实现 IP 层数据报传输过程中的差错控制。通过 ICMP 配合 IP 的使用,提高了数据报传递的成功率。

• ICMP 是 IP 的补充,用于IP 层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。

ICMP报文的格式

在这里插入图片描述

类型:用于定义ICMP报文类型。
代码:用于标识发送这个特定报文类型的原因。
校验和:用于数据传输过程的差错控制,提供ICMP整个报文的校验和。
首部其他部分:由报文类型来确定相应内容,大部分差错报告报文未使用该字段;
数据:提供了ICMP差错和状态报告信息,内容因报文类型而异。

各种报文类型的作用及具体格式

差错报告

信宿不可达报告-3

  • 作用: 当一台路由器或主机无法将数据包传递到目标地址时,会生成信宿不可达报告,通知源站数据包无法被送达。

  • 具体格式: 信宿不可达报告包含 ICMP 报文头和差错报告信息,报文类型为 Destination Unreachable(目标不可达)。具体格式包括 ICMP 头、差错报告类型码和其他相关信息。

    在这里插入图片描述

    在这里插入图片描述

数据报超时报告-11

  • 作用: 当数据包在传输过程中超时(Time-to-Live 到达零),路由器会生成数据报超时报告,通知源站数据包未能在合理的时间内到达目标。

  • 具体格式: 数据报超时报告同样包含 ICMP 报文头和差错报告信息,报文类型为 Time Exceeded(超时)。其格式也包括 ICMP 头、差错报告类型码和其他相关信息。
    在这里插入图片描述

    ICMP 超时报文的基本格式如下:

                8               16                             32
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Unused             |    Next Hop MTU               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Internet Header + 64 bits of Original Data Datagram      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type (8 bits): 指定 ICMP 报文的类型。对于 ICMP 超时报文,Type 通常为 11。

Code (8 bits): 给出了更详细的信息,指定了 ICMP 报文的子类型。对于 TTL 过期,Code 通常为 0。

Checksum (16 bits): 用于校验 ICMP 报文的完整性,计算方法与其他 ICMP 报文相同。

Unused (16 bits): 未使用字段。

Next Hop MTU (16 bits): 下一跳的最大传输单元(MTU),表示此报文引起的超时的原因。

Internet Header + 64 bits of Original Data Datagram: 超时报文中包含 IP 数据包的前 8 个字节(即 IP 头部),以及原始数据包的前 64 位数据。

数据报参数错误报告-12

  • 作用: 当数据包的头部在传输过程中存在错误或不合法时,路由器会生成数据报参数错误报告,通知源站数据包的参数有误。

  • 具体格式: 数据报参数错误报告同样包含 ICMP 报文头和差错报告信息,报文类型为 Parameter Problem(参数问题)。其格式包括 ICMP 头、差错报告类型码、指示出错字节的指针和其他相关信息。
    在这里插入图片描述

源站抑制报告-4

  • 作用: 当一个路由器因为某些原因(比如拥塞)希望源站减缓发送数据包的速率时,会生成源站抑制报告。
  • 具体格式: 源站抑制报告包含 ICMP 报文头和抑制报告信息,报文类型为 Source Quench(源站抑制)。其格式包括 ICMP 头、差错报告类型码和其他相关信息。

重定向报告-5

  • 作用: 当一台路由器认为有更好的下一跳地址时,会生成重定向报告,通知源站将下一跳地址修改为更合适的地址。

  • 具体格式: 重定向报告包含 ICMP 报文头和重定向报告信息,报文类型为 Redirect(重定向)。其格式包括 ICMP 头、重定向报告类型码和其他相关信息。

    在这里插入图片描述

查询报告

时间戳请求与应答报告-13/14

  • 作用: 时间戳请求用于获取目标主机或路由器的当前时间,而时间戳应答用于响应时间戳请求。

  • 具体格式: 时间戳请求与应答报告包含 ICMP 报文头和时间戳报告信息,报文类型分别为 Timestamp Request 和 Timestamp Reply。其格式包括 ICMP 头、标识符、序列号、原始时间戳和接收到的时间戳。

    在这里插入图片描述

回应请求与应答报文-8/0

  • 作用: 回应请求用于测试目标主机或路由器是否能够正常响应,回应应答用于确认目标主机或路由器的可达性。

  • 具体格式: 回应请求与应答报文包含 ICMP 报文头和 Echo 报告信息,报文类型分别为 Echo Request 和 Echo Reply。其格式包括 ICMP 头、标识符、序列号和回应数据。

    在这里插入图片描述

地址掩码与应答报告-17/18

  • 作用: 地址掩码请求用于获取目标主机的子网掩码信息,而地址掩码应答用于响应地址掩码请求。

  • 具体格式: 地址掩码与应答报告包含 ICMP 报文头和地址掩码报告信息,报文类型分别为 Address Mask Request 和 Address Mask Reply。其格式包括 ICMP 头、标识符、序列号和子网掩码。

    在这里插入图片描述

路由器询问与通告报告

  • 作用: 路由器询问用于询问目标主机是否是一个路由器,而路由器通告用于通知网络中的其他主机自己是一个路由器。

  • 具体格式: 路由器询问与通告报告包含 ICMP 报文头和路由器通告报告信息,报文类型分别为 Router Solicitation 和 Router Advertisement。其格式包括 ICMP 头、标识符、选项字段和其他相关信息。

  • 路由器询问报告报文格式

    在这里插入图片描述

  • 路由器通告报告报文格式

    在这里插入图片描述

ICMP报文的封装过程

ICMP虽然是IP层的协议,但其报文是以IP数据报形式进行传递的,即ICMP报文本身被封装在IP数据报的数据区中。包含ICMP报文的IP数据报首部的协议类型字段被设置为1。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值