前言
在介绍CSMA/CD原理文章中,我们知道为了确保发送站能在帧发送完毕前检测到冲突,以太网帧最小为64字节,那为什么帧最大为1518字节呢?本文深入分析这一限制背后的原因。

原因概述
以太网数据帧最大为 1518字节(不含前导码和帧起始定界符),主要是由于早期以太网设备的内存和缓存技术限制,以及为了确保稳定的冲突检测性能而设定的一个工程上的合理最大值。
详细分析
历史技术限制
在1980年代以太网标准制定时,计算机内存尤其是高速缓存非常昂贵且容量很小,网络接口卡和早期集线器/网桥的缓冲区有限。过大的数据帧需要设备有更大的缓冲区来存储和转发,这对当时的硬件来说是个沉重负担。因此最大帧长需要在性能和成本之间做务实的选择。
工程权衡
数据帧越大,数据负荷占帧长的比例越高,传输效率越高。然而在早期的共享式以太网中,一个站点发送帧时会独占信道。如果帧过长,其他站点需要等待很长时间才能发送数据,导致网络延迟增加和甚至出现“饿死”现象。因此最大帧长需要在保证一定传输效率和控制最大延迟之间的寻找一个平衡点。
另外在通信质量不如今天的早期网络中,传输过程帧出错是常事。如果一个巨大的帧在传输末尾出错,整帧都需要重传,浪费大量带宽。所有需要限制最大帧长,减少单次错误重传的数据量。
标准固化与兼容性
因为历史技术限制以及工程权衡,IEEE最终将最大帧长限制为1518字节,并写入 IEEE 802.3 标准,成为所有以太网设备必须遵守的规范,确保了不同厂商设备之间的互操作性。
虽然现在以太网技术快速发展出现10G、100G以太网交换技术,早期的技术限制不复存在,不过为了向后兼容老旧的以太网设备,这个限制仍被保留下来。
VLAN标签的扩展(1522字节)
需要注意的是,1518字节限制针对的是不带vlan标签的帧。当数据帧支持802.1Q VLAN时,会在源MAC地址和类型字段之间插入一个4字节的VLAN标签。这使得最大帧长从1518字节扩展到 1522字节。因此在《IEEE Std 802.1AB-2019.pdf》 和 《RFC3580.txt》 中明确区分了“untagged frame”(1518字节)和“tagged frame”(1522字节)。
巨型帧(Jumbo Frames)
随着技术发展,尤其是在千兆、万兆以太网及全双工交换环境中,为了提升传输效率(特别是存储网络),许多设备支持巨型帧,帧长突破1518字节限制,甚至可以达到9000字节。但这不是IEEE标准,需要网络设备两端手动启用并保持一致。
总结
以太网数据帧最大1518字节的规定,是早期网络硬件技术条件限制和工程上权衡传输效率、延迟、公平性及错误控制的结果。这个限制被IEEE标准固化,成为了以太网的基石,确保了数十年的设备兼容性。虽然在现代高速全双工网络中可以通过VLAN或巨型帧进行扩展,但1518字节作为默认和最基本的规范,至今仍是所有以太网设备必须遵守的准则,也是网络测试(如RFC 2544)中的标准帧长之一。
原创不易,你的支持是我最大的动力,欢迎大家点赞,收藏,关注!


