首先,先看几个MAC帧的格式定义

数据:46~1500字节,包含高层的协议消息。由于CSMA/CD算法的限制,以太网帧必须满足最小长度要求64字节,数据较小时必须加以填充(0~46字节)

填充:0~46字节,当帧长太短时填充帧,使之达到64字节的最小长度

那么这个46字节是怎么来的?

王道书的解释:由CSMA/CD可知以太网帧的最短帧长为64B,而MAC帧的首部和尾部的长度为18字节,所以数据字段最短帧长为64-18=46字节。最大的1500字节是规定的。

笔者看完这个解释后感觉云里雾里,总感觉有些地方还是迷茫的,就是这个46字节,下来我来解释下,希望有同样问题的人能够清晰理解

根据王道书的解释数据字段最短帧长为64-18=46字节,这个18字节,是首部和尾部的全部字节,也就是源地址,目的地址,类型和FCS的字节数即=6+6+2+4=18字节,MAC帧由数据字段和他们一起组成,根据以太网最短帧长,就可得MAC帧最短帧长为46字节, 那么填充字段的0~46是为什么呢?

如果数据字段帧长为0,那么MAC帧总长就为18字节,为达到64字节,就要填充46字节,这就是填充字段最大为46字节的原因;如果数据字段帧长为46,那么MAC帧总长就为64字节,欸,此时就不用填充了,那么就是0,这就是填充字段最小为0的由来,所以填充字段范围就是0~46字节; 当数据字段帧长为45时,MAC帧总长就为63字节,差一个字节,就得再填充1个字节(更有利于理解)

综上:也就是说当数据字段的帧长小于46时,就要开始填充字节了,其实也就是当MAC帧长小于64字节时,就要开始填充了,首部和尾部的字节数是不会变得就是固定的18字节,所以说要填充的原因是数据字段不足64-18=46字节 OK,我认为把这个理清楚,对MAC帧的格式就会更加清晰明了

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: