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