MAC 层的硬件地址

在局域网中,以下几个称呼是一样的:

  • 📌 硬件地址
  • 📌 物理地址
  • 📌 MAC 地址

48 位的 MAC 地址

✅ IEEE 的注册管理机构 RA 负责向厂家分配地址字段 6 个字节中的前三个字节 (即高位 24 位),称为组织唯一标识符

✅ 所以就只有 3 个字节能支配了,这 3 个字节由厂家支配,称为扩展唯一标识符,必须保证生产出的适配器没有重复地址。


❗ 生产适配器时,6 字节的 MAC 地址已被固化在适配器的 ROM,因此,MAC 地址也叫做硬件地址 (hardware address) 或物理地址。

所以无论你把它带到哪里去,或者把它砸了,烧了🔥,它的硬件地址还是不会变。


📕 下面介绍一下 IEEE 组织的一些规定:

  • IEEE 规定地址字段的 <mark>第一字节的最低位</mark> 为 I / G I/G I/G 位。 I / G I/G I/G 表示 I n d i v i d u a l / G r o u p Individual / Group Individual/Group
  • I / G I/G I/G = 0 = 0 =0 时,地址字段表示一个单站地址
  • I / G I/G I/G = 1 = 1 =1 时,表示组地址,用来进行多播

所以对于前三个字节,既然第一个字节的最后一位被占用了,就只能支配其余的 23 23 23 位了。

❗所有 48 位都为 1 时,为广播地址。只能作为目的地址使用。

📕 IEEE 又规定了!

  • IEEE 把地址字段第一字节的倒数第 2 2 2 位规定为 G / L G/L G/L 位,表示 G l o b a l / L o c a l Global / Local Global/Local
  • G / L G/L G/L = 0 = 0 =0 时,是全球管理。
  • G / L G/L G/L = 1 = 1 =1 时, 是本地管理。

❓ 那么有啥区别呢 ?

全球管理需要购买,本地管理用户自定义,不过以太网几乎不会去理会这个用户自定义的。

适配器检查 MAC 地址

🚀 适配器从网络上每收到一个 MAC 帧就首先用硬件检查 MAC 帧中的 MAC 地址,然后检查这个帧是否是下面的其中一种,如果不是就丢弃,如果是就收下然后转发。

  • 1️⃣ 单播 (unicast) 帧(一对一)
  • 2️⃣ 广播 (broadcast) 帧(一对全体)
  • 3️⃣ 多播 (multicast) 帧(一对多)

MAC 帧的格式

常用的以太网 MAC 帧格式有两种标准 :

  • D I X <mtext>   </mtext> E t h e r n e t <mtext>   </mtext> V 2 DIX \space Ethernet \space V2 DIX Ethernet V2 标准
  • I E E E 802.3 IEEE 的 802.3 IEEE802.3 标准

最常用的 M A C MAC MAC 帧是以太网 V 2 V2 V2 的格式。


我们来放大看一下:

  • 1️⃣ 首先是目的地址字段,占 6 个字节。

  • 2️⃣ 然后是源地址字段,也是 6 字节。

  • 3️⃣ 类型字段用来标志上一层使用的是什么协议,以便把收到的 M A C MAC MAC 帧的数据上交给上一层的这个协议。

  • 4️⃣ 数据字段的正式名称是 MAC 客户数据字段。
    最小长度 64 18 64 字节 - 18 字节 6418 的首部和尾部 = = = 数据字段的最小长度( 46 46 46 字节

  • 5️⃣ FSC 用于差错检测

❓ 其实你会发现从 M A C MAC MAC 层到物理层还会多出 8 8 8 个字节,那么这 8 8 8 个字节是啥呢?

在帧的前面插入(硬件生成)的 8 字节中,第一个字段共 7 个字节,是前同步码,用来迅速实现 M A C MAC MAC 帧的比特同步。第二个字段 1 个字节是帧开始定界符,表示后面的信息就是 MAC 帧。

📗 最后提一下与 I E E E <mtext>   </mtext> 802.3 <mtext>   </mtext> M A C IEEE \space802.3\space MAC 帧 IEEE 802.3 MAC 的区别:

  • IEEE 802.3 规定的 MAC 帧的第三个字段是“长度 / 类型”。
  • / 长度 / 类型 / 字段值小于 0 x 0600 0x0600 0x0600 时,数据字段必须装入上面的逻辑链路控制 LLC 子层的 LLC 帧。

帧间最小间隔为 9.6 μ s 9.6 \mu s 9.6μs,相当于 96 b i t 96 bit 96bit 的发送时间。
一个站在检测到总线开始空闲后,还要等待 9.6 μ s 9.6 \mu s 9.6μs 才能再次发送数据。