Internet控制报文协议ICMP

实验五 Internet控制报文协议ICMP

实验目的

1.掌握使用Ethereal工具对ICMP协议进行抓包分析的方法。 2.理解不同类型ICMP报文的具体意义。 3.通过实验,进一步了解ICMP协议。

实验环境

1.安装Windows2000/2003Server/XP操作系统的PC计算机一台。 2.每台PC具有一块以太网卡,通过双绞线与局域网相连。 3.每台PC运行网络协议分析软件wireshark。

实验原理

ICMP是Internet Control Message Protocol(Internet控制报文协议)的缩写,是TCP/IP协议族的一个子协议,用于在主机和路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由器是否可用等网络本身的消息。由于IP网络的不可靠并且不能保证信息传递,因此当发生问题时,通知发送者是很重要的。ICMP协议提供有关阻止数据包传递的网络故障问题反馈信息的机制,它让TCP等上层协议能够意识到数据包没有送达目的地,ICMP协议提供一种查出灾难性问题的方法。这些灾难性的问题包括“TTL Exceeded”(超过生存时间)和“需要分更多的数据段”等。ICMP协议不报告IP校验失败等常见的问题。这是因为假定TCP或者其他可靠的协议能够处理这类数据包损坏的问题。而且,如果使用UDP等不可靠的协议,我们就不应理会较小数量的数据损失。

反之,如果网络有问题则需要立即报告。例如,当IP的TTL值(IP生存时间)将达到零,这就可能是网络的某个部分发生了路由环路问题,这样将没有任何数据包能发送到目的地。端点系统需要了解这些类型的故障。ICMP是一种发送各种消息,用于报告网络状态的协议,而非仅仅是简单的ping(连通性测试程序)。回应请求(Echo Request)仅是ICMP协议提供的众多消息之一。Ping信息可以被过滤掉。但是,大多数ICMP消息类型是IP、TCP和其他协议正常运行所需要的。

ICMP协议本身非常复杂。每一种类型的ICMP消息也称“主要类型(Major Type)”,它拥有自己的“子类型编码(Minor Codes)”。ICMP协议工作在第3层,因此,它能够在互联网上路由。一个ICMP数据包实际上就是一个IP数据部分包含ICMP协议数据的IP数据包。每一个ICMP消息都将包含引发这条ICMP消息的数据包的完全IP包头,这样端点系统就会知道实际上哪一个数据包没有发送到目的地。

ICMP协议消息包含不会变化的3个字段,随后是ICMP数据,然后是引发此消息的源IP数据包包头。不会变化的3个字段中,第1个字段包含ICMP类

型(主要类型)、第2个字段包含了类型代码、第3个字段是ICMP消息校验值。

ICMP协议在某些情况下不会发送错误信息。ICMP不会对ICMP信息做出响应。如果ICMP回应其他ICMP消息,这些消息的数量会爆炸性增长而演变为一场ICMP消息风暴。为了防止出现广播风暴,ICMP消息也不会回应一个广播或者多播地址。

各种ICMP的报文格式如下:

?

目的不可达报文

类型:3 代码:0至12 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 检验和 ? 源端抑制报文

类型:4 代码:0 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 检验和 ? 超时报文

类型:11 代码:0或1 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 检验和 ? 参数问题

类型:12 指针 代码:0或1 检验和 未使用(全0) 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 ?

改变路由

类型:5 代码:0到3 目标路由器IP地址 收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节 检验和 ? 回送请求和回答

类型:8或0 代码:0 检验和 序号 标识符 由请求报文发送;由回答报文重复 ?

时间戳请求和回答

类型:13或14 代码:0 原始时间戳 接收时间戳 发送时间戳 检验和 序号 标识符 ? 地址掩码请求和回答

类型:17或18 代码:0 地址掩码 检验和 序号 标识符 ? 路由询问和通告

类型:10 代码:0 检验和 序号 检验和 寿命 标识符

类型:9 地址数 代码:0 地址项目长度 路由器地址1 优先级1 路由器地址2 优先级2 ... 实验步骤

一、ping命令使用的ICMP信息包 Ping 命令格式如下:

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_name 这里对实验中可能用到的参数解释如下:

-t :用户所在主机不断向目标主机发送回送请求报文,直到用户中断; -n count:指定要Ping 多少次,具体次数由后面的count 来指定,缺省值为4;

-l size:指定发送到目标主机的数据包的大小,默认为32字节,最大值是65527;

-w timeout:指定超时间隔,单位为毫秒; target_name:指定要 ping的远程计算机。

1. 启动wireshark协议分析工具,开始抓包。

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