1. 以太网基础

千兆以太网,说白了就是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 千兆以太网的知识体系框架

千兆以太网知识体系框架 应用层数据 TCP/UDP + IP 封装 MAC 层 帧封装/解封装 前导码/定界符 MAC地址 / FCS CSMA/CD / 全双工 载波监听/冲突检测 帧间隙控制 流控 (PAUSE帧) 802.3x 流控 优先级流控 (PFC) 物理编码子层 (PCS) 8B/10B 编码 自动协商 PMA + PMD 物理介质 双绞线 (1000BASE-T) 多模光纤 (SX) 单模光纤 (LX) 同轴电缆 (CX)

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层搞定帧的收发。这两层没做好,上层再折腾也白搭。

我建议你把这章的知识点记在心里。后面章节深入排查具体瓶颈时,你会反复用到这些概念。