协议分析 - ICMP协议解码详解

ICMP协议是互联网控制报文协议,用于在网络层向源主机报告错误和提供故障信息。它弥补了IP协议无连接的不足,通过类型、代码字段提供不同类型的诊断报文,如目的不可达、重定向、超时等。本文通过实例解析ICMP回显报文的结构,包括类型、代码、校验和、标识、序列号和数据字段,展示了其在网络诊断中的应用。
摘要由CSDN通过智能技术生成

一、 ICMP协议简介

ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。

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

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

   比特0     7  8             15   16                  比特31

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

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

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有几种类型的报文(目标不可达报文,重定向报文,超时报文,回送请求和回送应答报文),每一种报文相对都有一些区别,这里我们就不再特别介绍。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腿没发霉的霉腿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值