💻 第九章 通过七个简单的实验理解TCP/IP网络
📄 一句话概括

MAC 地址是网卡的出厂编号:48 位、12 个十六进制数、全球唯一——前 3 字节是厂商标识,用 ipconfig /all 现场看。

📝 本节和前面几节的关系

实验开始。第一件事是认识自己:网卡是谁、编号多少——MAC 地址就是网卡的身份证。

一、MAC 地址是什么

MAC 地址(媒体访问控制地址)是烧在网卡里的出厂编号,全称里那台【媒体】就是网络这摊事; 长度 48 位=6 字节,习惯写成 12 个十六进制数、两两一杠:A4-BB-6D-3E-7F-21; 理论上全球没有两块网卡同号——前 3 字节是厂商标识(OUI,查表能查到厂商),后 3 字节厂商自己编号。

二、实验怎么做

命令提示符跑 ipconfig /all,找【物理地址】一行——那就是 MAC; 同一行还能看到网卡描述、是否 DHCP 等信息——实验 3 的素材也在这份输出里; 一台电脑多块网卡(有线、无线、虚拟网卡)就有多行——每块网卡各有各的 MAC。

三、MAC 的用处

MAC 管同一局域网内的投递:数据帧在本网段送来送去,靠的是 MAC 对号; 但出了本网段它就无能为力——所以叫【门牌号是 IP,身份证是 MAC】:出了小区看门牌,身份证永远跟人走; 两号怎么配合,9.8 的 ARP 表会给出实证,23 课把这套分工讲到帧级细节。

四、动手 Demo:ipconfig /all 与 MAC 拆解

模拟一份 ipconfig /all 的关键输出,再把 MAC 地址拆成两段看含义。

mac = "A4-BB-6D-3E-7F-21"
parts = mac.split("-")
print("字节数:", len(parts))
print("总位数:", len(parts) * 8)
print("厂商段:", "-".join(parts[:3]))
print("自编号:", "-".join(parts[3:]))

实跑输出:

--------------------------------------------------------------------
实验 1——查看网卡的 MAC 地址
--------------------------------------------------------------------

MAC 地址是网卡的出厂编号, 烧在网卡里。跑 ipconfig /all:

    以太网适配器 以太网:
        物理地址. . . . . . . . . . : A4-BB-6D-3E-7F-21
        IPv4 地址. . . . . . . . . : 192.168.1.100

把 A4-BB-6D-3E-7F-21 拆开看:

  部分         长度          含义
  -----------------------------------------------------------------
  A4-BB-6D     前 3 字节     厂商标识(OUI), 查表就知道是谁家的网卡
  3E-7F-21     后 3 字节     厂商给这块网卡的自编号

    6 字节 = 48 位 = 12 个十六进制数——理论上全球没有两块网卡同号。
MAC 管【同一局域网内的投递】: 门牌号是 IP, 身份证是 MAC——
出了小区门牌就不管用了, 身份证跟着人走。

6 字节=48 位=12 个十六进制数——三种数法说的是同一个编号。 【⚠️ 2026 现状】手机、电脑的 MAC 可以【随机化】保护隐私(连 Wi-Fi 时用假 MAC)——【全球唯一不可改】的老结论要打个补丁。

30 秒实验

  1. 跑 ipconfig /all 找到物理地址,对照前 3 字节查一查你的网卡是哪家厂商。
  2. 数一数你电脑上有几块网卡(含无线与虚拟网卡),各有几个 MAC。

常见误区

  1. 以为 MAC 和 IP 是一回事——MAC 是网卡出厂编号(本段投递),IP 是网络分配的门牌(全局定位)。
  2. 以为 MAC 永远不可改——现代系统支持随机化 MAC,【唯一】靠的是出厂规矩不是硬件锁。
自测三问(点开对答案) 1. MAC 地址多长、怎么书写? —— 48 位=6 字节,12 个十六进制数两两一杠。 2. 前 3 字节和后 3 字节各是什么? —— 前 3 字节厂商标识(OUI),后 3 字节厂商自编号。 3. MAC 管哪一段的投递? —— 同一局域网内——出了本网段就靠 IP。

相关笔记