在前面的文章中,我们对ICMP协议的报文结构已经做了介绍。那么不清楚的朋友们可以参阅一下《ICMP协议的基本结构和报文类型》这篇文章,那么接下来我们主要介绍一下这个协议的解码过程,首先还是简单回顾一下这个协议的基本信息。
基本概念
ICMP协议全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。
网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。
详细解码
使用科来网络分析系统捕获数据包,我们得到ICMP回显报文的信息,如图1所示。
(图1 科来网络分析系统抓取的ICMP回显报文)
我们详细介绍在图1中的解码信息。
类型:8,表示是一个ICMP回显请求报文;
代码:0,表示网络不可达;
校验和:表示ICMP的0x425C;使用IP校验和的算法;
标识:0x0400;
序列号:0x0700,每一个ICMP回显报文都有一个序列号且是递增的;
数据:表示是一个32字节的数据;
注:以上是一个ICMP回送报文,可以看出了和前面列出的ICMP报文有点不一样。因为ICMP协议有几种类型的报文(目标不可达报文,重定向报文,超时报文,回送请求和回送应答报文),每一种报文都相对都有一些区别,这里我们就不在特别介绍。