写点什么

什么是 ICMP ?ping 和 ICMP 之间有啥关系?

作者:wljslmz
  • 2022 年 6 月 27 日
  • 本文字数:1239 字

    阅读完需:约 4 分钟

什么是 ICMP ?ping和ICMP之间有啥关系?

你好,这里是网络技术联盟站。


今天应粉丝要求约稿讲一下 ICMP,说起 ICMP,咋一看,很熟悉,但是仔细想想又讲不出来啥,所以这就是本文的目的。


让我们直接开始吧!

什么是 ICMP?

  • 英文全称:Internet Control Message Protocol

  • 中文名称:互联网控制报文协议

  • 工作在 OSI 模型的网络层和 TCP/IP 模型的 Internet 层

  • ICMP 消息不直接传递到数据链路层

  • 在 RFC 792 中定义



ICMP 通常不被网络上的用户应用程序直接使用,并且与 TCP 和 UDP 的工作方式完全不同。


简而言之,ICMP 的主要用途是发送 Echo ICMP 请求消息的 Ping 或 Trace 工具,以计算和确定网络上的计算机是否可用、数据包往返这台计算机所需的时间以及它们经过的计算机数量。

ICMP 历史

ICMP 属于 TCP/IP 协议栈,互联网的先驱之一 Jon Postel 撰写了 ICMP 的原始概念,1981 年 4 月,在 RFC 777 中,编写了第一个标准,RFC 792 也是由 Postel 编写并于 1981 年 9 月由 Internet Engineering Community 发布的。

ICMP 的结构


  • 类型 Type:ICMP 中的每条消息都包含唯一的类型并放置在此字段中,其中一个常见的字段称为 echo request,类型为 8,此字段为 8 位,因此共有 256 种消息类型。

  • 代码 Code:ICMP 为每种类型的消息提供了带有 Code 字段的附加信息,代码字段为 8 位,有 256 个可能的值。

  • 校验和 Checksum:该字段为 16 位,计算方式与 IPv4 类似,用于为整个 ICMP 消息提供消息的错误检测。

ICMP 的功能

ICMP 主要设计用于在将发送设备连接到接收设备的路径中工作的设备,在路径中间工作的最常见设备是路由器,ICMP 不限于路由器,网络中的任何设备都可以使用 ICMP 并向另一台设备发送消息,ICMP 为所有控制和信息消息提供单一机制。


ICMP 的主要功能如下。


  • 当源发送的 IP 数据包无法传递时,允许路由器通知源。

  • 允许源发现到目标设备的所有可用路径。

  • 允许源检查目标设备是否在线和启动。

  • 允许管理员测试连接和调试与连接相关的问题。


ICMP 消息

ICMP 主要有以下消息:


Echo Request / Echo Reply

  • 中文名称:回声请求/回声回复

  • Echo Reply:ICMP Type 0

  • Echo Request:ICMP Type 8


回声消息可用于确定网络上的设备是否正在工作。


本地计算机向目标计算机发送 ICMP Echo Request 消息,接收计算机使用 Echo Replymessage 进行响应。

Destination Unreachable

  • 中文名称:目的地不可达

  • ICMP Type 3


表示无法到达目标网络、主机或端口

Redirect

  • 中文名称:重定向

  • ICMP Type 5


用于将主机重定向到不同的网络路径。

Source Quench

  • 中文名称:源抑制

  • ICMP type 4


用于实现一个基本的流量控制机制,并通知源端停止发送数据包一段时间。


此消息通知数据报包在网络上快速传输,如果资源繁忙,则减慢到源设备的数据包传输速度。

Time Exceeded

  • 中文名称:超市

  • ICMP Type 11


表示由于跳数过多,已超过生存时间 ( TTL )。

消息类型汇总:

总结

Internet 控制消息协议 (ICMP) 是 TCP/IP 的实用协议,负责提供有关 TCP/IP 网络上的设备、服务或路由的可用性的信息,大多数网络故障排除技术和工具都以常见的 ICMP 消息类型为中心,最著名的就是 ping,主要用于测试设备之间的通信。

发布于: 刚刚阅读数: 3
用户头像

wljslmz

关注

极致主义者,追求技术的路上,勇往直前! 2021.05.24 加入

订阅号:网络技术联盟站 个站:https://www.wljslmz.cn

评论

发布
暂无评论
什么是 ICMP ?ping和ICMP之间有啥关系?_网络协议_wljslmz_InfoQ写作社区