也许最好问电子工程师,因为它可能与物理层的某些事情有关,而不是与编程有关。但是我们都是用户以太网,我知道最小帧大小是64字节,但是我从来没有问过为什么会这样。到现在!有人可以帮我吗?为什么它必须是64个字节长?
因为早期的以太网基础设施使用半双工通信(集线器而不是交换机,共享介质而不是单独的接收/传输通道)。
当网络空闲时,设备可以随时开始发送帧,因此它必须检查与同时开始的其他发送方是否发生冲突。帧传播需要一些时间,具体取决于集线器的数量和电缆长度。您希望在发送完帧之前检测到冲突,因此您可以插入干扰代码以正确中止。为此,您需要一个最小框架尺寸。
如今,对于交换网络来说,这不再是问题,但以太网标准的黄金法则之一是帧格式永远不会改变。
此外,在当今的网络速度下,每个数据包的处理时间可能会成为一个性能问题。通过最小尺寸,在下一帧到达之前,您至少有一些保证数量的时钟周期可用于处理每一帧(例如用于切换)。标准 Linux PC 在面对 100Mbit/s 的最小尺寸帧流时通常会冻结。
小智 5
我很久以前读过一篇文章。我喜欢这个解释。
以太网的最小数据包大小对于10 / 100M为64字节,对于1000M为512字节。选择最小的数据包大小是基于在半双工的情况下,发送方应该能够在完成发送帧之前检测到冲突。
充其量,信号以光速(3 * 10 ^ 8 m / s)在自由空间中传播(辐射)。相反,通过双绞线或同轴电缆的传播速度是该值的2/3(2 * 10 ^ 8 m / s)。
2 *两台主机之间的最大距离=双绞线中的光速*时间
时间 =数据包大小/带宽
对于10M,Bandwdith = 10 ^ 7bps
时间 = 8 * 64bits / 10 ^ 7bps = 51.2us
所以两个主机之间的最大距离 =(2 * 10 ^ 8)*(51.2 * 10 ^ -6)/ 2 = 5.12km
对于10Mbps,此LAN长度已足够。
对于100Mbps,LAN长度为512m,这也足够好。
但是对于1Gbps,LAN长度仅为51.2m。因此,提出的解决方案是将最小以太网数据包大小增加到4096位,即512字节。
因此,最大LAN长度变为409.6m。
我不知道他们为什么只选择这个长度。
| 归档时间: |
|
| 查看次数: |
5438 次 |
| 最近记录: |