摘要:4.3.2CSMA/CDCSMA/CD協議是對ALOHA協議(一種基于地面無線廣播通信而創建,適用于無協調關系的多用戶競爭單信道使用權的系統)的改進,適用于總線型拓撲結構網絡。在總線型結構中,所有的設備都直接連到同一條物理信道上,該信道負責任何兩個設備之間的數據傳送。節點以幀的形式發送數據,幀的頭部含有目的和源節點的地址。幀在信
4.3.2 CSMA/CD
CSMA/CD協議是對ALOHA協議(一種基于地面無線廣播通信而創建,適用于無協調關系的多用戶競爭單信道使用權的系統)的改進,適用于總線型拓撲結構網絡。在總線型結構中,所有的設備都直接連到同一條物理信道上,該信道負責任何兩個設備之間的數據傳送。節點以幀的形式發送數據,幀的頭部含有目的和源節點的地址。幀在信道上是以廣播方式傳輸的,所有連接在信道上的設備隨時都能檢測到該幀。當目的節點檢測到目的地址為本節點地址的幀時,就接收幀中所攜帶的數據,并按規定的鏈路協議給源節點返回一個響應。
采用這種操作方法時,可能會有兩個或更多的設備同時發送幀,這樣就會在信道上發生沖突。為減少沖突的發生,源節點在發送幀之前,首先要監聽信道上是否有其他節點發送的載波信號。若監聽到載波信號,則推遲發送,直到信道恢復到空閑為止。此外,開始發送數據之后,還要采用邊發送邊監聽的技術,若監聽到干擾信號,就表示出現了沖突,需要立即停止發送。
下面首先介紹以太網時間槽的概念,然后介紹幾種載波監聽多路訪問技術,最后介紹CSMA/CD中所使用的沖突檢測和退避算法。
1.以太網時間槽
在以太網規則中,若兩個節點發生了沖突,就必須讓網絡上每臺主機都檢測到這個沖突。但信號傳播到整個網絡中需要一定的時間。假設主機發送的幀很小,而兩臺發生沖突的主機相距又很遠,在主機A發送的幀傳播到主機D的前一刻,主機D開始發送幀,則主機A的幀到達主機D時,主機D能立即檢測到沖突,發送阻塞信號。但在主機D的阻塞信號還沒有傳輸到主機A之前,主機A的幀己發送完了。這樣主機A就檢測不到沖突,會誤認為幀發送成功,而不再發送了。由于信號的傳播時延,檢測到沖突需要一定的時間,所以發送的幀必須有一定的長度。這就是時間梢需要解決的問題。
下面對最壞情況下檢測到沖突所需的時間進行估算。
假設A和D是網絡上相距最遠的兩臺主機,信號在兩者之間的傳播時延為r,假定主機A在f時刻開始發送一幀,幀會在f+r時刻到達主機D.假設主機D在f+r-ε時刻開始發送一幀,則主機D會在f+r時刻檢測到沖突,并發出阻塞信號。阻塞信號會在時刻到達主機A.如果在時刻,主機A的幀己經發送完畢了,它就無法檢測到沖突。所以主機A發送幀的時間應該大于2r在10Mbit/s以太網中,一幀的最小發送時間必須為51.2s,即512位數據在10Mbit/s以太網速率下的傳播時間,因此以太網幀的最小長度為512bit=64Byte。為了保證達到最小幀長度,必須在不足的空間插入填充(pad)字節。
2.載波監聽多路訪問CSMA
載波監聽多路訪問技術也稱為先聽后說(Listen Before Talk,LBT)技術。在監聽和訪問的過程中,節點可以根據不同的情況采取不同的策略。如果發送數據之前先對信道進行監聽,信道空閑則立即發送數據;信道忙,則退避一段時間再作嘗試等。根據節點可采取策略的不同,可以將監聽算法分為以下3類。
(1)非堅持CSMA。
①若信道空閑,則可以立即發送。
②若信道忙,則不再繼續監聽信道,而是等待一個隨機的時間后,再重復上述過程。采用隨機的重發延遲時間可以減少沖突的概率:然而,可能出現的問題是因為后退而使信道閑置一段時間,這使信道的利用率降低,而且增加了發送時延。
(2)1-堅持CSMA。
①若信道空閑,則立即發送。
②若信道忙,則繼續監聽,直至檢測到信道空閑時,立即發送。
③如果有沖突(在一段時間內未收到肯定的回復),則等待一段隨機的時間,重復前兩個步驟。
此協議被稱為1-堅持CSMA,是因為站點一旦發現信道空閑,其發送數據的概率為K這種算法的優點是:只要介質空閑。站點就立即可發送,有利于搶占信道,避免了信道利用率的損失:但是多個站點同時都在監聽信道時必然會發生沖突。
(3)P-堅持CSMA。
①若信道空閑,則以概率p發送,以概率g=lp把該次發送推遲到下一時間單位。一個時間單位通常等于最大傳播時延的2倍。
②延遲一個時間單位后,重復步驟①。
③若信道忙。則繼續監聽,直至檢測到信道空閑時,執行步驟0XP-堅持算法既能像非堅持算法那樣減少沖突,又能像1-堅持算法那樣減少信道空閑時間,是吸取了兩者優點的一種折中方案。問題在于概率值的選取。在選取P值時要考慮到在重負載下需要防止系統處于不穩定狀態。假如信道忙時,有一個站有數據要發送,當前一個節點的數據發送完畢時,就會有nP個站點需要發送。如果P值選取的過大,使則說明會有多個節點同時發送數據,勢必會引起沖突。在最壞的情況下,隨著沖突概率的不斷增大,會使吞吐童降低到零。因此必須選取適當的尸值使。但如果值選取的過小,發送節點則要等待較長的時間,信道的利用率會大大降低。
3.具有沖突檢測的載波監聽多路訪問CSMA/CD
在CSMA中,由于信道存在傳播時延,可能出現兩個節點在沒有監聽到載波信號的情況下都開始發送幀的情況,這樣仍可能會發生沖突。而CSMA算法中沒有沖突檢測的功能,即使發生了沖突,它仍然會繼續發送幀,這樣會造成網絡帶寬的浪費,如果幀比較長,對帶寬的浪費就會較大。為了進一步提髙帶寬的利用率,需要對CSMA方案進行改進。
一種改進方案是邊發送邊監聽,如下所述。
發送過程中繼續監聽信道,沒有沖突發生,則繼續發送。
若發生了沖突,就立即停止發送,并向總線上發送一串干擾信號(Jamming),通知其他相關站點,停止發送。
發送jamming信號后,等待一段隨機長的時間,重新監聽,再嘗試發送。
當重送失敗次數達到16次時,MAC子層就會用異常終止的狀態來通知LLC子層。采用這種方式就不會因為傳送已受損的幀而造成帶寬的浪費,可以提髙總線的利用率。這種方案稱為具有沖突檢測的載波監聽多路訪問技術(CSMA/CD),廣泛應用于局域網中。

在CSMA/CD中,檢測到沖突,發送完干擾信號之后,要隨機等待一段時間,再重新監聽,嘗試發送。后退時間的長短對網絡的穩定工作有很大影響,特別是在負載很重的情況下,為了避免很多站發生連續沖突,設計了一種被稱為二進制指數退避的算法:
二進制指數退避算法是按后進先出(Last In First Out,LIFO)的次序來控制的,即未發生沖突或很少發生沖突的數據幀,具有優先發送權;而發生過多次沖突的數據幀,發送成功的概率就更少。
IEEE802.3就是采用二進制指數退避和1-堅持算法的CSMA/CD介質訪問控制方法。采用這種方法,在低負荷時要發送數據幀的節點能立即發送:在高負荷時,仍能保證系統的穩定性。
返回目錄:互聯網技術考試局域網和城域網匯總
通信工程師備考資料免費領取
去領取
專注在線職業教育25年