我认为最小值为 64 字节。为什么需要这个最小值?
答案1
快速阅读后,似乎它与 CSMA/CD 的碰撞检测部分有关。如果旧广播媒体上的帧太小,那么某些碰撞将无法检测到。今天继续我的汽车类比主题,这是出于同样的原因,我们不允许自行车在高速公路上行驶 - 这对它们来说不安全。
答案2
除了 mfinni 的(绝对正确的)答案之外,设置最小帧大小允许您花费多个接收周期来验证帧的校验和。在 Ye Olde Days,人们可以很容易地想象一个芯片每个周期处理一个位,但需要多个周期才能在与接收路径并行的专用路径上计算校验和。接收许多短消息可能会导致此校验和逻辑变得混乱,因为其中触发了多个同时发生的操作。丢弃任何低于特定大小阈值的内容可以让您以简单的方式避免此问题。
答案3
以太网设计用于在共享介质(以太!)上工作。发送者能够感知到他们用来驱动以太的信号与以太上的信号有何不同。
不幸的是,所有介质都有传播延迟(不幸的是,即使是光也以有限的速度传播)。
假设您发送了一个非常短的帧。要检测接收方是否在接收您的帧的同时传输,您必须等待他们发送的信号到达您,因此您必须等待/监听两倍的介质传播延迟,然后才能知道接收端是否发生了碰撞。
现在,您不仅可以在这段时间内聆听(发送静音),还可以继续发送一些有用的信息。
因此,该标准将最小帧大小设置为您可以在共享介质中以两倍最坏情况传播延迟发送的数据量。
因此,如果您因为大帧对于您的小消息感觉“未优化”而感到不满意,请将数据包中的额外空间视为寻找其他要发送内容的机会,否则您无论如何都必须发送零。
当然,在本地网络标准中还有许多其他方法可以处理冲突和传播延迟,但那就不是以太网了,我想我们都同意以太网非常棒。
答案4
64 字节的最小数据包长度不是任意数字。在 10Base5 物理层(“Fat Ethernet”同轴电缆,即最初指定的物理层之一,具有允许的最长电缆)中,最小数据包长度(以微秒为单位)是最大长度电缆往返时间的两倍,即 2500 米,由五个 500 米的段和四个中继器组成。这是为了确保从电缆两侧传输的数据包在电缆的每个点都完全碰撞,以便在所有节点中可靠地检测碰撞。
琐事:
- 这是安全开销最低金额的两倍
- 同轴电缆中的碰撞检测可以通过模拟电压比较器完成(因为碰撞的数据包会导致正常信号电压的两倍)
- 铜电缆中的电流速度约为每秒20万公里
- 10Base5 以太网中每个位在电缆中的长度为 20 米