网际控制报文协议--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。

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值