我们都知道,以太网帧字节长度范围是64-1518字节。其中,帧中的数据不得少于46字节,如果数据不足,则需要在帧中加入“填充数据(pad)”。
那么,为什么数据内容不能少于46字节呢?又为什么数据内容最长不大于1500字节呢?
以太网帧最短长度
根据以太网CSMA/CD冲突避免的方法:先听后发、边听边发、随机延后重发的机制,一旦发生冲突,必须使每台主机都能检测到。
抛开复杂的理论方法与计算公式,总而言之,考虑到传输距离、带宽、延时、冲突检测、填充效率等因素,以太网最小帧长必须大于整个网络的最大时延位,这样以太网帧最小值为64字节时才能保证数据发送期间进行有效的冲突检测。
如果帧长度太小,就可能出现同时有两个帧在信道上传播,产生的冲突无法有效的通知到对方,造成信道无法传输数据。
如果最短帧长定义的太长,从上层来的数据没有太多,就需要进行一些无用的数据填充来满足对长度的要求,降低了有效的传输效率。
以太网帧最大长度
如果主机发送一个帧为64字节的数据,没有检测到冲突,那么以后也就不会再发生冲突了,说明此主机拥有了信道。
但信道是所有主机共享的,如果某主机发送的数据帧太长,就会长时间占据信道,影响其他主机通信。
同时,太长的帧需要花费足够的缓冲区缓存,甚至会超出接收方缓冲区的大小,造成缓冲溢出。
为避免某一主机长时间占用信道,因此规定了以太网的最大帧长为1500字节。
综上所述,由于多方面的考虑和限制,每个以太网帧的长度范围被限制为64-1518字节。对于小于或大于这个限制的以太网帧我们都可以视之为错误数据,会被中途转发的网络设备丢弃。