首页 > 其他分享 >流量分析一之以太网帧

流量分析一之以太网帧

时间:2023-03-02 23:14:12浏览次数:35  
标签:FCS 字节 一之 流量 MAC 64 长度 以太网

数据封装

应用数据需要经过TCP/IP每一层处理后才能通过网络传输到目的端,每一层上都使用该层的协议数据单元PDU(Protocol Data Unit)交换信息。

不同层的PDU中包含不同的信息,在不同层有不同的名称。

应用层数据在传输层添加TCP报文后的PDU称为Segment(数据段);

Segment(数据段)被传递到网络层,添加IP报文头得到的PDU称为Packet(数据包);

Packet(数据包)传递到数据链路层,添加Ethernet_Ⅱ或IEEE802.3报文后得到的PDU称为Frame(数据帧)。

最后,帧转换为比特,通过网络介质传输。这种逐层向下传递数据,并添加报头和报尾的过程称为封装。

从物理层逐层传递到目的端,向上传递的过程则是解封装。

 

 

以太网帧

Ethernet_Ⅱ的帧结构如下:

  • DMAC(Destination MAC)是目的MAC地址,长度为6个字节,标识帧的接收者;
  • SMAC(Source MAC)是源MAC地址,长度为6个字节,标识帧的发送者;
  • Type类型字段,用于标识上层使用的协议类型,长度为2个字节,常见取值0x0800代表IP协议,0x0806代表ARP协议;
  • Data数据字段,最小长度必须为46字节以保证帧长至少为64字节,最大长度为1500字节;
  • FCS循环冗余校验字段,提供一种错误检测机制,长度为4字节。

 

 

 抓包分析

2个16进制数即8个比特,也就是1个字节,从抓包结果可以核验DMAC是4字节

SMAC是4字节

 

Type是4字节

Trailer字段是18字节

 

整个Ethernet_Ⅱ帧是6+6+2+18=32字节

 ARP报文是28字节,与Ethernet_Ⅱ帧的32字节,总共是60字节。

这是因为网卡接收到一个帧,第一步就是计算FCS,并与接收到的帧尾的FCS进行对比,如果一致,则接收,如果不一则丢弃。

Wireshark抓到的帧,是FCS校验通过的帧,而帧尾的FCS会被硬件去除,所以没有帧尾4字节FCS。

实际是60字节+4字节FCS=64字节,符合以太网最小帧长度。

wireshark抓包最大长度为1514字节(缺少4字节的FCS),实际为1518字节,与上图MTU+以太网帧头+FCS帧尾的总长度1518字节符合。

所以帧最小长度为64字节,最大长度为1518字节。

除去以太网帧头14字节,帧尾4字节,Data数据字段最小为46字节。

当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面填充数据以达到64字节。

由于填充数据是由MAC子层负责,也就是设备驱动程序。不同的抓包程序和设备驱动程序所处的优先层次可能不同。

抓包程序的优先级可能比设备驱动程序更高,也就是可能在驱动程序还未填充到64字节时,抓包程序已捕获到数据。

因此不同抓包工具抓到的数据帧大小可能不同,甚至小于64字节:

 

 

标签:FCS,字节,一之,流量,MAC,64,长度,以太网
From: https://www.cnblogs.com/wlhk/p/17173660.html

相关文章