![为什么以太网 MTU 大小为 1500?](https://linux22.com/image/681950/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BB%A5%E5%A4%AA%E7%BD%91%20MTU%20%E5%A4%A7%E5%B0%8F%E4%B8%BA%201500%EF%BC%9F.png)
有人能解释一下为什么以太网最大传输单元被选为 1500 字节 (为什么正好是 1500) 吗? 这可能有一些历史原因。
答案1
设置数据包大小的上限有两个原因:
- 确保数据的可靠传输(较长的数据更容易被损坏,并且其 CRC 检测/纠正损坏的变化较低);
- 确保所有符合以太网标准的设备至少有 1500 字节的缓冲区来发送/接收数据包。
正如您所说,1500 字节的限制主要是出于历史原因;现代以太网可以很好地处理更大的帧大小。这就是为什么巨型帧在服务器级或者高端消费级以太网卡上实现。
答案2
谷歌搜索了一下,发现了这一点:
以太网帧具有 8 字节前导码、6 字节源和 6 字节目标 mac 地址、2 字节 mac 类型和 4 字节 CRC。假设 MTU 有效负载为 1500,则总字节数为 1500 + 8 + 6 + 6 + 2 + 4 = 1526 字节。现在,每个帧之间有 12 个字节的帧间间隙,这构成了每个帧之间 9.6 微秒的间隙。这很重要,这样帧就不会混淆。因此,从主机发出的每个帧的总大小为 1538 字节。
因此,在 10 Mbps 速率下,帧速率为 10 Mbps/1538 字节 = 812.74 帧/秒。
现在我们可以通过将帧速率乘以有效载荷的字节数来找到链路的吞吐量或效率,以传输 1500 字节的有效载荷。
因此效率 = 812.74 * 1500 * 8 = 9752925.xxxxx bps,效率为 97.5%(与 10 MBps 相比)
相当有趣并且解释得很好。