Internet控制报文协议(ICMP)

实验5 Internet控制报文协议(ICMP)

【实验目的】

1. 掌握ICMP协议的报文格式

2. 理解不同类型ICMP报文的具体意义 3. 了解常见的网络故障

【学时分配】

2学时

【实验环境】

该实验采用网络结构二

【实验内容】

一. ICMP简介

IP协议是一种不可靠无连接的协议,当数据包经过多个网络传输后,可能出现错误、目的主机不响应、包拥塞和包丢失等问题。为了处理这些问题,在IP层引入了另一个协议ICMP(Internet控制信息协议)。ICMP报文有两种类型:差错报文和查询报文。ICMP报文封装在IP报文里传输。ICMP报文可以被IP协议、传输层协议(TCP或UDP)和用户进程使用。ICMP与IP一样,都是不可靠传输,ICMP的信息也可能丢失。为了防止ICMP报文无限制的连续发送,对于ICMP报文在传输中发生的问题,将不再发送ICMP差错报文。

二. ICMP报文格式

ICMP数据包由8字节的首部和可变长度的数据部分组成。如下图所示,第一个字段是ICMP的类型,它定义了报文类型。第二个字段是代码字段,它指明了发送这个特定报文类

型的原因。校验和字段为ICMP数据包提供差错校验。对于不同类型的ICMP数据包,首部的最后4个字节的格式是不同的,具体的格式将在下面讨论。

差错报文的数据部分携带引起差错的原始数据。查询报文的数据部分携带了基于查询类型的额外信息。

图4-1 ICMP报文的一般格式

● 类型:8位字段,用于描述特定类型的ICMP报文。

● 代码:8位字段,进一步描述某些ICMP报文的具体说明。 ● 校验和:16位字段,覆盖这个ICMP报文的校验和。 三. ICMP封装

ICMP报文封装在IP数据报中,具体的封装方法如下图所示:

图4-2 ICMP封装

四. ICMP报文类型

ICMP报文可分为两大类:差错报文和查询报文,如下图所示:

图4-3 ICMP报文类型

差错报文报告路由器或主机在处理IP数据报时遇到的问题。 查询报文是成对出现的,它帮助主机或网络管理员从一个路由器或另一个主机得到特定的信息。例如,主机使用ICMP回显请求和回显应答报文发现它们的邻站。下表列出了每一类ICMP报文。

表4-1 ICMP报文

五. ICMP查询报文

ICMP查询报文能够获得特定主机或路由器的信息,能够对某些网络问题进行诊断。ICMP查询报文包括4对不同类型的报文,分别为回显请求和应答报文、时间戳请求和应答报文、地址掩码请求和应答报文以及路由器询问和通告报文,如下图所示。

图4-4 查询报文

1. 回显请求和应答

回显请求报文和回显应答报文用来确定了两个节点(主机或路由器)之间是否能够正常通信。用户可以使用这对报文来发现网络问题。

主机或路由器可以发送回显请求报文给另一个主机或路由器。收到回显请求报文的主机或路由器产生回显应答报文,并将其返回给原来的发送端。

回显请求和回显应答报文可用来确定是否在IP这级能够通信。因为ICMP报文被封装在IP数据报中,发送回显请求的主机在收到回显应答报文时,就证明了在发送端和接收端之间能够使用IP数据报进行通信。另外,这还证明了链路中的路由器能够接收、处理和转发数据报。

回显请求和回显应答报文还可以用于检查另一个主机是否可达。用户可以调用数据包因特网搜寻器(ping)命令做到这一点。现在,大多数系统都提供ping命令,它可以产生一连串的回显请求或回显应答报文。

回显请求和回显应答报文也可以用来验证某个节点是否正常工作。可以向被测试的节点发送回显请求报文,该报文的数据字段包含一段信息,如果这段信息被测试的节点在回显应答报文中完全一样地重复,则说明该节点工作正常;否则说明该节点出了问题。下图给出了回显请求和回显应答报文的格式。类型值为8表示回显请求报文,类型值为0表示回显应答报文。标识符和序号字段在协议中没有正式定义,可以由发送端任意使用。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4