实验六 ICMP协议分析
一、实验目的
(1)分析ICMP报文格式和协议内容。
(2)了解ICMP的应用。
二、实验设备与环境
由交换机组建的局域网环境,两人一组。
三、实验内容
(1)通过在不同环境下执行ping命令,截获报文。
(2)分析不同类型的ICMP报文,理解其具体意义。
四、实验原理
1.ICMP协议
ICMP(Internet Control Message Protocol,因特网控制报文协议)是因特网的标准。ICMP用于在IP主机、路由器之间传递控制消息,包括网络连通状况、主机是否可达、路由是否可用等相关信息,还用于调试、监视网络,对于网络安全具有极其重要的意义。
2.ICMP报文格式
由于ICMP报文的类型很多,且各自又有不同的代码。因此,ICMP 并没有一个统一的报文格式以供全部ICMP信息使用,不同的ICMP类别分别有不同的报文字段。
ICMP报文只是在前4个字节有统一的格式,共有类型、代码和校验和这3个字段。之后的4个字节的内容与ICMP报文的类型有关,再后面的数据字段的长度取决于ICMP报文的类型。ICMP报文格式如图6-1所示。
图6-1 ICMP报文格式
3.ICMP报文的分类
ICMP报文可以分为ICMP差错报告报文和ICMP 询问报文两种,表6-1给出了几种常用的ICMP报文类型。
表6-1 几种常见的ICMP报文类型
ICMP差错报告报文主要有终点不可达、源站抑制、超时、参数问题和路由重定向5种。实验中主要涉及终点不可达和超时两种,其中终点不可达报文中需要区分的不同情况较多,对应的代码列表如表6-2所示,较常见的是前5种。
表6-2 终点不可达报文的区别
4.基于ICMP的应用程序
目前,网络中常用的基于ICMP的应用程序主要有ping和tracert命令。
(1)ping命令是调试网络最有用的工具之一。在IP 层,ping发出ICMP Echo请求报文并监听其回应。通过执行ping命令主要可获得如下信息:检测网络的连通性;确定是否有数据报被丢失、复制或重传;根据返回的时间戳信息可以计算出数据包交换的时间;校验每一个收到的数据报,以确定数据报是否损坏。
常用参数:
-t:不停地向目标主机发送数据,以校验与指定计算机的连接,直到用户中断。
-n count:发送由count指定数据的ECHO报文,默认值为4。
-l length:发送包含由length指定数据长度的ECHO报文。缺少值为64字节,最大值为8 192字节。
-i ttl:将“生存时间”字段设置为由ttl指定的数值。
-s count:指定由count指定的转发次数的时间戳。
-w timeout:以毫秒为单位指定超时间隔。
destination -list:指定要校验连接的远程计算机。
(2)tracert命令是用来获得从本地计算机到目的主机的路径信息的。tracert通过发送数据报到目的设备并直到其应答,通过应答报文得到路径和时延信息。一条路径上的每个设备tracert要测3次,输出结果中包括每次测试的时间(ms)和设备的名称(如果有的话)或IP地址。
该程序通过向目的地发送具有不同生存时间(TTL)的ICMP回送请求报文,以确定至目的地的路由。路径上的每个路由器都要在转发该ICMP报文前将其TTL值至少减1,因此TTL是有效的跳转计数。当报文的TTL值减少到0时,路由器向源系统发回ICMP 超时信息。
常用参数:
-d:指定不对计算机名解析地址。
-h maximum hops:指定查找目标的跳转的最大数目。
-j computer -list:指定在computer -list中的松散源路由。
-w timeout:等待由timeout对每个应答指定的毫秒数。
target name:目标计算机的名称。
五、实验步骤
步骤1:利用交换机连接星型拓扑结构的局域网。(192.168.10/24)
步骤2:在主机A(192.168.10.150)、主机B(192.168.10.200)上运行网路岗软件,开始截获数据报文。
步骤3:ICMP询问报文分析。
①在主机A的命令行窗口中执行ping 192.168.10.200命令。执行完后,两台主机停止网路岗报文截获,截获的数据报文如图6-2所示。我们会找到4组ICMP类型的报文。
图6-2 主机A上截取的数据报文
②分析截获的ICMP报文,包括有几个ICMP报文,分别属于哪些种类,对应的种类和代码字段分别是什么。试分析报文中的哪些字段保证了回送请求报文和回送应答报文一一对应。
步骤4:ICMP差错报文分析。在主机A上运行网路岗软件,在命令行窗口执行ping 192.168.2.3命令,执行完后,停止报文截获。比较这次截获的报文和在步骤3中截获的报文有何不同。
步骤5:使用 tracert 命令。在主机 A 上执行网路岗软件,在命令解释程序中执行tracert www.baidu.com命令,查看输出的结果,简述tracert的工作过程。对应截获的数据包(ICMP报文),分析哪些是询问报文,哪些是差错报告报文,类型值是多少。
六、实验总结
完成该实验后,需要从以下几个方面进行总结:
(1)通过实验,了解ICMP 报文的格式和协议的内容,重点对ICMP 询问报文和差错报告报文的典型应用进行分析。
(2)使用ICMP协议的常见网络应用有哪些?请熟练操作,并能对提取的报文加以分析。