《计算机网络技术实用教程》:
3.数据长度
在以太网2标准的MAC帧格式中,其首部并没有一个帧长度(或数据长度)字段。那么,MAC子层又怎样知道从接收到的以太网帧中取出多少字节的数据交付给上一层协议呢?因为以太网在物理层采用的是曼彻斯特编码,这种曼彻斯特编码的一个重要特点就是:在曼彻斯特编码的每一个码元(不管码元是1或0)的正中间一定有一次电压的转换(从高到低或从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元了(既不发送1,也不发送0)。因此,发送方网络适配器的接口上的电压也就不再变化了。这样,接收方就可以很容易地找到以太网帧的结束位置。在这个位置往前数4字节(FCS字段长度是4字节),就能确定数据字段的结束位置。
因此,接收端只要找到帧开始定界符,其后面的连续到达的比特流就都属于同一个MAC帧。可见以太网不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输。
数据字段的最小长度为46字节,当数据字段的长度小于46字节时,MAC子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。
为什么数据字段的最小长度要为46字节,即以太网的MAC帧长不能小于64字节呢?这是因为,CSMA/CD协议的一个要点就是当发送站正在发送时,若检测到冲突则立即中止发送,然后推后一段时间后再发送。如果发送的帧太短,还没有来得及检测到冲突就已经发送完了,那么就无法进行冲突检测了。因此,所发送的帧的最短长度应当要保证在发送完毕之前,必须能够检测到可能最晚来到的冲突信号,即要避免一个发送站在发现网段另一端出现的任何冲突之前已经将帧传输出去了。
以太网发送数据的最短时间为51.2μS,这一最短时间是根据网络的最大电缆长度和帧沿电缆长度传播所要求的时间确定的。相当于发送512bit。这样就得出了MAC帧的最小长度为512bit,即64字节。在接收端,凡长度不够64字节的帧就都认为是可以丢弃的无效帧。
在以太网上传送数据时是以帧为单位传送。以太网在传送帧时,各帧之间还必须有一定的时间间隔,帧间最小时间间隔为9.6μs,相当于96bit的发送时间。这就是说,一个站在检测到总线开始空闲后,还要等待9.6μs才能发送数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,以做好接收下一帧的准备。
……
展开