PRELOADER

当前文章 : 《ICMP协议》

10/8/2019 —— 

ICMP简介

ICMP即网际控制报文协议 。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

  • ICMP可提高IP数据报交付成功的机会。
  • ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。
  • ICMP不是高层协议,而是 IP 层的协议。
  • ICMP报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。

ICMP报文格式

类型:占一个字节:用来表示ICMP的消息类型。
代码: 进一步区分某种类型中的几种不同情况。
检验和:用于检验整个ICMP报文。但是IP首部检验和并不检验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错。

ICMP报文类型

ICMP差错报告报文

常见的ICMP差错报告报文有:3 目的站点不可达、 11时间超过、12参数问题、5改变路由、4源点抑制

目的站点不可达:当路由器或主机不能交付数据的时候,就会向源点发送终点不可达的报文。

源点抑制:当路由器或主机因为拥塞而导致丢包的时候,就会向源点发送源点抑制报文,请求发送报文速度降低

时间超过:当路由器或主机发现生存时间TTL值为0时,会丢弃该报文,并向源点发送时间超过的信息。或者目的主机没在规定时间内收到所有的数据分片,会丢弃之前的数据分片,并发出报告。

参数问题:当路由器或主机发现数据包首部字段值不正确的时候,会丢弃该报文,并发送参数错误报文。

改变路由:路由器把改变路由报文发给主机。

ICMP询问报文

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

不发送ICMP差错报文的情况

1、对ICMP差错报文出错不在发送ICMP差错报文信息。

2、对于第一个ip分片后的所有ip分片报文不发送ICMP差错报文。

3、对具有组播地址的数据报不发送ICMP报文。

4、对具有特殊地址(127.0.0.0或0.0.0.0)不发送ICMP差错报文。