2.7 以太网的 MAC 层
欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅!
文章目录
- 前言
- 1 MAC 层的硬件地址
- 1.1 硬件地址概述
- 1.2 MAC 地址的分配
- 1.3 MAC 地址的分类
- 1.4 全球管理与本地管理
- 1.5 适配器的过滤功能
- 2 MAC 帧的格式
- 2.1 MAC 帧字段详解
- 2.2 无效的 MAC 帧
前言
在计算机网络中,MAC 层(介质访问控制层)用于定义设备在局域网上的唯一标识符,并规范帧的格式和传输规则。本文将详细介绍 MAC 层硬件地址的定义、分类及特点和常见的 MAC 帧格式及其各字段的含义。
1 MAC 层的硬件地址
1.1 硬件地址概述
硬件地址(MAC 地址)又称为物理地址,用于标识局域网上的每台计算机。
IEEE 802 标准规定了局域网中设备使用的全球唯一的 48 位地址(即 MAC 地址),每台设备的适配器上都固化了一个这样的地址。
在适配器的 ROM(只读存储器)中,保存了 MAC 地址的二进制编码,使其在网络中具有唯一性。
注意:如果主机或路由器上安装有多个网络适配器,那么该设备会有多个 MAC 地址。更准确地说,MAC 地址是某个网络接口的唯一标识符。
1.2 MAC 地址的分配
IEEE 的注册管理机构(RA)负责向厂家分配 MAC 地址的前 3 个字节(高 24 位),称为 组织唯一标识符(OUI, Organizationally Unique Identifier)。
厂商在生产适配器时,根据分配的 OUI 自行指定后 3 个字节(低 24 位),称为 扩展标识符(extended identifier)。该分配方式确保每个适配器的 MAC 地址唯一,不会与其他设备冲突。
1.3 MAC 地址的分类
根据 IEEE 802 标准,MAC 地址可分为单站地址、组地址和广播地址,分别用于不同的通信模式:
- 单站地址:I/G(Individual/Group)位为 0,用于一对一的通信。
- 组地址:I/G 位为 1,用于多播通信,即将数据发送给一组指定的主机。
- 广播地址:所有 48 位都为 1(即全 1),用于一对全体的通信,仅能作为目的地址使用。
1.4 全球管理与本地管理
IEEE 还规定了 MAC 地址的 G/L(Global/Local)位:
- 全球管理地址:G/L 位为 0,表示厂商向 IEEE 购买的 OUI,属于全球管理。
- 本地管理地址:G/L 位为 1,表示用户可以自行在网络中分配的地址,属于本地管理。
1.5 适配器的过滤功能
以太网适配器具有帧过滤功能。每当接收到一个 MAC 帧时,适配器会先检查帧的 MAC 地址。
如果该帧的目标地址匹配适配器的 MAC 地址(或是广播、多播地址),适配器才会接收并处理该帧,否则将丢弃。
发往本站的帧 包括以下三种类型:
- 单播(Unicast)帧:发送到指定目标的帧 (一对一)。
- 广播(Broadcast)帧:发送给所有网络设备的帧 (一对全体)。
- 多播(Multicast)帧:发送给某一组特定设备的帧 (一对多)。
除此之外,适配器在 混杂模式 下,可以接收网络上传输的所有帧,无论帧的目标地址为何。该模式多用于网络分析和监控。
2 MAC 帧的格式
MAC 帧是以太网传输的基本单位,不同的标准对 MAC 帧格式有不同的定义。常用的以太网 MAC 帧格式有两种标准:
- DIX Ethernet V2 标准
- IEEE 802.3 标准
目前市场上流行的主要是以太网 V2 格式的 MAC 帧,通常也被称为 IEEE 802.3 标准的 MAC 帧。
2.1 MAC 帧字段详解
①目的地址字段:标识 MAC 帧的接收设备。
②源地址字段:标识发送该帧的设备。
③类型字段:标识上层协议类型,以便 MAC 层将数据帧上交给对应的协议处理。
④数据字段:即 MAC 客户数据字段,承载实际的数据内容。最小帧长度为 64 字节(包括 18 字节的首部和尾部),因此数据字段的最小长度为 46 字节。
⑤FCS 字段(帧校验序列):用于检测帧传输过程中的差错。
当数据字段的长度小于 46 字节时,会在后面加入填充字段,以保证 MAC 帧长度不小于 64 字节。
2.2 无效的 MAC 帧
在以下情况下,MAC 帧会被视为无效并丢弃:
- 帧的长度不是整数个字节
- 数据字段的长度与长度字段的值不一致
- 使用 FCS 进行帧校验时检测到差错
- 数据字段的长度不在 46 ~ 1500 字节之间
以太网不负责重传丢弃的帧。