数据链路层——以太网帧结构

前言

       数据包在以太网物理介质上传播之前必须封装头部和尾部信息,封装后的数据包称为数据帧,数据帧中封装的信息决定了数据如何传输。
       以太网上传输的数据帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定

       

帧格式

以太网上使用两种标准帧格式。
第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。
第二种是1983年提出的IEEE 802.3格式。

在这里插入图片描述
       这两种格式的主要区别在于Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理,IEEE 802.3格式中,同样的位置是长度字段。

       
不同的Type字段值可以用来区别这两种帧的类型

  1. 当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。
  2. 当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。
  3. 以太帧中还包括源和目的MAC地址,分别代表发送者的MAC和接收者的MAC,此外还有帧校验序列字段,用于检验传输过程中帧的完整性。
           
Ethernet_II帧格式

Ethernet_II 帧类型值大于等于1536 (0x0600),以太网数据帧的长度在64-1518字节之间。
在这里插入图片描述

Ethernet_II的帧中各字段说明如下:

字段 含义
DMAC(Destination MAC) 目的MAC地址。
SMAC(Source MAC) 源MAC地址。
类型字段(Type) 用于标识数据字段中包含的高层协议。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0x0806的帧代表ARP协议帧。
数据字段(Data) 网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。
循环冗余校验字段(FCS) 提供了一种错误检测机制。

       

IEEE802.3帧格式

IEEE802.3帧长度字段值小于等于1500 (0x05DC)
在这里插入图片描述

       IEEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。Length字段定义了Data字段包含的字节数。

       逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成。

       SNAP(Sub-network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org Code三个字节都为0。Type字段的含义与Ethernet_II帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:
        1)当DSAP和SSAP都取特定值0xff时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据。
        2)当DSAP和SSAP都取特定值0xaa时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。
        3)DSAP和SSAP其他的取值均为纯IEEE802.3帧。

       

数据帧传输

数据链路层基于MAC地址进行帧的传输
在这里插入图片描述

       

以太网的MAC地址

MAC地址由两部分组成,分别是供应商代码和序列号。
其中前24位代表该供应商代码,由IEEE管理和分配;
剩下的24位序列号由厂商自己分配。

在这里插入图片描述
网络设备的MAC地址是全球唯一的,MAC地址长度为48比特,通常用十六进制表示

MAC地址包含两部分
       前24比特是组织唯一标识符(OUI,Organizationally Unique Identifier),由IEEE统一分配给设备制造商。
       后24位序列号是厂商分配给每个产品的唯一数值,由各个厂商自行分配(这里所说的产品可以是网卡或者其他需要MAC地址的设备)。

       

常问问题

网络设备如何确定以太网数据帧的上层协议?

       以太网帧中包含一个Type字段,表示帧中的数据应该发送到上层哪个协议处理。比如,IP协议对应的Type值为0x0800,ARP协议对应的Type值为0x0806。

终端设备接收到数据帧时,会如何处理?

       主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。
       如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,就会剥离帧头和帧尾,然后根据帧头中的Type字段来决定把数据发送到哪个上层协议进行后续处理

 
 
 
 
 
 
 
 
 
 
 
 
 
 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43522969/article/details/106166021