icmp协议介于网络层和传输层之间,一般认为是网络层协议。

ICMP协议用来在网络设备间传递各种差错、控制、纠正信息,它对于收集各种网络信息,诊断和排查网络故障具有至关重要的作用。

一、报文格式

icmp协议怎么写 ICMP协议详解(1)

图1

ICMP报文封装在IP数据包内。

icmp报文格式如图1所示,所有报文的前4个字节都是一样的,剩余其他字节则互不相同。

类型(type):1个字节8位,可以描述0-15个不同的数值,表示ICMP消息类型。

代码(code):1个字节8位,可以描述0-15个不同的数值,表示ICMP消息类型中的不同信息。

校验和(checksum):2个字节。

其他字节:返回的一些差错、纠错、诊断等各种网络信息;

二、报文类型

1、所有报文类型

icmp协议怎么写 ICMP协议详解(2)

2、常用报文类型

icmp协议怎么写 ICMP协议详解(3)

三、常用工具

1、ping 一次发送5个包 -a 源地址、-c 发包数目、-h TTL值、-t reply回复时间

Router>ping 10.0.23.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.0.23.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 96/104/116 ms

Router>

icmp协议怎么写 ICMP协议详解(4)

2、tracert

Router#traceroute 10.0.23.2

Type escape sequence to abort.

Tracing the route to 10.0.23.2

VRF info: (vrf in name/id, vrf out name/id)

1 10.0.12.2 60 msec 80 msec 60 msec

2 10.0.23.2 100 msec * 84 msec

tracert 一次发送三个包,TTL值从1-255递增一直到到达目的在,UDP端口非常大。

四、抓包分析

1、request

icmp协议怎么写 ICMP协议详解(5)

2、reply

icmp协议怎么写 ICMP协议详解(6)

3、tracert UDP包、TTL值超时包、目的端口不可达包

icmp协议怎么写 ICMP协议详解(7)

icmp协议怎么写 ICMP协议详解(8)

icmp协议怎么写 ICMP协议详解(9)

回复的差错信息ICMP报文里面的TTL值一直是1

,