跳转到正文

世界上那么多网卡,怎么保证每个“身份证号”都不重样? ​

阶段 2 · 数据链路层 · 第 9 课

在第 8 课中,我们看到以太网帧头最醒目的就是 6 字节的目的 MAC 和 6 字节的源 MAC。日常生活中你可能在手机“关于本机”或电脑网卡属性里见过类似 54-89-98-1A-2B-3C 这样一串由连字符或冒号隔开的十六进制数字。

全球有上百亿台联网设备,为什么两块网卡出厂时绝不会撞号?如果一台主机想把一个文件发给全寝室所有人,难道要逐个填每个人的 MAC 连发四遍吗?

学完本课后,你将能够:

  1. 辨别 MAC 地址 的 48 位二进制与 12 位十六进制表示,说出前 24 位 OUI 与后 24 位的分工。
  2. 通过查看第 1 字节的最低位(I/G 位),瞬间判断一个 MAC 地址属于单播(Unicast)、组播(Multicast)还是广播(Broadcast)。
  3. 解释当全网广播帧(FF-FF-FF-FF-FF-FF)到来时,普通网卡硬件为何必须强制接收。

48比特MAC地址结构:前24位为厂商OUI,后24位为网络接口标识;第1字节最低位决定单播(0)或组播(1),48位全1为广播。

1. 先看图:MAC 地址的 48 位是怎么分配的? ​

MAC 地址(媒体访问控制地址,又称局域网物理地址或烧录地址 BIA)全长 48 个比特(6 个字节)。为了人类方便阅读,通常按每 8 位(1 个字节)转换成 2 位十六进制数,以连字符 -(如 Windows:54-89-98-1A-2B-3C)或冒号 :(如 Linux / macOS:54:89:98:1a:2b:3c)或者点分四位(如华为交换机:5489-981a-2b3c)呈现。

这 48 个比特被整齐地切分成两半(如上图):

① 前 24 个比特:组织唯一标识符(OUI) ​

  • 由国际标准组织 IEEE 统筹管理。任何生产网卡、交换机、手机或 Wi-Fi 芯片的厂商(如华为、Intel、Apple),都必须向 IEEE 申请付费注册专属的代码,称为 OUI(Organizationally Unique Identifier)。
  • 例如:54-89-98 是华为常用的 OUI 代码之一;00-1A-A0 属于戴尔;00-50-56 属于 VMware 虚拟机网卡。
  • 只要看到一个 MAC 的前 3 个字节,就能在 IEEE 官方数据库中查出这是哪家厂商造的设备!

② 后 24 个比特:扩展标识符(接口序列号) ​

  • 由获得 OUI 的厂商自主管理分配。厂商给每块刚走下流水线的网卡、光模块或手机无线芯片烧录一个互不重复的序列号。
  • 224=16,777,216:每个 OUI 可以支持厂商生产超过一千六百万块独一无二的网卡!用完后厂商再向 IEEE 申请新的 OUI 代码即可。
  • 全球唯一性保障:前 24 位厂商唯一 + 后 24 位产品唯一 = 全球每张以太网网卡拥有世界上独一无二的物理身份证号!

2. 三种寻址类型:单播、组播与广播 ​

以太网帧头里的目的 MAC 地址,决定了这一帧在局域网里的递送范围。按照接收对象的不同,通信分为三种模式:

寻址类型日常生活类比目的 MAC 地址的二进制与十六进制特征典型应用场景
单播(Unicast)(点对点)像寄私人快递:包裹上写着具体的门牌号,只有收件人拆件第 1 字节的最低位(I/G 位)为 0
(例:54-89-98-xx-xx-xx,因 0x54 二进制为 01010100)
两个人微信私聊、电脑下载文件、网页浏览
组播(Multicast)(点对多点)像订阅特定电台:只有调到该频道的收音机才会出声第 1 字节的最低位(I/G 位)为 1
(例:IPv4 组播固定为 01-00-5E-xx-xx-xx,0x01 最低位为 1)
OSPF 路由协议交换路由、IPTV 电视直播流、视频会议
广播(Broadcast)(点对全网)像村口大喇叭广播:全村所有人都会听到喇叭里放的内容所有 48 个比特全部为 1
即十六进制固定的 FF-FF-FF-FF-FF-FF
ARP 询问局域网谁有某个 IP、DHCP 电脑刚开机申请 IP

