进阶 #network#ethernet#mac#csma

MAC 协议与以太网(CSMA/CD)

以太网(Ethernet)是最成功的局域网技术——它使用 CSMA/CD 协议让多台计算机共享同一根网线,通过"先听后说,边说边听,冲突检测"的机制避免数据碰撞

多台电脑连在同一根线上——怎么不打架?

早期以太网是一个”总线”拓扑——所有电脑用同一根同轴电缆串起来,就像一根晾衣绳上挂了好几件衣服。

如果两台电脑同时在这根线上发送数据——信号就会碰撞,两边的数据都坏了。

怎么解决? 就像一群人围坐在圆桌讨论——不能所有人同时开口。

🏫 类比:圆桌讨论的”礼貌规则”

  • 先听:说话之前先听别人有没有在说(载波监听)
  • 再说:没人说了,你再开口(多点接入)
  • 边听边说:你说的时候也听着,如果有别人也开口了(冲突)——立刻闭嘴,等一会儿再试(冲突检测+退避)

这就是 CSMA/CD——载波监听多点接入/冲突检测。

CSMA/CD——详细流程

计算机 A 准备发送数据


① 监听信道是否空闲?
    │          │
  是           否 → 继续监听


② 开始发送数据,同时继续监听
    │          │
   ③ 检测到    没有检测到 →
   冲突?       数据发送完毕 ✅


④ 发送拥塞信号(让所有人知道出冲突了)


⑤ 等待随机时间(指数退避)


⑥ 重试(最多 16 次,不成功则丢弃)

指数退避——越堵越等

第一次冲突:等待 0~51.2µs 之间的随机时间 第二次冲突:等待 0~102.4µs 第三次冲突:等待 0~204.8µs …… 第 n 次冲突:等待 0~(2ⁿ × 51.2µs)

💡 指数退避的智慧:冲突说明网络繁忙,等待时间指数增长——避免”刚等完又冲突”的恶性循环。就像春运抢票——第一次抢不到,等一会儿再试;还抢不到,就多等一会儿,避免和所有人同时刷票。

从冲突到不冲突——交换机的革命

CSMA/CD 解决的是”一根线多人用”的问题。但今天你的电脑到交换机是独享一根网线——不会跟别人撞车。

古早以太网(10BASE5,1980s):
┌──┐  ┌──┐  ┌──┐  ┌──┐
│PC│  │PC│  │PC│  │PC│
└─┬┘  └─┬┘  └─┬┘  └─┬┘
  └─────┴─────┴─────┴── 同轴电缆
         ↑ 所有人挤在一根线上

现代以太网(1000BASE-T,2000s):
┌──┐    ┌──┐
│PC├─── │SW├─── 服务器
└──┘    │I │
┌──┐    │TC│
│PC├─── │H │
└──┘    └──┘
         ↑ 每台电脑独享线路到交换机
古早以太网(Hub)现代以太网(Switch)
拓扑总线(共享同一根线)星型(独享线到交换机)
工作模式半双工(同一时间只能一方发)全双工(双方同时收发)
CSMA/CD需要不需要
典型速度10Mbps1Gbps / 10Gbps / 100Gbps
冲突域一个——所有人冲突每个端口一个——不冲突

💡 所以 CSMA/CD 在今天已经几乎不再用了——但它是理解以太网”为什么这样设计”的关键历史背景。

以太网的演进——从 10Mbps 到 400Gbps

标准年份速度介质意义
10BASE5198010 Mbps粗同轴电缆以太网诞生——“粗缆”
10BASE-T199010 Mbps双绞线网线变细了,用 RJ-45 接口
100BASE-TX1995100 MbpsCat5 双绞线快速以太网——快 10 倍
1000BASE-T19991 GbpsCat5e 双绞线千兆到桌面——今天的主流
10GBASE-T200610 GbpsCat6a 双绞线数据中心标配
40GBASE-T/100GBASE-ER42010s40-100 Gbps光纤骨干网、大型数据中心
400GBASE-DR42020s400 Gbps单模光纤云数据中心

💡 你电脑上的网卡很可能是 1Gbps——但你的宽带可能只有 100Mbps。所以”网卡千兆、宽带百兆”是常见配置——内网传文件快,外网看带宽。

MAC 地址——网卡的”身份证号”

MAC 地址是烧录在网卡上的 48 位标识——就像你的身份证号,全球唯一。

格式:XX:XX:XX:YY:YY:YY
      ↑厂商代码  ↑设备编号

举例:00:1A:2B:3C:4D:5E

前 24 位(00:1A:2B)= 厂商编号(OUI)
  → 00:1A:2B = Intel
  → 00:23:5E = TP-Link
后 24 位(3C:4D:5E)= 该厂商分配的序列号
# 查看自己电脑的 MAC 地址
# Windows
ipconfig /all | find "物理地址"

# macOS/Linux
ifconfig | grep ether

# MAC 地址前 6 位查厂商
$ curl https://www.macvendorlookup.com/00:1A:2B
Vendor: Intel Corporate

小结

概念要点一句话
CSMA/CD先听再说、冲突检测、退避重试”先说先听,撞了就等”
以太网从总线到星型,从半双工到全双工最成功的局域网技术
MAC 地址网卡物理地址,48 位网卡的”身份证号”
全双工现代以太网,不需要 CSMA/CD双向车道不堵车
指数退避冲突后等待时间指数增长越堵越等

为什么先学这个? 以太网协议定义了数据在局域网上如何传输。但数据帧中的 MAC 地址只是”门牌号”,交换机怎么”学会”每个门牌号在哪个位置?下一节看看交换机与自学习