进阶 #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 | 需要 | 不需要 |
| 典型速度 | 10Mbps | 1Gbps / 10Gbps / 100Gbps |
| 冲突域 | 一个——所有人冲突 | 每个端口一个——不冲突 |
💡 所以 CSMA/CD 在今天已经几乎不再用了——但它是理解以太网”为什么这样设计”的关键历史背景。
以太网的演进——从 10Mbps 到 400Gbps
| 标准 | 年份 | 速度 | 介质 | 意义 |
|---|---|---|---|---|
| 10BASE5 | 1980 | 10 Mbps | 粗同轴电缆 | 以太网诞生——“粗缆” |
| 10BASE-T | 1990 | 10 Mbps | 双绞线 | 网线变细了,用 RJ-45 接口 |
| 100BASE-TX | 1995 | 100 Mbps | Cat5 双绞线 | 快速以太网——快 10 倍 |
| 1000BASE-T | 1999 | 1 Gbps | Cat5e 双绞线 | 千兆到桌面——今天的主流 |
| 10GBASE-T | 2006 | 10 Gbps | Cat6a 双绞线 | 数据中心标配 |
| 40GBASE-T/100GBASE-ER4 | 2010s | 40-100 Gbps | 光纤 | 骨干网、大型数据中心 |
| 400GBASE-DR4 | 2020s | 400 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 地址只是”门牌号”,交换机怎么”学会”每个门牌号在哪个位置?下一节看看交换机与自学习。