《计算机网络》网际控制报文协议 ICMP

一、什么是ICMP

为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP 。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告
但 ICMP 不是高层协议(看起来好像是高层协议,因为ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。

在这里插入图片描述
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。

二、ICMP 报文的种类

ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。

1、ICMP 差错报告报文

(1)四种ICMP 差错报告报文

  • 终点不可达
  • 时间超过 (路由跳数)
  • 参数问题
  • 改变路由(重定向)(Redirect)

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

在这里插入图片描述

(3)不应发送 ICMP 差错报告报文的几种情况

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

2、ICMP 询问报文

(1)两种ICMP询问报文

  • 回送请求和回答报文
  • 时间戳请求和回答报文

三、ICMP 的应用举例

1、PING (Packet InterNet Groper)

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

在这里插入图片描述

2、Traceroute 的应用举例

  • 在 Windows 操作系统中这个命令是 tracert。
  • 用来跟踪一个分组从源点到终点的路径
  • 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。(用ttl递增一步一步返回差错报告得出)
    TTL用来判断数据报是否超时
    在这里插入图片描述
  • 34
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值