目录
1.抓取数据包
2.ping request数据包解析
2.1 ICMP
2.2 传输层
2.3 以太帧
2.3 数据链路层
3. ping reply数据包解析
1.抓取数据包 先用管理员权限打开WireShark应用,并在条件过滤栏输入“icmp”。打开cmd,输入:ping www.baidu.com。
这样我们在命令行中,得到如下的一个显示结果:
文章图片
wireshark中显示如下的一个结果:
文章图片
我们以35/36帧为例,来进行数据包的解析。比较这两帧的时间差,可以看到时间差为18.993ms,这个值跟cmd中显示的时间差19ms是可以对应起来的。
2.ping request数据包解析 我们按照TCP/IP四层模型自上而下的方式来分析ping request数据包,因为该数据就是从应用层开始,逐层添加报头来完成的数据包封包的。对端设备接收到后,又一层一层去掉报头,来获取里面的数据。这好像一个包包子和剥洋葱的过程,O(∩_∩)O哈哈~
2.1 ICMP 应用层是直接使用的icmp封包格式,如下图所示。可以看到整个数据包为40个字节。
文章图片
icmp数据包的结构如下。
文章图片
各字段的解释如下:
字段 |
解释 |
类型 |
占据一个字节,标识ICMP报文的类型。ICMP报文类型可以分为两大类,分别是取值在1~127之间的差错报文,另一类是取值大于128的信息报文 |
代码 |
占据一个字节,与类型字段一起共同标识ICMP报文的详细类型 |
校验和 |
是将整个ICMP数据包(包括数据部分)以16位为一个单位采用CRC校验,然后按位取反后的值 |
类型(十进制) |
解释 |
0 |
回显应答 |
3 |
目标不可达,代码字段值为0标识网络不可达,代码字段值为1标识主机不可达,代码字段值为2标识协议不可达 |
4 |
源点抑制,通知主机减少数据包流量 |
5 |
重定向或改变路由 |
8 |
回显请求 |
9 |
路由器公告 |
10 |
路由器请求 |
11 |
超时,代码字段值为0标识传输超时,代码字段值为1标识分段重组超时 |
17 |
地址子网请求 |
18 |
地址子网应答 |
文章图片
2.2 传输层 传输层是增加的IP报文头部,如下图所示,工20个字节。
文章图片
我们先看一下IP数据包的格式,它包括IP手部和数据部分,数据部分在本例中就是ICMP数据包。
文章图片
IP头部各字段的解释:
字段 |
解释 |
版本 |
占据4位,IP协议的版本,IPV4的版本为4 |
首部长度 |
占据4位,标识IP首部的长度,值范围为20~60 |
区分服务 |
占据一个字节 |
总长度 |
占据两个字节,标识的是首部和数据的总大小 |
标识 |
占据两个字节,当数据报由于长度超过网络的MTU而必须分 片时,这个标识字段的值就被复制到所有的数据报片的标识字段中,等到重组的时候,相同标识符的值的数据报就会被重新组装成一个数据报 |
标志 |
占据3位,一般有用的是前面两位,最低为叫做MF,MF=1表示后面还有若干个数据报,MF=0表示后面没有数据报了;中间为DF,DF表示是否可以进行分片,DF=1表示不能进行分片 |
片偏移 |
占13位,片偏移就是,在原来的数据报分片以后,该片在原分组中的相对位置,片偏移中的基本单位是8字节,所以,也就是说,只要是分片,每个分片的长度都是8字节的整数倍,最后一个分片不够八字节的一样是填充 |
生存时间 |
占据1个字节,标识该数据包最多可以经过多少个路由器 |
协议 |
占据1个字节,标识该数据报使用的是什么协议 |
首部校验和 |
占据2个字节,只对首部进行校验,因为数据部分由上层来完成校验 |
源地址 |
占据4个字节,源IP地址 |
目的地址 |
占据4个字节,目的IP地址 |
如果有其他数据需要放到IP头部,则可以放到可选字段,填充字段是为了保证IP头部满足4字节整数倍的要求增加的字段。
我们再结合wireshark抓取的数据做一下分析:
文章图片
2.3 以太帧 我们选中以太帧报文(红色方框圈中的地方),则下面有14个字节被选中了(绿色方框圈中的地方)。可以看到圈中的数据分别是:目的地址的mac地址,源地址的mac地址,还有一个值为0x8000的数据。
文章图片
我们先看一下以太帧的数据报格式:
文章图片
字段 |
解释 |
目的地址 |
占据6个字节,标识目标设备(路由器)的mac地址 |
源地址 |
占据6个字节,标识源设备的mac地址 |
类型 |
占据2个字节,标识上层协议的类型,常见的:0x8000标识IPV4,0x806标识ARP,0x0835标识RARP |
这个0x8000表示的就是上层协议类型为ipv4。
文章图片
2.3 数据链路层 双击第35帧数据包,可以得到如下的显示结果。点击数据链路层报文(红色方框标注的地方),可以看到整个74字节的报文内容(绿色方框圈起来的地方)就被选中了,这说明ping request数据链路层报文一共有74个字节。
文章图片
双击该行,可以展开看到里面更详细的内容:
文章图片
3. ping reply数据包解析 reply数据包跟request包没有大的区别,在这里就不用再次分析了。
如有错误,请帮忙留言指出,感谢~
【物联技术|wireshark抓包分析ping数据包】
推荐阅读
- 看程序员如何安全放心上网~
- 网络--路由器
- wireshark分析mysql数据包
- 网络--七层,五层,协议,封装,解封装,UDP,设备对应关系
- debian安装ncat只为测udp网络通信
- 软件资产管理是建立更安全网络的关键吗()
- 基础架构基础(网络监控)
- 如何使用JavaScript中的网络摄像头创建实时条形码扫描仪
- 模拟器EVE-NG关联SecureCRT和Wireshark操作指导