4、以太网协议实战:从帧格式到STP,把二层网络吃透
以太网,说白了就是咱们局域网里最底层的“运输工”。你发的每一个包,最终都得塞进以太网帧里,才能在网线、光纤里跑。今天咱们就把这个“运输工”的里里外外扒干净——帧格式、交换机怎么干活、VLAN怎么隔离、STP怎么防环。嗯,都是实战里天天碰的东西。
4.1 以太网帧格式:先看懂“信封”长什么样
一个以太网帧,就像一封信。你得知道信封上写什么,收发室(网卡)才能正确投递。
目前最常用的是 Ethernet II 帧格式(也叫DIX帧)。我刚开始抓包时,老把它的字段和802.3搞混,后来踩了个坑才彻底记住。
| 字段 | 长度(字节) | 说明 |
|---|---|---|
| 前导码(Preamble) | 7 | 同步时钟用,实际抓包看不到 |
| 帧起始定界符(SFD) | 1 | 标记帧正式开始 |
| 目的MAC地址 | 6 | 谁收这封信 |
| 源MAC地址 | 6 | 谁发的 |
| 类型/长度(Type/Length) | 2 | Ethernet II 用类型(如0x0800=IP),802.3用长度 |
| 载荷(Payload) | 46~1500 | 上层数据,不够46字节要填充 |
| 帧校验序列(FCS) | 4 | CRC校验,算错了就丢帧 |
为什么最小载荷是46字节?因为整个帧(从目的MAC到FCS)最少要64字节,这是CSMA/CD协议定的。小于64字节的帧叫“碎片帧”,交换机直接丢弃。我曾经在调试一个嵌入式网卡时,发现它发的包只有60字节,结果对端交换机死活不认——嗯,后来加了填充字节才搞定。
4.2 交换机工作原理:它怎么知道把帧往哪扔?
交换机不是傻瓜式广播。它内部维护着一张 MAC地址表,也叫CAM表。这张表记录了“哪个MAC地址在哪个端口上”。
工作流程其实就三步:
- 学习:收到一个帧,看源MAC,把MAC和入端口记下来。
- 转发:查目的MAC,如果表里有,就从对应端口发出去(单播)。
- 泛洪:如果表里没有,或者目的MAC是广播地址(FF-FF-FF-FF-FF-FF),就从所有端口(除了入端口)发出去。
核心要点: 交换机是“二层设备”,它不关心IP地址,只看MAC。所以ARP广播会在交换机内部被泛洪到所有端口——这也是VLAN要出现的原因之一。
MAC地址表是有老化时间的,默认300秒。如果某个设备下线了,表项到期就会被删除。我记得有一次排查一个间歇性丢包问题,发现是某台服务器频繁更换网卡,MAC地址变了,但交换机表里还留着旧记录——清一下CAM表就好了。
4.3 VLAN技术基础:把一台交换机掰成好几台
为什么需要VLAN?你想想看,一个公司里,财务部和研发部都在同一个二层网络里。财务部的广播包,研发部也能收到。这不安全,也浪费带宽。
VLAN(虚拟局域网)就是干这个的。它把一个物理交换机,逻辑上切成多个独立的广播域。不同VLAN之间默认不通,要通信必须走三层路由。
VLAN的帧格式,是在标准以太网帧里插了个 802.1Q标签,共4字节:
| 字段 | 长度(位) | 说明 |
|---|---|---|
| TPID | 16 | 固定0x8100,表示这是带标签的帧 |
| 优先级(PCP) | 3 | QoS用,0~7 |
| CFI/DEI | 1 | 规范格式指示,一般置0 |
| VID | 12 | VLAN ID,范围1~4094,0和4095保留 |
插了标签后,帧的最大长度从1518字节变成1522字节。有些老旧设备会把这个当成“超长帧”丢掉——我早年在一个监控项目里就遇到过,摄像头和交换机之间因为MTU不匹配,画面一直卡顿,后来发现是交换机不支持802.1Q的巨型帧。
4.4 生成树协议(STP)入门:别让网络绕成死环
冗余是好事。你给交换机之间连了两条线,一条断了还有另一条。但问题来了——如果网络里有环,广播帧就会在环里无限转发,最终把带宽吃光,这叫“广播风暴”。
STP(生成树协议)就是来解决这个问题的。它的核心思想:逻辑上切断冗余链路,只留一条无环的树形路径。当主链路断了,再自动恢复被切断的链路。
STP的工作过程,我习惯用“选举”来理解:
- 选举根桥:所有交换机里,桥ID(优先级+MAC)最小的那个成为根桥。
- 选举根端口:每台非根桥上,到根桥路径开销最小的端口。
- 选举指定端口:每条链路上,离根桥更近的那个端口。
- 阻塞剩余端口:既不是根端口也不是指定端口的,就进入阻塞状态。
端口状态变化有5个:阻塞→监听→学习→转发→禁用。这个过程要30~50秒。嗯,这就是为什么你插上网线后要等一会儿才能上网。
避坑指南: 我曾经在一个数据中心里,因为STP收敛太慢,导致虚拟机迁移时网络中断超过1分钟。后来换用了RSTP(快速生成树),收敛时间缩短到1~2秒。如果你的网络对中断敏感,别用经典STP,直接上RSTP或MSTP。
4.5 本章知识体系总览
下面这张图,把咱们今天讲的核心逻辑串起来了。从帧格式到交换机转发,再到VLAN隔离和STP防环,每一步都是环环相扣的。
4.6 本章小结
以太网协议,看着基础,但坑不少。我见过太多人把帧格式背得滚瓜烂熟,一到排查问题就抓瞎。记住:帧格式是死的,但网络是活的。你真正需要理解的是——交换机怎么用这些字段做决策,VLAN怎么改变广播域,STP怎么在冗余和防环之间找平衡。
下次你在办公室插网线等那几十秒的时候,可以想想:嗯,STP正在选举根桥呢。