为什么以太网帧的 MTU 大小计算为 1500 字节?

网络工程 以太网 协议理论
2021-07-05 13:35:49

为什么以太网 MTU 计算为 1500 字节?

为达到 1500 字节以太网 MTU 进行了哪些具体计算,该计算考虑了哪些因素?

4个回答

答案在Draft-ietf-isis-ext-eth-01 的第 3-5 节中。以太网在以太网 II (DIX) 和 802.3 封装中使用相同的两个字节不同的方式:

  • 以太网 II 使用以太网源 mac-address 后的前两个字节作为类型
  • 802.3 使用相同的两个字节作为长度字段。

我在下面包含了每个帧类型的带注释的图表,它准确显示了冲突字节在以太网标头中的位置:

  • RFC 894(通常称为以太网 II 帧)将这些字节用于类型

        +----+----+------+------+-----+
        | DA | SA | Type | Data | FCS |
        +----+----+------+------+-----+
                  ^^^^^^^^
    
        DA      Destination MAC Address (6 bytes)
        SA      Source MAC Address      (6 bytes)
        Type    Protocol Type           (2 bytes: >= 0x0600 or 1536 decimal)  <---
        Data    Protocol Data           (46 - 1500 bytes)
        FCS     Frame Checksum          (4 bytes)
    
  • IEEE 802.3 with 802.2 LLC / SNAP(由 Spanning-Tree, ISIS 使用)使用这些字节作为长度

        +----+----+------+------+-----+
        | DA | SA | Len  | Data | FCS |
        +----+----+------+------+-----+
                  ^^^^^^^^
    
        DA      Destination MAC Address (6 bytes)
        SA      Source MAC Address      (6 bytes)
        Len     Length of Data field    (2 bytes: <= 0x05DC or 1500 decimal)  <---
        Data    Protocol Data           (46 - 1500 bytes)
        FCS     Frame Checksum          (4 bytes)
    

以太网 II 和 802.3 封装必须能够存在于同一链路上。如果 IEEE 允许以太网有效载荷超过 1536 字节(0x600 十六进制),那么将无法区分大的 802.3 LLC 或 SNAP 帧与以太网 II 帧;以太网的类型值从 0x600 十六进制开始。

编辑:

我提供了一个指向以太网版本 1 规范以太网版本 2 规范的pdf 副本的链接,以防万一有人感兴趣...

在范围的另一端 - 1500 字节,有两个因素导致了此限制的引入。首先,如果数据包太长,它们会给使用以太网电缆的其他流量带来额外的延迟。另一个因素是早期共享电缆收发器中内置的安全设备。这个安全装置是一个防胡言乱语系统。如果连接到收发器的设备出现故障并开始持续传输,那么它将有效地阻止任何其他流量使用该以太网电缆段。为了防止这种情况发生,早期的收发器被设计为在传输超过大约 1.25 毫秒时自动关闭。这相当于刚刚超过 1500 字节的数据内容。但是,由于收发器使用简单的模拟计时器在检测到杂音时关闭传输,因此选择 1500 限制作为不会触发安全设备的最大数据大小的安全近似值。

来源:http : //answers.yahoo.com/question/index?qid=20120729102755AAn89M1

当以太网最初被开发为具有 10Base5 和 10Base2 的共享介质或总线时,帧冲突是频繁发生的(在通过在电缆中钻一个水龙头来分叉信号的连接中,您还会期望什么)并且预期作为设计的一部分. 与今天相比,当大多数一切都使用单独的冲突域进行交换并运行全双工时,没有人希望看到冲突。

共享“以太”的机制采用CSMA/CD(载波侦听多路访问/冲突检测)

载波侦听意味着想要传输的站点必须监听线路——感知载波信号——以确保没有其他人在说话,因为它是在该介质上进行多路访问。Allowing 1500 bytes (though an arbitrary number as far as I can tell) was a compromise that meant a station could not capitalize the wire too long by talking too much at one time.一个帧中传输的字节越多,所有其他站必须等待传输完成的时间就越长。换句话说,更短的突发或更小的 MTU 意味着其他站有更多的机会进行传输和更公平的份额。传输介质的速率 (10Mb/s) 越慢,随着 MTU 的增加(如果允许超过 1500),站点将有更长的传输延迟。

一个有趣的推论问题是为什么最小帧大小为 64 字节? 帧在 512 位的“时隙”中传输,在介质中往返信号传播需要 51.2 微秒。站点不仅必须通过感测 IFG(96 位的帧间间隙)来侦听何时开始通话,而且还必须侦听与其他帧的冲突。碰撞检测假设最大传播延迟并将其加倍(为了安全起见),因此它不会错过大约在同一时间从电线另一端开始的传输或当有人忘记终端电阻时其自身传输的信号反射电缆的末端。站点在检测到冲突之前不能完成其数据的发送,因此等待 512 位或 64 字节可以保证这一点。

最初,最大。有效载荷在 802.3 中被定义为 1500 字节。以太网 v2 支持 >=1536 的帧长度,这是 IP 实现所使用的。如今,大多数运营商级供应商都支持大约 9000 字节(“巨型帧”)。由于 1500 字节是所有以太网实现必须支持的标准,因此这通常在所有接口上设置为默认值。