第1章 以太网基础:从物理层到MAC层
千兆以太网,说白了就是1Gbps的以太网。你可能会觉得,这不就是比百兆快十倍吗?嗯,但事情远没那么简单。
我刚开始做网络运维那会儿,遇到过一台服务器明明接了千兆口,但实际吞吐死活跑不满。折腾了半天,最后发现是网线质量不行——连物理层都没过,谈什么性能优化?
1.1 千兆以太网的标准与物理层
千兆以太网的标准是IEEE 802.3z(光纤)和IEEE 802.3ab(双绞线)。这两个标准定义了物理层的信号机制。
核心要点:千兆以太网使用8B/10B编码,把8位数据编码成10位信号,目的是平衡直流分量、方便时钟恢复。有效速率是1 Gbps,但线路上实际信号速率是1.25 Gbps。
为什么会这样?因为多了25%的冗余嘛。很多人会忽略这个细节——你千兆网卡的端口速率实际工作在125 MHz,而不是100 MHz。我曾经见过一个团队在排查吞吐问题时,一直以为端口协商到的1000 Mbps就是传送速率上限,其实真正的物理信号速率要高出一截。
物理层的主要子层
- PCS(物理编码子层):负责8B/10B编码,以及自动协商
- PMA(物理介质连接子层):完成串行化/解串行化(SerDes)
- PMD(物理介质相关子层):处理电信号或光信号的收发
你想想看,一个数据包从上层的TCP/IP堆栈下来,经过MAC层,再到PCS、PMA、PMD,最终变成电信号或光信号飞出去。这条路一旦有哪段出问题,吞吐肯定上不去。
注意:不要以为千兆网卡连上交换机就万事大吉。物理层的信号质量直接决定你能否跑满线速。我遇到过一些劣质网线,百兆能跑,千兆就丢包——因为千兆对信号完整性要求高得多。
1.2 MAC层与帧格式
MAC层是数据链路层的下半部分。它负责:帧的封装与解封装、介质访问控制(CSMA/CD)、以及差错检测。
到了千兆以太网这里,有个重要的变化——全双工模式成为主流。在全双工下,CSMA/CD基本上不需要了,因为收发走不同的信道,不存在冲突问题。我个人习惯在排查吞吐瓶颈时,第一件事就是检查端口是否运行在全双工模式。
标准以太网帧格式(IEEE 802.3)
+-------------+--------+--------+------+--------+------------+
| 前导码(7B) | SFD(1B) | 目的MAC(6B) | 源MAC(6B) | 长度/类型(2B) |
+-------------+--------+--------+------+--------+------------+
| 数据(46-1500B) | FCS(4B) |
+-------------------+---------+
前导码和帧首定界符(SFD)是物理层加上的,MAC层不关心。真正影响吞吐的是:帧间隙(IFG)和帧的最小/最大长度。
经验之谈:千兆网的帧间隙只有96 bit time,也就是96纳秒。如果网卡或交换机的MAC层处理不及时,就会丢帧。我在测试中发现,某些廉价网卡在小包场景下(64字节)连线速的50%都跑不到,原因就是MAC层没法在96纳秒内完成帧处理。
1.3 千兆以太网的知识体系框架
1.4 千兆以太网 vs 快速以太网的关键差异
| 对比项 | 快速以太网 (100Mbps) | 千兆以太网 (1000Mbps) |
|---|---|---|
| IEEE 标准 | 802.3u | 802.3z / 802.3ab |
| 编码方式 | 4B/5B | 8B/10B |
| 线缆要求 | CAT5及以上 | CAT5e及以上 (铜缆) |
| 时钟频率 | 25 MHz | 125 MHz |
| 默认最大传输距离 | 100 m (铜缆) | 100 m (铜缆) / 550 m (多模光纤) / 5 km (单模光纤) |
| 全双工支持 | 可选 | 标准功能 |
你可能注意到了,千兆以太网在时钟频率和编码方式上都做了改变。这不只是线速翻10倍那么简单——它对信号完整性的要求高了一个数量级。
勘误小技巧:如果你在排查吞吐瓶颈时发现端口协商到1000Mbps但实际吞吐只有几百M,先看物理层:网线质量、接口是否松动、电磁干扰。我曾经有个项目,千兆网卡死活只能跑300M,最后发现是机柜内的网线太多被绑在一起,串扰太大。换了几根成品跳线,直接拉满到950M。
1.5 MAC层与全双工模式
千兆以太网在全双工模式下,发送和接收可以同时进行。这意味着理论吞吐可以接近2 Gbps(1 Gbps发送 + 1 Gbps接收)。但现实嘛,通常打八折。
我见过太多案例——交换机端口协商成半双工,结果吞吐直接掉到500M左右。嗯,这里要注意,检查端口双工模式应该成为网络调优的标准操作。
帧间隙与吞吐的关系
标准帧间隙是96 bit time。千兆网下,这就是96纳秒。如果你在抓包时发现帧间隙异常变大(超过120纳秒),说明MAC层处理有瓶颈。或者交换机的缓存满了,在主动做流控。
避坑指南:我曾经遇到过一例——某品牌交换机开启了EEE(节能以太网)功能,结果千兆端口的帧间隙被拉长到几百纳秒,吞吐直接掉到700M。关闭EEE后恢复。所以,在生产环境排查吞吐问题时,记得看一眼EEE是否开启。
1.6 收尾的一点体会
千兆以太网的基础,说到底就是物理层和MAC层。物理层搞定信号,MAC层搞定帧的收发。这两层没做好,上层再折腾也白搭。
我建议你把这章的知识点记在心里。后面章节深入排查具体瓶颈时,你会反复用到这些概念。