1. 引言

如今,许多组织都在生产、分销和销售与网络相关的硬件,例如无线网卡或以太网卡。这些硬件最终会安装在计算机上,使其能够通过网络进行通信。那么问题来了:如何识别在特定网络通信中涉及的是哪一块硬件?

答案就在于 MAC 地址(Media Access Control Address)。 MAC 地址用于唯一标识网络中的设备。不过,MAC 地址的生成并不是随意的,它遵循特定的协议,并考虑了多个技术细节。

本文将带你深入了解 MAC 地址。我们先从基础概念讲起,然后探讨 MAC 地址的格式、组成以及它与 IP 地址的区别,最后进行总结。

2. MAC 的基础概念

MAC(Media Access Control)是一种用于标识网络硬件的地址机制。 这些地址是唯一的,也就是说,全球范围内没有两台设备拥有相同的 MAC 地址。这使得我们可以精确地判断哪块硬件发出了某个网络帧(frame),以及哪块硬件应该接收它。

需要注意的是,MAC 地址是一种物理地址。它不仅在硬件层面被烧录在每块网卡(NIC)中,也在逻辑层面被用于网络通信。

在现代网络中,MAC 地址主要用于 OSI 模型的第二层(数据链路层,特别是在 MAC 子层)和 TCP/IP 模型的第一层(网络接口层)。✅ 所以无论采用哪种模型,MAC 地址都处于网络层之前的那一层。

3. 深入理解 MAC 地址格式

MAC 地址由 6 个字节(共 48 位)组成,每个字节以十六进制表示。 每个字节为两位十六进制数(00 到 FF),通常表示为:

xx:xx:xx:xx:xx:xx

MAC 地址主要由两部分组成:

  • 前三个字节: 厂商识别码(OUI,Organizationally Unique Identifier)
  • 后三个字节: 厂商自行分配的唯一设备编号

在第一个字节中,有两个特殊的控制位:

  • 第 0 位(I/G 位): 表示该地址是单播(unicast)还是多播(multicast)

    • 0 表示单播(一对一通信)
    • 1 表示多播(一对多通信)
  • 第 1 位(U/L 位): 表示该地址是全局管理(universally administered)还是本地管理(locally administered)

    • 0 表示由厂商分配(出厂地址)
    • 1 表示由软件或系统管理员自定义(覆盖出厂地址)

下图展示了 MAC 地址的结构组成:

MAC Format

此外,不同操作系统显示 MAC 地址的格式可能不同:

系统 示例格式
Windows 00-1A-2B-3C-4D-5E
Linux/macOS 00:1A:2B:3C:4D:5E
Cisco 001A.2B3C.4D5E

4. MAC 地址与 IP 地址的区别

我们已经知道,MAC 地址用于标识网络中的具体设备。在网络通信中,帧头中会包含源 MAC 和目标 MAC 地址。那么问题来了:既然 MAC 地址可以唯一标识设备,为什么还需要 IP 地址?

IP 地址虽然也用于标识网络实体,但它与 MAC 地址有本质区别:

IP 地址标识的是网络中的“位置”或“实体”,而非设备本身。
IP 地址是可变的,而 MAC 地址是固定的。

我们可以用一个类比来帮助理解:

你给朋友写信时,信封上需要写上收件人的地址和姓名。地址告诉邮递员该把信送到哪里,而姓名则告诉邮递员该把信交给谁。朋友搬家了,地址会变,但名字不会变。

在这个类比中:

  • MAC 地址 = 收件人姓名(唯一、不变)
  • IP 地址 = 收件人地址(可变、与位置相关)

4.1 MAC 与 IP 在通信中的协作机制

虽然 MAC 地址用于本地通信,但 IP 地址用于跨网络通信。只有同一局域网内的设备才了解彼此的 MAC 地址。

通信过程大致如下:

  1. 源设备只知道目标 IP 地址,不知道 MAC 地址
  2. 它将数据帧发送给默认网关(通常是路由器)
  3. 网关根据目标 IP 地址,将数据转发到目标网络
  4. 目标网络的网关再根据 IP 查找对应的 MAC 地址,最终将数据传送到目标设备

在整个传输过程中,IP 地址始终不变,而 MAC 地址每经过一个网关都会变化。

下图展示了 MAC 和 IP 地址在跨网络通信中的协作过程:

MACIP2

5. 总结

本文我们深入探讨了 MAC 地址的基本概念、格式组成,以及它与 IP 地址的区别和协作机制。

MAC 地址是现代网络通信的基础之一。 它唯一标识网络设备,使得设备可以在局域网内进行通信。

⚠️ 小贴士: 在进行网络调试或安全分析时,了解 MAC 地址的格式和作用非常关键,尤其是在排查 ARP 欺骗、设备识别等问题时。

MAC 地址是硬件层面的“身份证号码”,而 IP 地址是网络层面的“快递地址”,两者缺一不可,共同构成了现代网络通信的基础架构。


原始标题:Understanding MAC Addresses