物联技术|wireshark抓包分析ping数据包

目录

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抓包分析ping数据包
文章图片

wireshark中显示如下的一个结果:
物联技术|wireshark抓包分析ping数据包
文章图片

我们以35/36帧为例,来进行数据包的解析。比较这两帧的时间差,可以看到时间差为18.993ms,这个值跟cmd中显示的时间差19ms是可以对应起来的。
2.ping request数据包解析 我们按照TCP/IP四层模型自上而下的方式来分析ping request数据包,因为该数据就是从应用层开始,逐层添加报头来完成的数据包封包的。对端设备接收到后,又一层一层去掉报头,来获取里面的数据。这好像一个包包子和剥洋葱的过程,O(∩_∩)O哈哈~
2.1 ICMP 应用层是直接使用的icmp封包格式,如下图所示。可以看到整个数据包为40个字节。
物联技术|wireshark抓包分析ping数据包
文章图片

icmp数据包的结构如下。
物联技术|wireshark抓包分析ping数据包
文章图片

各字段的解释如下:

字段
解释
类型
占据一个字节,标识ICMP报文的类型。ICMP报文类型可以分为两大类,分别是取值在1~127之间的差错报文,另一类是取值大于128的信息报文
代码
占据一个字节,与类型字段一起共同标识ICMP报文的详细类型
校验和
是将整个ICMP数据包(包括数据部分)以16位为一个单位采用CRC校验,然后按位取反后的值
下面罗列一些常见的ICMP报文类型:
类型(十进制)
解释
0
回显应答
3
目标不可达,代码字段值为0标识网络不可达,代码字段值为1标识主机不可达,代码字段值为2标识协议不可达
4
源点抑制,通知主机减少数据包流量
5
重定向或改变路由
8
回显请求
9
路由器公告
10
路由器请求
11
超时,代码字段值为0标识传输超时,代码字段值为1标识分段重组超时
17
地址子网请求
18
地址子网应答
可以看到利用wireshark抓取的icmp如下,跟上面的icmp数据包可以对应起来。
物联技术|wireshark抓包分析ping数据包
文章图片

2.2 传输层 传输层是增加的IP报文头部,如下图所示,工20个字节。
物联技术|wireshark抓包分析ping数据包
文章图片

我们先看一下IP数据包的格式,它包括IP手部和数据部分,数据部分在本例中就是ICMP数据包。
物联技术|wireshark抓包分析ping数据包
文章图片

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地址
从上面的表格可以看出,上面的字段长度加起来正好是20个字节,也就是IP头部的最小长度大小。
如果有其他数据需要放到IP头部,则可以放到可选字段,填充字段是为了保证IP头部满足4字节整数倍的要求增加的字段。
我们再结合wireshark抓取的数据做一下分析:
物联技术|wireshark抓包分析ping数据包
文章图片

2.3 以太帧 我们选中以太帧报文(红色方框圈中的地方),则下面有14个字节被选中了(绿色方框圈中的地方)。可以看到圈中的数据分别是:目的地址的mac地址,源地址的mac地址,还有一个值为0x8000的数据。
物联技术|wireshark抓包分析ping数据包
文章图片

我们先看一下以太帧的数据报格式:
物联技术|wireshark抓包分析ping数据包
文章图片

字段
解释
目的地址
占据6个字节,标识目标设备(路由器)的mac地址
源地址
占据6个字节,标识源设备的mac地址
类型
占据2个字节,标识上层协议的类型,常见的:0x8000标识IPV4,0x806标识ARP,0x0835标识RARP

这个0x8000表示的就是上层协议类型为ipv4。
物联技术|wireshark抓包分析ping数据包
文章图片

2.3 数据链路层 双击第35帧数据包,可以得到如下的显示结果。点击数据链路层报文(红色方框标注的地方),可以看到整个74字节的报文内容(绿色方框圈起来的地方)就被选中了,这说明ping request数据链路层报文一共有74个字节。
物联技术|wireshark抓包分析ping数据包
文章图片

双击该行,可以展开看到里面更详细的内容:
物联技术|wireshark抓包分析ping数据包
文章图片

3. ping reply数据包解析 reply数据包跟request包没有大的区别,在这里就不用再次分析了。
如有错误,请帮忙留言指出,感谢~
【物联技术|wireshark抓包分析ping数据包】

    推荐阅读