關於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競爭期的疑問》的解答

你怎麼認爲的呢?

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