CSMA/CD 工作原理

                                         CSMA/CD工作原理
    在CSMA中,由於信道傳播時延的存在,即使總線上兩個站點沒有監聽到載波信號而發送幀時,仍可能會發生衝突。由於CSMA算法沒有衝突檢測功能,即使衝突已發生,仍然將已破壞的幀發送完,使數據的有效傳輸率降低。
一種CSMA的改進方案是使發送站點傳輸過程中仍繼續監聽媒體,以檢測是否存在衝突。如果發生衝突,信道上可以檢測到超過發送站點本身發送的載波信號的幅度,由此判斷出衝突的存在。一旦檢測到衝突,就立即停止發送,並向總線上發一串阻塞信號,用以通知總線上其他各有關站點。這樣,通道容量就不致因白白傳送已受損的幀而浪費,可以提高總線的利用率。這種方案稱爲“載波監聽多路訪問/衝突檢測協議”(Carrier Sense Multiple Access with Collision Detection,CSMA/CD),這種協議已廣泛應用於局域網中。
CSMA/CD要解決的另一主要問題是如何檢測衝突。當網絡處於空閒的某一瞬間,有兩個或兩個以上工作站要同時發送信息時,同步發送的信號就會引起衝突。
1.CSMA/CD的工作原理
由IEEE 802.3標準確定的CSMA/CD檢測衝突的方法如下:
(1)當一個站點想要發送數據的時候,它檢測網絡查看是否有其他站點正在傳輸,即監聽信道是否空閒。
(2)如果信道忙,則等待,直到信道空閒;如果信道閒,站點就傳輸數據。
(3)在發送數據的同時,站點繼續監聽網絡確信沒有其他站點在同時傳輸數據。因爲有可能兩個或多個站點都同時檢測到網絡空閒然後幾乎在同一時刻開始傳輸數據。如果兩個或多個站點同時發送數據,就會產生衝突。
(4)當一個傳輸節點識別出一個衝突,它就發送一個擁塞信號,這個信號使得衝突的時間足夠長,讓其他的節點都能發現。
(5)其他節點收到擁塞信號後,都停止傳輸,等待一個隨機產生的時間間隙(回退時間,Backoff Time)後重發。
如圖6-25所示,現假定A、B兩個站點位於總線兩端,兩站點之間的最大傳播時延爲tp。
當A站點發送數據後,經過接近於最大傳播時延tp時,B站點正好也發送數據,此時衝突便發生。發生衝突後,B 站點立即可檢測到該衝突,而A站點需再經過一份最大傳播時延tp後,才能檢測出衝突。也即最壞情況下,對於基帶CSMA/CD來說,檢測出一個衝突的時間等於任意兩個站之間最大傳播時延的兩倍(2tp)。
 數據幀從一個站點開始發送,到該數據幀發送完畢所需的時間和爲“數據傳輸時延”;同理,數據傳輸時延也表示一個接收站點開始接收數據幀,到該數據幀接收完畢所需的時間。數據傳輸時延(s)=數據幀長度(bit)/數據傳輸速率(bps)。若不考慮中繼器引入的延遲,數據幀從一個站點開始發送,到該數據幀被另一個站點全部接收所需的總時間,等於數據傳輸時延與信號傳播時延之和。
2.CSMA/CD二進制數算法
由上述分析可知,爲了確保發送數據站點在傳輸時能檢測到可能存在的衝突,數據幀的傳輸時延至少要兩倍於傳播時延。換句話說,要求分組的長度不短於某個值,否則在檢測出衝突之前傳輸已經結束,但實際上分組已被衝突所破壞。由此引出了CSMA/CD總線網絡中最短幀長的計算關係式如下所示:
由於單向傳輸的原因,對於寬帶總線而言,衝突檢測時間等於任意兩個站之間最大傳播時延的4倍,所以對於寬帶CSMA/CD來說,要求數據幀的傳輸時延至少4倍於傳播時延。在CSMA/CD算法中,一旦檢測到衝突併發完阻塞信號後,爲了降低再次衝突的概率,需要等待一個隨機時間,然後再使用CSMA方法試圖傳輸。爲了保證這種退避操作維持穩定採用了一種稱爲“二進制數指數退避”算法。
二進制數指數退避算法是按“後進先出”(List In First Out,LIFO)的次序控制的,即未發生衝突或很少發生衝突的數據幀,具有優先發送的概率;而發生過多次衝突的數據幀,發送成功的概率就更少。IEEE 802.3就是採用“二進制數指數退避”和“1-堅持”算法的CSMA/CD媒體訪問控制方法。這種方法在低負荷時,如媒體空閒時,要發送數據幀的站點能立即發送;在重負荷時,仍能保證系統的穩定性。由於在媒體上傳播的信號會衰減,爲確保能檢測出衝突信號,CSMA/CD總線網限制一段無分支電纜的最大長度爲500米。
“二進制數指數退避算法”的規則如下:
 對每個幀,當第一次發生衝突時,設置參數L=2。退避重發時間在1~L個時隙中隨機抽取;
 當幀再次衝突時,L加倍,即L=2L。退避重發時間仍在1~L個時隙中隨機抽取;
 當衝突n次,L=2n。設置一個最大重傳次數,超過此值,不再重發,並報告出錯。
此算法的效果是不衝突或少衝突的幀重發的機會大,衝突多的幀重發的機會小。
3.CSMA/CD的優點
CSMA/CD控制方式的優點是:原理比較簡單,技術上也容易實現,網絡中各工作站處於平等地位,不需集中控制,不提供優先級控制。但在網絡負載增大時,發送時間增長,發送效率急劇下降。它的代價是用於檢測衝突所花費的時間。對於基帶總線而言,最壞情況下用於檢測一個衝突的時間等於任意兩個站之間傳播時延的兩倍。從一個站點開始發送數據到另一個站點開始接收數據,也即載波信號從一端傳播到另一端所需的時間,稱爲“信號傳播時延”。信號傳播時延(μs)=兩站點的距離(m)/信號傳播速度(200m/μs)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章