<返回更多

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

2020-04-14    
加入收藏

目录

抓包过程

使用了 Wireshark 进行抓包,用两个最常用的 curl 和 ping 命令来演示抓包情况,开启抓包。

## 先访问我自己的网站首页
 curl https://zengzhiqin.kuaizhan.com 
## 再查看我自己网站的地址
 ping https://zengzhiqin.kuaizhan.com

Wireshark根据 ping 命令得到的地址进行条件过滤,得到上面两个命令所得到的包,主要有 TCP(https基于tcp协议)协议和 ICMP(ping命令是基于 ICMP 协议)协议的包,如下图所示:

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

抓包分析

以太网帧(也叫MAC帧)首部分析

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

MAC帧 = 6字节源mac地址 + 6字节目标mac地址 + 2字节类型 + 4字节帧检验序列FCS + 数据长度(46~1500字节)

MAC帧长度是需要在64~1518字节之间的,太长或者太短都是无效的帧。

IP数据包过来了,MAC 层会给分别使用6个字节为其加上“源mac地址”和“目标mac地址”,并且花2个字节为其指明是哪种类型的IP数据报(目前有IPV4,IPV6两种类型),4字节“FCS帧检验序列” 负责检验帧是否有效,然后就是46~1500字节之间的IP数据报长度。

抓包里面的mac帧内容如下,选取了ping的reply类型包信息进行查看分析:

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

以太网帧

小补充:帧检验序列即FCS(frame check sequence), 让接收帧的网卡或接口判断是否发生了错误。

判断过程如下:发送网卡利用多项式计算,称循环冗余校验(CRC),将计算结果写入FCS字段,接收方收到这个帧,对其做相同的CRC计算。如果计算结果与接收的FCS字段相同,则帧没有发生错误。如果不同,接收方就相信帧肯定发生了错误,并丢弃这个帧。

IP数据包首部分析

抓包得到的头部对应关系如下所示(1~31表示的bit,8bit=1byte):

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

IP数据包头部

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

头部每个内容如下:

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

分片

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

此处单独截图抓包分析的标志内容,Reserved bit为保留了一位,没有进行设置;Don't fragement为1表示他是一个完整的数据包,不是一个片;More fragements为0表示这是最后一个分片,为1表示后面还有分片;

我curl的我的站点首页,内容是不多的,没有大于1500字节,所以不需要分片,如果我开启迅雷下载了一个很大的东西,那这个地方是需要分片的。

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

片偏移

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

image

抓包分析以太网帧和IP数据包,头部那么多东东用来干啥的,扫盲篇

 

校验过程

网络里面时时刻刻有那么多的包,设计者们秉着绝不浪费一个 bit 的精神,每一个标志的设计都是精心设计的,这个时候包的首部就要绝对的精简了。这两个内容写完就很多了,下一篇我会写一个姊妹篇,抓包分析传输层的tcp三次牵手四次分手过程~~感谢观看。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>