关于CSMA/CD竞争期的思考

特南鲍姆的《计算机网络(第5版)》第4章课后习题第15题:

一个一千米长、10Mbps的CSMA/CD
LAN(不是802.3),其传播速度是200米/微秒。这个系统不允许使用中继器。数据帧的长度是256位,其中包括32位的头、校检和以及其他开销。在一次成功传输后的第一个比特槽被预留给接收方,以便它抓住信道发送32位的确认帧。假定没有冲突,试问除去开销之后的有效数据是多少?

网上可搜到的解析如下:

一个完整的传输包括以下六个部分:(1)发送者抓住线缆的时间10us(2*1000米/200米/微秒,竞争期是单向传播时间的两倍,过了竞争期才可以确认抓住了信道)(2)数据发送时间为256bit/10Mbps = 25.6us(3)最后1位结束延迟时间5.0us(单程传播延迟1000/200米/微秒)(4)接收者抓住线缆时间10us(5)ACK发送时间3.2us(6)最后一位延迟时间5.0us。总时间为58.8us,所以有效数据率(256-32)/58.8us=3.8Mbps。

但是我一直对CSMA/CD的竞争期有个疑问:如果没有冲突,还有竞争期吗?

教材中的图是这样的:
最后那一帧前面也有个竞争槽
可以看到,最后一帧前面也有个竞争期。

但问题是,并没有某种特殊的“测试帧”,然后大家都先用这个测试帧竞争信道,一旦竞争到了,再发真正要发送的数据帧。

真正发生的情况是:在某个运行CSMA/CD的共享信道上,主机A发出了一个帧,然后它“边发边听”,过了一个往返时间,没有检测到冲突,则它会认为没有冲突,可以继续发送该帧——注意,这里应该是“继续发送该帧”,而不是“放心地把该帧重新发一遍”。

最后,终于在B站上找到了湖南科技大学的教学视频,其中有一个地方是这样的(原视频链接:b站原链接https://www.bilibili.com/video/BV1c4411d7jb?p=31):
在这里插入图片描述
视频中很明确地说了,理想情况下,无冲突,则无竞争期!

那么,开篇那道题的坑,你掉进去了吗?

以上,先是在知乎发了两个帖,在这里总结一下。

知乎上的帖:
1、关于CSMA/CD竞争期的疑问
2、我想我找到答案了——关于《关于CSMA/CD竞争期的疑问》的解答

你怎么认为的呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章