实验五 Internet 控制报文协议 ICMP实验目的1 •掌握使用WIRESHARK工具对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・.・实验步骤1、ping程序使用的ICMP信息包启动WIRESHARK协议分析工具,选择“Capture” “Start”,开始数据包的抓取,接下来点击“开始”菜单,在运行中输入“cmd”,进入Windows系统 的命令行模式,在命令行模式下输入“ping - 10 172.16.X.X”,ping结束后, 停止WIRESHARK抓包程序,并在WIRESHARK中的“Filter”域中输入关键字 “ICMP”,点击“Apply”按钮,将非ICMP数据包过滤掉。
如图4-2所示在 中间窗口的“Internet Protocol”中可以看到,协议号为01,表明是一个ICMP格 式的数据包No. - TimeSour匚已DestinationProto 匚 口1InfoIt 沽*■・・ li III —1 ・I匚帕PEchoCpingjrequest I35 2.977850192.168.112.252192.168.112.253ICMPEcho(ping)reply45 3.977870192.168.112.253192.168.112.252ICMPEchoCping)request46 3.978019192.168.112.252192.168.112.253ICMPEcho(ping)reply53 4.977891192.168.112.253192.168.112.252ICMPEchoCping)request54 4.978052192.168.112.252192.168.112.253ICMPEcho(ping)reply65 5.977882192.168.112.253192.168.112.252ICMPEcho(ping)request66 5.978055192.168.112.252192.168.112.253ICMPEcho(ping)replyrrr> Frame 34 (74 bytes on wire, 74 bytes captured)Ethernet II, src: Realteks_46:2f汁2 (00:e0:4c:46:2f汁2), Dst: Realteks_46:2f:d9 (00:eO:4c:46:2f:d9) * internet Protocol, Src: 192.168.112.253 (192.168.112.253), Dst: 192.168.112.252 (192.168.112.252)versi on: 4Header length: 20 bytes> Differentiated services Fl eld: 0x00 (dscp 0x00: Default; ecn: 0x00) Total Length: 60idenfif-icaTion: 0x4293 (17043^1Flags: 0x00Fragnienr offset: 0Protocol: ICMP (Ox01)Time to live: 128> Header uheuksum: 0x94e3 [correct]Source: 192.168.112.253 (192.168.112.253^Desfination: 192.168.112.252 (192.168.112.2 52^internet control Message Protocol000000eo4 c4 62td900eO4 c4 62tt208004500..LF/...LF/.…匚.0010003 c4293000080pn94e3cOaS70fdcOaS.
如图 4-3 所示,请注意其他字段"Identifier", "Sequence number" 和“ Data ”的内容File Edit View Go Capture Analyze Statistics T elephony Tools Help000000100020分析00 e0 4■:: 46 2f d9 00 eO 4■:: 46 2f f2 08 00 45 00 00703c 42 良 00 00 80 01 94 :WIRESHARK 捕)0 47 5c 03 006匚 6d 6ed(M03 00 61 62 6^ 64 6 J oo,6-W70 吕5 76协议数据包,F程序ICMP包扩展Filter:iemp▼ Expression... Clear ApplyNo.-TimeSourceDestinationProtc兀 cilInfojk342.977715192.168.112.253192.168.112.252ICMPEchoCf:'i ng)requestL352.977850192.168.112.252192.168.112.253ICMPEcho(ping)replyE453.977870192.168.112.253192.168.112.252ICMPEchoCping)request463.978019192.168.112.252192.168.112.253ICMPEcho(ping)reply534.977891192.168.112.253192.1。