目录

一、报文结构

二、各种ICMP报文类型

2.1 查询报文

2.1.1 回显请求和应答

2.1.2 时间戳请求和应答

2.1.3 信息请求和应答

2.1.4 地址掩码和应答

2.2 差错报文

2.2.1 目的不可达

2.2.2 冷却报文

2.2.3 重定向 

2.2.4 超时

2.2.5 参数错误 


一、报文结构

ICMP(网络控制管理协议)报文是封装在IP报文内部传输的,也就是ICMP报文是IP报文的数据部分。

ICMP timestamp请求响应漏洞 修复工具 icmp请求和应答报文分析_IP

下图为ICMP报文格式:

ICMP timestamp请求响应漏洞 修复工具 icmp请求和应答报文分析_重定向_02

其中 8位类型,有15种不同类型,部分协议还可以复用8位代码来扩展类型。

二、各种ICMP报文类型

可以总的将ICMP报文分为查询报文和差错报文。

ICMP timestamp请求响应漏洞 修复工具 icmp请求和应答报文分析_地址掩码_03

2.1 查询报文

2.1.1 回显请求和应答

Ping就是用这种报文进行查询和回应。Type(8)请求回显报文(Echo)Type(0)回显应答报文(Echo Reply)

2.1.2 时间戳请求和应答

时间戳报文是用来记录收发以及传输时间的报文。Originate Timestamp记录的是发送方发送报文的时刻;Receive Timestamp记录的是接收方收到报文的时刻;Transmit Timestamp表示回显这最后发送报文的时刻。Type(13) 是请求报文,Type(14)是应答报文

2.1.3 信息请求和应答

这种报文是用来找出一个主机所在的网络个数(一个主机可能会在多个网络中)。报文的IP消息头的目的地址会填为全0,表示this,源地址会填为源IP所在的网络IP。

2.1.4 地址掩码和应答

ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码。

 

2.2 差错报文

2.2.1 目的不可达

目的不可达(type 为 3), code 不同代表不同的原因。

2.2.2 冷却报文

        路由器在处理报文时会有一个缓存队列。如果超过最大缓存队列,将无法处理,从而丢弃报文。并向源发送方发一个ICMP源冷却报文(Type4)

2.2.3 重定向 

重定向报文(Type为5)给源发送方

2.2.4 超时

超时报文(Type为11),Code为0,表示传输过程中超时了。

        一个IP数据报可能会因为过大而被分片,然后在目的主机侧把所有的分片重组。如果主机迟迟没有等到所有的分片报文,就会向源发送方发送一个ICMP超时报文,Code为1,表示分片重组超时了。

2.2.5 参数错误 

参数错误(type为12) IP首部错误code为0,缺少必须的选项code为1.