CSMA/CD最小帧长和最大帧长、什么是帧

什么是帧?

CSMA/CD最小帧长和最大帧长、什么是帧_第1张图片

 

以太网(IEEE 802.3)帧格式:

  • 1、前导码(前同步码):7字节0x55,一串1、0间隔,用于信号同步
  • 2、帧开始定界符:1字节0xD5(10101011),表示一帧开始
  • 3、DA(目的MAC):6字节
  • 4、SA(源MAC):6字节
  • 5、类型/长度:2字节,0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)
  • 6、数据:46~1500字节
  • 7、帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和。
  • 以CSMA/CD作为MAC算法的一类LAN称为以太网。CSMA/CD冲突避免的方法:先听后发、边听边发、随机延迟后重发。一旦发生冲突,必须让每台主机都能检测到。关于最小发送间隙和最小帧长的规定也是为了避免冲突。

什么是最小帧长CSMA/CD最小帧长和最大帧长、什么是帧_第2张图片

 

最小帧长 = 总线传播时延   *   数据传输速率  *   2

从上述公式可以看出,最小帧长是信号往返传播时延内发送的数据长度,若在这个时间段内没有检测到信号冲突,只要信号是在这个时间段持续发送,则信号已经完全占领信道,从而接收方一定接收到没有碰撞的完好信号。


 

什么是最大帧长

情况一:通俗来说,我一直发一直发,你就受不了了。

情况二:我想把你吃下去,但我只能吃三碗饭,你给了我10碗饭

发送和接受端如何感知冲突?

    假设:A、B两地间通过一个传送带链起来,传送带的滚动速度是C(C代表光速),也就是20.3cm/ns(每纳秒20.3厘米),A点有个人叫A1,他要把一车苹果分成一小堆一小堆的发送给B点的那个人B1,现则A1需要抉择的是:我在传送苹果给B1的时,如果B1同时也有苹果传给我,这个时候就会产生冲突,而冲突会把传送中的苹果撞碎,破碎的苹果渣会通过传送带反送给我,我很想知道是哪一小堆苹果被撞碎了,如何实现?一个办法就是:在我收到苹果碎片的时候,我仍旧在传着这堆苹果!比如有很多堆苹果,第1堆,第2堆等,当我发送第3堆苹果的过程中,收了苹果碎片,那肯定是第3堆里先发出的苹果出现了碰撞,而不是第2堆或第1堆中的苹果发生碰撞。

    为了实现这一点,假如A到B点的距离是2500米(250000厘米),传送带上的苹果每纳秒20.3厘米,那么一堆苹果中的第一个苹果到达B点的用时就是250000除以20.3=12500纳秒,在加上碎片返回的时间是12500纳秒,等于25000纳秒,这个时间就是一堆苹果必须持续的时间。
    体力稍好的人,往传送带上放苹果的时候快,体力不好的就慢。体力稍好的人每秒可以往传送带上放100Mbit个苹果,换算一下,也就是说放一个苹果用10纳秒。体力不好的人每秒钟只能往传送带上放10Mbit个,也就是说放一个苹果用100纳秒。
    因为一堆苹果必须持续的时间25000纳秒,那么对于体力不好的人,25000除以100=250个苹果,这个结果就是一堆苹果的数量。所以,理论上一个10Mbit/s的以太网,最小帧长应该是250bit。但为了确保碰撞切实的被检测到,最小帧长被定义为512bit(64字节)。

计算最小帧长


    因为一堆苹果必须持续的时间25000纳秒,对于体力好的人,25000除以10=2500个苹果,这个结果就是一堆苹果的数量。所以,理论上一个100Mbit/s的以太网,最小帧长应该是2500bit。但一个2500bit的帧又太大了,上层来的数据包不可能这么大。所以我们只能缩短A点到B点的距离为250米,一个苹果在传送带上往返的时间也变成了2500纳秒。这时用2500除以10=250个苹果,这个结果就是一堆苹果的数量。所以,理论上一个100Mbit/s的以太网,最小帧长应该是250bit,网络最大有效距离是250米。但为了确保碰撞切实的被检测到,最小帧长被定义为512bit(64字节)。

你可能感兴趣的:(计算机网络巅峰之路基础+拔高,计算机网络巅峰之路(自顶而下),计算机网络,考研,笔记)