核心考点:I/G 位与 G/L 位 ​

观察 MAC 地址第 1 个字节的 8 个比特(记为 b7b6b5b4b3b2b1b0):

  • 最低位 b0:I/G 位(Individual / Group,单播/组播位)
    • b0=0:单播地址(Individual),代表单张物理网卡。
    • b0=1:组播/广播地址(Group),代表一组设备或全网设备。
  • 次低位 b1:U/L 位(Universal / Local,全局/本地位)
    • b1=0:全局唯一地址(Universal),由 IEEE 官方注册分配。
    • b1=1:本地管理地址(Locally Administered),管理员手工在系统里随意改写的 MAC 地址。

一秒速算法:怎么一眼看出是不是单播? ​

看 MAC 地址第 1 字节的第 2 个十六进制字符(例如 54-xx-xx 中的 4,或 01-xx-xx 中的 1):

  • 如果该字符转换为二进制后末尾是 0(即字符为 0, 2, 4, 6, 8, A, C, E):必定是单播 MAC!
  • 如果该字符末尾是 1(即字符为 1, 3, 5, 7, 9, B, D, F):必定是组播或广播 MAC!

课后巩固 · 练习 · 单选

以下给出的四个以太网 MAC 地址中,哪一个是用于单播通信的网卡物理地址?

3. 网卡硬件是怎样过滤数据帧的? ​

当网线上的电信号被还原成一个以太网帧后,网卡芯片的 MAC 控制器硬件会立即抓取帧头的 6 字节“目的 MAC”,执行极速的三道门禁过滤:

  1. 第一道门:匹配自己的物理 MAC?
    • 目的 MAC 与本机网卡烧录的单播 MAC 完全相同 → 放行!
  2. 第二道门:匹配全网广播 FF-FF-FF-FF-FF-FF?
    • 目的 MAC 全是 F → 放行!因为这是局域网全体通知,本机有义务听取。
  3. 第三道门:匹配本机加入的组播组 MAC?
    • 本机操作系统配置了加入某组播组(如 OSPF 路由器加入 01-00-5E-00-00-05)且匹配命中 → 放行!
  4. 以上皆不匹配:
    • 硬件直接静默扔进废纸篓!
    • 这一步完全在网卡硬件芯片内以纳秒级完成,不需要惊动主机的 CPU 和内存,极大地节省了系统性能。

黑客与抓包神器(混杂模式 Promiscuous Mode): 为什么你在电脑上打开 Wireshark 可以抓到局域网里别人的通信?因为 Wireshark 会通知操作系统把网卡设为“混杂模式”。在这种模式下,网卡故意关闭了上述三道门禁过滤,把线上经过的每一个帧统统呈报给操作系统,供网络分析人员诊断排障。

课后巩固 · 练习 · 单选

当交换机的一个端口收到一个目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的广播以太网帧时,交换机会执行什么动作?

4. 小结与下一步 ​

  • MAC 结构:48 位二进制,前 24 位为厂商 MAC 地址(OUI),后 24 位由厂商分配,确保全球唯一。
  • 三种类型:看第 1 字节最低位,0 为单播(Unicast),1 为组播(Multicast);48 位全 1(FF-FF-FF-FF-FF-FF)为全网广播(Broadcast)。
  • 硬件过滤:网卡只接收目标是自己、广播或已加入组播的帧,其余无关帧在硬件层丢弃。

现在我们有了目的 MAC 地址,但如果一个办公室里有 20 台电脑同时插在同一台以太网交换机上,交换机内部到底根据什么表项,才能把电脑 A 发往电脑 B 的帧,精准地只送给电脑 B,而不干扰其他人?下一课我们拆开现代局域网的心脏——以太网交换机的工作原理。