网络分析学习资料 -10bet十博欢迎您

icmp协议解码详解

一、 icmp协议简介

icmp全称internet control message protocol,中文名为因特网控制报文协议。它工作在osi的网络层,向数据通讯中的源主机报告错误。icmp可以实现故障隔离和故障恢复。

网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的ip协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的icmp协议却恰好弥补了ip的缺限,它使用ip协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。

icmp的报头长8字节,结构如图1所示。

比特0     7 8          15  16                 比特31

类型(0或8) 代码(0) 检验和
为使用
数据

图1 icmp报头结构

  • 类型:标识生成的错误报文,它是icmp报文中的第一个字段;
  • 代码:进一步地限定生成icmp报文。该字段用来查找产生错误的原因;
  • 校验和:存储了icmp所使用的校验和值。
  • 未使用:保留字段,供将来使用,起值设为0
  • 数据:包含了所有接受到的数据报的ip报头。还包含ip数据报中前8个字节的数据;

icmp协议提供的诊断报文类型如表1所示。

类型 描述
0 回应应答(ping应答,与类型8的ping请求一起使用)
3 目的不可达
4 源消亡
5 重定向
8 回应请求(ping请求,与类型8的ping应答一起使用)
9 路由器公告(与类型10一起使用)
10 路由器请求(与类型9一起使用)
11 超时
12 参数问题
13 时标请求(与类型14一起使用)
14 时标应答(与类型13一起使用)
15 信息请求(与类型16一起使用)
16 信息应答(与类型15一起使用)
17 地址掩码请求(与类型18一起使用)
18 地址掩码应答(与类型17一起使用)

表1 icmp诊断报文类型

icmp提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类:

  • 诊断报文(类型8,代码0;类型0,代码0);
  • 目的不可达报文(类型3,代码0-15);
  • 重定向报文(类型5,代码0-4);
  • 超时报文(类型11,代码0-1);
  • 信息报文(类型12-18)。

二、详细解码

使用科来网络分析系统捕获数据包,我们得到icmp回显报文的信息,如图1所示,

图1  科来网络分析系统抓取的icmp回显报文

我们详细介绍在图1中的解码信息,

  • 类型:8,表示是一个icmp回显请求报文;
  • 代码:0,表示网络不可达;
  • 校验和:表示icmp的0x425c;使用ip校验和的算法。
  • 标识:0x0400
  • 序列号:0x0700,每一个icmp回显报文都有一个序列号且是递增的
  • 数据:表示是一个32字节的数据

:以上是一个icmp回送报文,可以看出了和前面列出的icmp报文有点不一样。因为icmp有几种类型的报文(目标不可达报文,重定向报文,超时报文,回送请求和回送应答报文),每一种报文都相对都有一些区别,这里我们就不在特别介绍。

购买咨询

您的姓名 : *

10bet十博欢迎您的联系方式 : *

您的邮箱 : *

您的职位 : *

公司全称 : *

公司地址 : *

网络规模 : *

咨询产品: *

购买用途 : *

补充留言:

网站地图