分析ICMP协议数据包格式

分析ICMP协议数据包格式了解了ICMP报文由首部和数据段组成。通过wireshark软件的使用加深对此的了解(差错报告、控制报文和请求应答报文)。通过cmd的ping产生icmp数据包。应该多捕捉多一些包,并去了解每个字段的含义。并通过数据报超时报告的类型确定以加深对ICMP数据包的了解

目的

(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报文 的一般格式如图所示

分析ICMP协议数据包格式

2)ICMP报文虽然细分为很多类,但总的来看可以分为如图所示的三大 类:差错报告、控制报文和请求应答报文。

分析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”按钮开始 网络数据包捕获。

分析ICMP协议数据包格式

(2)打开“命令提示符cmd”窗口,使用“Ping”命令测试本机与网关的 连通性。

分析ICMP协议数据包格式

在使用“Ping 121.42.123.186”命令测试本机与网关的连通性时,本地计算机向网关发送4个ICMP数据包,网关也会向本地计算机发送四个应答报文。因此,这8个报文将被网络协议分析软件捕获。

(3)单击“Stop”按钮,中断网络协议分析软件的捕获进程,主界面显 示捕获到的ICMP数据包。观察协议树区中ICMP数据包结构,是否 符合ICMP请求与应答的报文格式。

(4)重新开始网络数据包捕获进程,在“命令提示符”窗口中使用 “Tracert”命令,停止网络数据报捕获,分析捕获的数据包。

分析ICMP协议数据包格式

网络协议分析软件将捕获“数据报超时报告”,分析捕获的数据包时要注意IP首部中的TTL字段。

  (5)重新开始网络数据包捕获进程,在“命令提示符”窗口中使用“Ping  121.42.123.186”命令,停止网络数据报捕获,分析捕获的数据包。


分析ICMP协议数据包格式

IP源:112.237.125.17,目标:121.42.123.186

TTL:64

(6)重新开始网络数据包捕获进程,在“命令提示符”窗口中使用“Ping” 命令,参数为本机名或本机IP地址,停止网络数据报捕获,分析捕 获的数据包。

分析ICMP协议数据包格式

1)我选择ICMP包分析,如图:

分析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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注