网际控制报文协议--ICMP

网际控制报文协议 ICMP :
为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (InternetControl Message Protocol)。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 不是高层协议,而是 IP 层的协议。ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。

ICMP 报文的格式

这里写图片描述

  • 类型
    • 3 终点不可达
    • 11 时间超过
    • 12 参数问题
    • 5 改变路由
    • 8或0 回送请求或回答
    • 13或14 时间戳请求或回答
  • 代码 : 进一步区分某种类型中的几种不同情况。
  • 检验和 : 用于检验整个ICMP报文。但是IP首部检验和并不检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错。

ICMP报文装在IP数据报中,但是它不是高层协议,而是IP层协议。

ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。


ICMP 差错报告报文共有 5 种

  • 终点不可达
  • 源点抑制(Source quench)
  • 时间超过 : 生存时间减为0时。
  • 参数问题 : 数据报首部字段出错。
  • 改变路由(重定向)(Redirect) :让主机知道下次应该将数据报发送给另外的路由(可通过更好的路由)。

ICMP 差错报告报文的数据字段的内容

这里写图片描述

不应发送 ICMP 差错报告报文的几种情况 :

  • ICMP 差错报告报文不再发送 ICMP 差错报告报文。
  • 第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
  • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

ICMP 询问报文有两种

  • 回送请求和回答报文 :主机或路由器向特定目的主机发出询问,收到此报文的主机必须发送ICMP回送回答报文。可用于测试目的站是否可达以及了解其有关状态
  • 时间戳请求和回答报文 : 请求某台主机或路由器回答当前的日期和时间,可用于时钟同步和时间测量

下面的几种 ICMP 报文不再使用

  • 信息请求与回答报文
  • 掩码地址请求和回答报文
  • 路由器询问和通告报文

ICMP的应用举例PING (Packet InterNet Groper)
PING 用来测试两个主机之间的连通性。PING 使用了 ICMP 回送请求与回送回答报文。PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。

这里写图片描述

发布了1 篇原创文章 · 获赞 1 · 访问量 393

网际控制报文协议 ICMP :
为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (InternetControl Message Protocol)。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 不是高层协议,而是 IP 层的协议。ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。

猜你喜欢

转载自blog.csdn.net/qq_35686185/article/details/104436792