目的
(1)掌握ICMP协议的作用和格式;
(2)理解ICMP数据包首部各字段的含义;
(3)理解ICMP协议与IP协议的封装关系;
工具
(1)软件工具:抓包分析工具(wireshark)
(2)操作系统:Windows7 Dos
(3)局域网环境。
原理
ICMP协议是IP协议的补充,用于IP层的差错报告、拥塞控制、路 径控制以及路由器或主机信息的获取。ICMP与IP协议位于同一个层 次(IP层),但ICMP报文是封装在IP数据报的数据部分进行传输的。
1)ICMP报文由首部和数据段组成。首部为定长的8个字节,前4个字 节是通用部分,后4个字节随报文类型的不同有所差异。ICMP报文 的一般格式如图所示
2)ICMP报文虽然细分为很多类,但总的来看可以分为如图所示的三大 类:差错报告、控制报文和请求应答报文。
3)数据报超时报告
在数据报的传输过程中,首部的TTL值用于防止数据报因路由表的问题而无休 止地在网络中传输。当TTL值为0时,路由器会丢弃当前的数据报,并产生一个 ICMP数据报超时报告。另外在信宿进行分片重组时会启动重组定时器,一旦重组 定时器超时,信宿就会丢弃当前正在重组的数据报,然后产生一个ICMP数据报超 时报告,并向信源发送该超时报告。
数据报超时报告的类型和代码的含义如表所示。类型值11表示是数据报超时报文,代码“0”表示TTL超时,代码“1”表示分片重组超时。
类型 |
报文 |
代码 |
描述 |
11 |
超时 |
0 |
路由TTL超时 |
1 |
分片重组超时 |
4)Tracert程序的实现方法
Tracert程序的设计是利用ICMP及IP header的TTL(Time To Live)字段。首先,Tracert送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),Tracert收到这个消息后,便知道这个路由器存在于这个路径上,接着Tracert再送出另一个TTL是2 的datagram,发现第2 个路由器…… Tracert每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了。
操作
(1)打开抓包工具软件(Wireshark),选择菜单命令“Capture” “Interfaces…”子菜单项。弹出“Wireshark: Capture Interfaces” 对话框。单击“Prepare”按钮,弹出“Wireshark: Capture Options” 对话框。Capture filter字段填入:“icmp”,单击“Start”按钮开始 网络数据包捕获。
(2)打开“命令提示符cmd”窗口,使用“Ping”命令测试本机与网关的 连通性。
在使用“Ping 121.42.123.186”命令测试本机与网关的连通性时,本地计算机向网关发送4个ICMP数据包,网关也会向本地计算机发送四个应答报文。因此,这8个报文将被网络协议分析软件捕获。
(3)单击“Stop”按钮,中断网络协议分析软件的捕获进程,主界面显 示捕获到的ICMP数据包。观察协议树区中ICMP数据包结构,是否 符合ICMP请求与应答的报文格式。
(4)重新开始网络数据包捕获进程,在“命令提示符”窗口中使用 “Tracert”命令,停止网络数据报捕获,分析捕获的数据包。
网络协议分析软件将捕获“数据报超时报告”,分析捕获的数据包时要注意IP首部中的TTL字段。
(5)重新开始网络数据包捕获进程,在“命令提示符”窗口中使用“Ping 121.42.123.186”命令,停止网络数据报捕获,分析捕获的数据包。
IP源:112.237.125.17,目标:121.42.123.186
TTL:64
(6)重新开始网络数据包捕获进程,在“命令提示符”窗口中使用“Ping” 命令,参数为本机名或本机IP地址,停止网络数据报捕获,分析捕 获的数据包。
1)我选择ICMP包分析,如图:
IP源:111.85.197.160,目标:112.237.125.17
TTL:56
传递的ping命令通常用于测试信宿的可到达性
总结
了解了ICMP报文由首部和数据段组成。通过wireshark软件的使用加深对此的了解(差错报告、控制报文和请求应答报文)。通过cmd的ping产生icmp数据包。应该多捕捉多一些包,并去了解每个字段的含义。并通过数据报超时报告的类型确定以加深对ICMP数据包的了解
—说明—这是自己计算机网络技术实验课制作的
今天的文章分析ICMP协议数据包格式分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/25462.html