介質(zhì)訪問控制及其實現(xiàn)
介質(zhì)訪問控制(medium access control)簡稱MAC。 是解決當(dāng)局域網(wǎng)中共用信道的使用產(chǎn)生競爭時,如何分配信道的使用權(quán)問題。它定義了數(shù)據(jù)幀怎樣在介質(zhì)上進行傳輸。在共享同一個帶寬的鏈路中,對連接介質(zhì)的訪問是“先來先服務(wù)”的。物理尋址在此處被定義,邏輯拓撲(信號通過物理拓撲的路徑)也在此處被定義。線路控制、出錯通知(不糾正)、幀的傳遞順序和可選擇的流量控制也在這一子層實現(xiàn)。
局域網(wǎng)的數(shù)據(jù)鏈路層分為邏輯鏈路層LLC和介質(zhì)訪問控制MAC兩個子層。邏輯鏈路控制(Logical Link Control或簡稱LLC)是局域網(wǎng)中數(shù)據(jù)鏈路層的上層部分,IEEE 802.2中定義了邏輯鏈路控制協(xié)議。用戶的數(shù)據(jù)鏈路服務(wù)通過LLC子層為網(wǎng)絡(luò)層提供統(tǒng)一的接口。在LLC子層下面是MAC子層。MAC(medium access control)屬于LLC(Logical Link Control)下的一個子層。局域網(wǎng)中廣泛采用的兩種介質(zhì)訪問控制方法,分別是:1、爭用型介質(zhì)訪問控制,又稱隨機型的介質(zhì)訪問控制協(xié)議,如CSMA/CD方式。2、確定型介質(zhì)訪問控制,又稱有序的訪問控制協(xié)議,如Token(令牌)方式。
在CSMA中,由于信道傳播時延的存在,即使通信雙方的站點都沒有偵聽到載波信號,在發(fā)送數(shù)據(jù)時仍可能會發(fā)生沖突,因為他們可能會在檢測到介質(zhì)空閑時同時發(fā)送數(shù)據(jù),致使沖突發(fā)生。盡管CSMA可以發(fā)現(xiàn)沖突,但它并沒有先知的沖突檢測和阻止功能,致使沖突發(fā)生頻繁。一種CSMA的改進方案是使發(fā)送站點在傳輸過程中仍繼續(xù)偵聽介質(zhì),以檢測是否存在沖突。如果兩個站點都在某一時間檢測到信道是空閑的,并且同時開始傳送數(shù)據(jù),則它們幾乎立刻就會檢測到有沖突發(fā)生。如果發(fā)生沖突,信道上可以檢測到超過發(fā)送站點本身發(fā)送的載波信號幅度的電磁波,由此判斷出沖突的存在。一旦檢測到?jīng)_突,發(fā)送站點就立即停止發(fā)送,并向總線上發(fā)一串阻塞信號,用以通知總線上通信的對方站點,快速地終止被破壞的幀,可以節(jié)省時間和帶寬。這種方案就是本節(jié)要介紹的CSMA/CD(Carrier Sense Multiple Access with Collision Detection,載波偵聽多路訪問/沖突檢測協(xié)議),已廣泛應(yīng)用于局域網(wǎng)中。所謂載波偵聽(Carrier Sense),意思是網(wǎng)絡(luò)上各個工作站在發(fā)送數(shù)據(jù)前都要確認總線上有沒有數(shù)據(jù)傳輸。若有數(shù)據(jù)傳輸(稱總線為忙),則不發(fā)送數(shù)據(jù);若無數(shù)據(jù)傳輸(稱總線為空),立即發(fā)送準備好的數(shù)據(jù)。所謂多路訪問(Multiple Access),意思是網(wǎng)絡(luò)上所有工作站收發(fā)數(shù)據(jù)共同使用同一條總線,且發(fā)送數(shù)據(jù)是廣播式的。所謂沖突(Collision),意思是若網(wǎng)上有兩個或兩個以上工作站同時發(fā)送數(shù)據(jù),在總線上就會產(chǎn)生信號的混合,這樣哪個工作站都辨別不出真正的數(shù)據(jù)是什么。這種情況稱為數(shù)據(jù)沖突,又稱為碰撞。為了減少沖突發(fā)生后的影響,工作站在發(fā)送數(shù)據(jù)過程中還要不停地檢測自己發(fā)送的數(shù)據(jù),看有沒有在傳輸過程中與其他工作站的數(shù)據(jù)發(fā)生沖突,這就是沖突檢測(Collision Detected)。
1、CSMA/CD沖突檢測原理CSMA/CD是標(biāo)準以太網(wǎng)、快速以太網(wǎng)和千兆以太網(wǎng)中統(tǒng)一采用的介質(zhì)爭用處理協(xié)議(但在萬兆以太網(wǎng)中,由于采用的是全雙工通信,所以不再采用這一協(xié)議)。之所以稱之為"載波偵聽"("載波"就是承載信號的電磁波),而不是稱之為"介質(zhì)偵聽",那是因為如果介質(zhì)上正在有載波存在,則證明介質(zhì)處于忙的狀態(tài)(因為信號或者數(shù)據(jù)不是直接傳輸?shù)?,而是通過電磁載波進行的);如果沒有載波存在,則介質(zhì)是空閑狀態(tài)。也就是通過載波的檢測,可以得知介質(zhì)的狀態(tài),而不能直接來偵聽介質(zhì)本身得出其空閑狀態(tài)。
【說明】其實這里偵聽的應(yīng)該是"信道",而不是"介質(zhì)"本身,因為在一條傳輸介質(zhì)中,可能包含有多條信道,用于不同的傳輸鏈路。前面說了,CSMA/CD相對CSMA來說的進步就是具有沖突檢測功能,隨之問題就來了,CSMA/CD是如何檢測沖突呢?CSMA/CD的工作原理可以用以下幾句話來概括:先聽后說,邊聽邊說。一旦沖突,立即停說。等待時機,然后再說。這里的"聽"即監(jiān)聽、檢測之意;"說"即發(fā)送數(shù)據(jù)之意。具體的檢測原理描述如下:(1)當(dāng)一個站點想要發(fā)送數(shù)據(jù)的時候,它檢測網(wǎng)絡(luò)查看是否有其他站點正在傳輸,即偵聽信道是否空閑。(2)如果信道忙,則等待,直到信道空閑;如果信道空閑,站點就準備好要發(fā)送的數(shù)據(jù)。(3)在發(fā)送數(shù)據(jù)的同時,站點繼續(xù)偵聽網(wǎng)絡(luò),確信沒有其他站點在同時傳輸數(shù)據(jù)才繼續(xù)傳輸數(shù)據(jù)。因為有可能兩個或多個站點都同時檢測到網(wǎng)絡(luò)空閑然后幾乎在同一時刻開始傳輸數(shù)據(jù)。如果兩個或多個站點同時發(fā)送數(shù)據(jù),就會產(chǎn)生沖突。若無沖突則繼續(xù)發(fā)送,直到發(fā)完全部數(shù)據(jù)。(4)若有沖突,則立即停止發(fā)送數(shù)據(jù),但是要發(fā)送一個加強沖突的JAM(阻塞)信號,以便使網(wǎng)絡(luò)上所有工作站都知道網(wǎng)上發(fā)生了沖突,然后,等待一個預(yù)定的隨機時間,且在總線為空閑時,再重新發(fā)送未發(fā)完的數(shù)據(jù)。CSMA/CD控制方式的優(yōu)點是:原理比較簡單,技術(shù)上易實現(xiàn),網(wǎng)絡(luò)中各工作站處于平等地位,不需集中控制,不提供優(yōu)先級控制。但在網(wǎng)絡(luò)負載增大時,發(fā)送時間增長,發(fā)送效率急劇下降2、令牌訪問控制工作原理令牌訪問控制方法可分為令牌環(huán)訪問控制和令牌總線訪問控制兩類。已較少采用令牌總線訪問控制。