数据链路层介质访问控制——信道划分、随机访问和轮询访问
介質訪問控制
介質訪問控制是數據鏈路層的子層,通過采取一定的措施,使共享信道的節點之間通信不會發生相互干擾。常用的介質訪問控制方法有:信道劃分介質訪問控制、隨機訪問介質訪問控制和輪詢訪問介質訪問控制。
一、信道劃分介質訪問控制
信道劃分介質訪問控制通過多路復用技術實現,當傳輸介質的帶寬超過傳輸單個信號所需的帶寬時,通過在一條介質上同時攜帶多個傳輸信號的方式提高傳輸系統利用率。信道劃分方式可以分為:頻分多路復用(FDM)、時分多路復用(TDM)、波分多路復用(WDM)和碼分多路復用(CDM)。
1. 頻分多路復用
將多路基帶信號調制到不同頻帶載波上,再進行疊加形成一個復合信號的多路復用技術。每個子信道分配的帶寬可以不相同,但是總和不能超過信道總帶寬。優點是充分利用了傳輸介質的帶寬,系統效率高;技術成熟,實現容易。
2. 時分多路復用
將一條物理信道按照時間分成若干個時間片,輪流分配給多個信號使用。在某一特定時刻,信道上只傳送某一對設備之間的信號,但對于某一時間段而言,傳送著按照時間分割的多路復用信號。但由于計算機數據的突發性,用戶對已經分配的子信道利用率一般不高。統計時分多路復用(STDM, 又稱異步時分多路復用)是TDM的一種改進,按需動態分配時隙,當終端數據要傳送時,才會分配到時間片,可以提高線路利用率。
3. 波分多路復用
波分多路復用就是指光的頻分多路復用,在光纖中傳輸多種不同波長(頻率)的光信號,光信號之間互不干擾。最后利用波長分解復用器將各路波長分解出來。光波處于頻譜的高頻段,有很高的帶寬,因此可以實現和多路的波分復用。
4. 碼分多路復用
碼分多路復用技術利用不同的編碼來區分各路原始信號的一種復用方式。既可以共享時間,又可以共享空間。
碼分多址是碼分復用中采用的一種技術,其原理為將每比特時間分成m個更短的時間槽,稱為芯片(clip),通常情況下每比特有64或128個芯片。每個站點被指定唯一的m為芯片序列。當站點要發送二進制數據1時,就發送分配的原芯片序列。當要發送二進制0時,便發送芯片序列的反碼。當兩個或多個站點同時發送時,各路數據在信道中被線性相加。為了從原信道中分離出各路信號,各個站點發送的芯片序列應是相互正交的。
通俗的講,A站向C站發送的數據用一個向量來表示,B站向C站發送的數據用另一個向量來表示,兩個向量要求相互正交。碼分多路復用技術具有頻譜利用率高、抗干擾能力強、保密性強、語音質量好等優點。還可以減少投資和降低運營成本,主要用于無線通信系統,特別是移動通信系統。
二、隨機訪問介質訪問控制
在隨機訪問協議中,所有用戶可以根據自己意愿隨機發送信息,占用信道全部速率。為了解決隨機接入產生的碰撞,每個用戶需按照一定的規則反復重傳他們的幀,直道該幀無碰撞的通過。常用協議有:ALOHA協議、CSMA協議、CSMA/CD協議和CSMA/CA協議。他們的核心思想為:勝利者通過爭用獲得信道,從而獲得信息的發送權。因此也稱爭用型協議。
1. ALOHA協議
(1)純ALOHA協議:
基本思想是當網絡中任何一個站點需要發送數據時,可以不進行檢測就發送數據。如果在一段時間內沒有收到確認,該站點就認為傳輸過程發生了沖突。發送站點隨機等待一段時間后重新發送數據,直至發送成功。
(2)時隙ALOHA協議:
時隙ALOHA協議把所有站點在時間上同步起來,并將時間劃分為一段段等長的時隙(Slot),規定只能在每個時隙的開始才能發送幀。從而避免用戶發送數據的隨意性,減少了數據產生沖突的可能性,提高了信道的利用率。時隙ALOHA的信道利用率是純ALOHA的一倍。
2. CSMA協議
ALOHA協議中,每個站點隨心所欲的發送數據,即使其他站點正在發送數據也照發不誤,因此數據碰撞的概率大。載波監聽多路訪問協議CSMA在每個站點發送數據前,都先偵聽一下信道,發現信道空閑后再發送數據,可以大大減少沖突可能性,從而提高信道利用率。根據監聽方式和監聽到信道忙后的處理方式不同,有三種不同的CSMA協議:1-堅持CSMA、非堅持CSMA和p-堅持CSMA。
| 空閑 | 立即發送數據 | 立即發送數據 | 以概率ppp發送數據,以概率1?p1-p1?p推遲到下一個時隙 |
| 忙 | 繼續堅持監聽信道 | 放棄監聽,等待一個隨機的時間后再監聽 | 放棄監聽,等待一個隨機的時間后再監聽 |
3. CSMA/CD協議
載波監聽多路訪問/碰撞檢測協議是CSMA的改進方案,適用于總線型或半雙工網絡環境。“載波監聽”就是發送前先監聽,等待信道變為空閑再發送。“碰撞檢測”就是邊發送邊偵聽,即適配器邊發送數據邊檢測信道上的電壓變化,以便判斷自己在發送數據時其他站點是否也在發送數據。CSMA/CD的工作流程可以簡單概括為:“先聽后發,邊聽邊發,沖突停發,隨機重發”。
為了確保發送站在發送數據的同時能檢測到可能存在的沖突,需要在發送完幀之前就能收到自己發送出去的數據,即幀的傳輸時延至少兩倍于信號在總線中的傳播時延,所以CSMA/CD總線網絡中的所有數據幀必須要大于一個最小幀長。任何站點收到幀長小于最小幀長的幀就將其丟棄。最小幀長計算公式為:
最小幀長 = 總線傳播時延 * 數據傳輸速率 * 2除了沖突檢測,CSMA/CD還能從沖突中恢復。一旦發生了沖突,參與沖突的兩個站點緊接著再次發送數據是沒有意義的,如果這樣做將無休止的引發沖突。CSMA/CD采用二進制指數退避算法來解決碰撞問題。步驟如下:
(1)確定基本退避時間,一般取兩倍的總線端到端傳播時延2τ\tauτ(即爭用期)。
(2)定義參數kkk,他等于重傳次數,但是kkk不超過10,即k=min[重傳次數,10]k=min[重傳次數,10]k=min[重傳次數,10]。
(3)從離散的整數集合[0,1,...,2k?1][0,1,...,2^{k}-1][0,1,...,2k?1]中隨機取出一個數rrr,重傳所需的基本退避時間就是rrr倍的基本退避時間,即2rτ2r\tau2rτ。
(4)當重傳達到16次不能成功時,說明網絡太擁擠,認為此幀永遠無法正確發出,拋棄此幀并向高層匯報錯誤。
使用二進制指數退避算法可使重傳推遲的平均時間隨重傳次數的增大而增大(動態退避),因而減小發生碰撞的概率,有利于整個系統穩定。
4. CSMA/CA協議
載波監聽多路訪問,碰撞避免協議使用預約信道、ACK幀、RST/CTS幀三種機制來實現碰撞避免。
(1)預約信道。發送方在發送數據的同時向其他站點通知自己傳輸數據需要的時間長度,以便讓其他站點在這段時間不發送數據,從而避免碰撞。
(2)ACK幀。所有站點在正確接收到發給自己的數據幀后(除廣播和組播),都需要向發送方發回一個ACK幀,如果接收失敗則不采取行動。發送方在發送完一個數據幀后,若在指定時間內沒有收到ACK幀,則認為發送失敗,將進行該數據幀的重發,直道接收到ACK幀或者達到規定的重發次數為止。
(3)RTS/CTS幀。是可選的碰撞避免機制,主要用于解決無線網絡中的“隱蔽站”問題。
CSMA/CD和CSMA/CA的主要區別如下:
(1)CSMA/CD可以檢測沖突,但是無法避免。CSMA/CA發送包的同時不能檢測信道上有無沖突,本節點處沒有沖突不意味著在接收結點沒有沖突,只能盡量避免。
(2)傳輸介質不同。CSMA/CD用于總線式以太網,而CSMA/CA用于無線局域網802.11a/b/g/n等。
(3)檢測方式不同。CSMA/CD通過電纜中電壓變化來檢測;而CSMA/CA采用能量檢測、載波檢測和能量載波混合三種檢測信道空閑的方式。
總結:CSMA/CA協議是在發送數據時先廣播告訴其他結點,讓其它節點在某時間段內不要發送數據,以避免發生碰撞。CSMA/CD協議的基本思想是發送前先偵聽,邊發送邊偵聽,一旦出現碰撞馬上停止發送。
三、輪詢訪問介質訪問控制:令牌傳遞協議
整理自王道論壇
總結
以上是生活随笔為你收集整理的数据链路层介质访问控制——信道划分、随机访问和轮询访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据链路层差错控制——奇偶校验码、循环冗
- 下一篇: 堆内存常见的分配策略、 经典的垃圾收集器