摘要:4.3.2CSMA/CDCSMA/CD協(xié)議是對(duì)ALOHA協(xié)議(一種基于地面無(wú)線廣播通信而創(chuàng)建,適用于無(wú)協(xié)調(diào)關(guān)系的多用戶競(jìng)爭(zhēng)單信道使用權(quán)的系統(tǒng))的改進(jìn),適用于總線型拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò)。在總線型結(jié)構(gòu)中,所有的設(shè)備都直接連到同一條物理信道上,該信道負(fù)責(zé)任何兩個(gè)設(shè)備之間的數(shù)據(jù)傳送。節(jié)點(diǎn)以幀的形式發(fā)送數(shù)據(jù),幀的頭部含有目的和源節(jié)點(diǎn)的地址。幀在信
4.3.2 CSMA/CD
CSMA/CD協(xié)議是對(duì)ALOHA協(xié)議(一種基于地面無(wú)線廣播通信而創(chuàng)建,適用于無(wú)協(xié)調(diào)關(guān)系的多用戶競(jìng)爭(zhēng)單信道使用權(quán)的系統(tǒng))的改進(jìn),適用于總線型拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò)。在總線型結(jié)構(gòu)中,所有的設(shè)備都直接連到同一條物理信道上,該信道負(fù)責(zé)任何兩個(gè)設(shè)備之間的數(shù)據(jù)傳送。節(jié)點(diǎn)以幀的形式發(fā)送數(shù)據(jù),幀的頭部含有目的和源節(jié)點(diǎn)的地址。幀在信道上是以廣播方式傳輸?shù)模羞B接在信道上的設(shè)備隨時(shí)都能檢測(cè)到該幀。當(dāng)目的節(jié)點(diǎn)檢測(cè)到目的地址為本節(jié)點(diǎn)地址的幀時(shí),就接收幀中所攜帶的數(shù)據(jù),并按規(guī)定的鏈路協(xié)議給源節(jié)點(diǎn)返回一個(gè)響應(yīng)。
采用這種操作方法時(shí),可能會(huì)有兩個(gè)或更多的設(shè)備同時(shí)發(fā)送幀,這樣就會(huì)在信道上發(fā)生沖突。為減少?zèng)_突的發(fā)生,源節(jié)點(diǎn)在發(fā)送幀之前,首先要監(jiān)聽信道上是否有其他節(jié)點(diǎn)發(fā)送的載波信號(hào)。若監(jiān)聽到載波信號(hào),則推遲發(fā)送,直到信道恢復(fù)到空閑為止。此外,開始發(fā)送數(shù)據(jù)之后,還要采用邊發(fā)送邊監(jiān)聽的技術(shù),若監(jiān)聽到干擾信號(hào),就表示出現(xiàn)了沖突,需要立即停止發(fā)送。
下面首先介紹以太網(wǎng)時(shí)間槽的概念,然后介紹幾種載波監(jiān)聽多路訪問(wèn)技術(shù),最后介紹CSMA/CD中所使用的沖突檢測(cè)和退避算法。
1.以太網(wǎng)時(shí)間槽
在以太網(wǎng)規(guī)則中,若兩個(gè)節(jié)點(diǎn)發(fā)生了沖突,就必須讓網(wǎng)絡(luò)上每臺(tái)主機(jī)都檢測(cè)到這個(gè)沖突。但信號(hào)傳播到整個(gè)網(wǎng)絡(luò)中需要一定的時(shí)間。假設(shè)主機(jī)發(fā)送的幀很小,而兩臺(tái)發(fā)生沖突的主機(jī)相距又很遠(yuǎn),在主機(jī)A發(fā)送的幀傳播到主機(jī)D的前一刻,主機(jī)D開始發(fā)送幀,則主機(jī)A的幀到達(dá)主機(jī)D時(shí),主機(jī)D能立即檢測(cè)到?jīng)_突,發(fā)送阻塞信號(hào)。但在主機(jī)D的阻塞信號(hào)還沒有傳輸?shù)街鳈C(jī)A之前,主機(jī)A的幀己發(fā)送完了。這樣主機(jī)A就檢測(cè)不到?jīng)_突,會(huì)誤認(rèn)為幀發(fā)送成功,而不再發(fā)送了。由于信號(hào)的傳播時(shí)延,檢測(cè)到?jīng)_突需要一定的時(shí)間,所以發(fā)送的幀必須有一定的長(zhǎng)度。這就是時(shí)間梢需要解決的問(wèn)題。
下面對(duì)最壞情況下檢測(cè)到?jīng)_突所需的時(shí)間進(jìn)行估算。
假設(shè)A和D是網(wǎng)絡(luò)上相距最遠(yuǎn)的兩臺(tái)主機(jī),信號(hào)在兩者之間的傳播時(shí)延為r,假定主機(jī)A在f時(shí)刻開始發(fā)送一幀,幀會(huì)在f+r時(shí)刻到達(dá)主機(jī)D.假設(shè)主機(jī)D在f+r-ε時(shí)刻開始發(fā)送一幀,則主機(jī)D會(huì)在f+r時(shí)刻檢測(cè)到?jīng)_突,并發(fā)出阻塞信號(hào)。阻塞信號(hào)會(huì)在時(shí)刻到達(dá)主機(jī)A.如果在時(shí)刻,主機(jī)A的幀己經(jīng)發(fā)送完畢了,它就無(wú)法檢測(cè)到?jīng)_突。所以主機(jī)A發(fā)送幀的時(shí)間應(yīng)該大于2r在10Mbit/s以太網(wǎng)中,一幀的最小發(fā)送時(shí)間必須為51.2s,即512位數(shù)據(jù)在10Mbit/s以太網(wǎng)速率下的傳播時(shí)間,因此以太網(wǎng)幀的最小長(zhǎng)度為512bit=64Byte。為了保證達(dá)到最小幀長(zhǎng)度,必須在不足的空間插入填充(pad)字節(jié)。
2.載波監(jiān)聽多路訪問(wèn)CSMA
載波監(jiān)聽多路訪問(wèn)技術(shù)也稱為先聽后說(shuō)(Listen Before Talk,LBT)技術(shù)。在監(jiān)聽和訪問(wèn)的過(guò)程中,節(jié)點(diǎn)可以根據(jù)不同的情況采取不同的策略。如果發(fā)送數(shù)據(jù)之前先對(duì)信道進(jìn)行監(jiān)聽,信道空閑則立即發(fā)送數(shù)據(jù);信道忙,則退避一段時(shí)間再作嘗試等。根據(jù)節(jié)點(diǎn)可采取策略的不同,可以將監(jiān)聽算法分為以下3類。
(1)非堅(jiān)持CSMA。
①若信道空閑,則可以立即發(fā)送。
②若信道忙,則不再繼續(xù)監(jiān)聽信道,而是等待一個(gè)隨機(jī)的時(shí)間后,再重復(fù)上述過(guò)程。采用隨機(jī)的重發(fā)延遲時(shí)間可以減少?zèng)_突的概率:然而,可能出現(xiàn)的問(wèn)題是因?yàn)楹笸硕剐诺篱e置一段時(shí)間,這使信道的利用率降低,而且增加了發(fā)送時(shí)延。
(2)1-堅(jiān)持CSMA。
①若信道空閑,則立即發(fā)送。
②若信道忙,則繼續(xù)監(jiān)聽,直至檢測(cè)到信道空閑時(shí),立即發(fā)送。
③如果有沖突(在一段時(shí)間內(nèi)未收到肯定的回復(fù)),則等待一段隨機(jī)的時(shí)間,重復(fù)前兩個(gè)步驟。
此協(xié)議被稱為1-堅(jiān)持CSMA,是因?yàn)檎军c(diǎn)一旦發(fā)現(xiàn)信道空閑,其發(fā)送數(shù)據(jù)的概率為K這種算法的優(yōu)點(diǎn)是:只要介質(zhì)空閑。站點(diǎn)就立即可發(fā)送,有利于搶占信道,避免了信道利用率的損失:但是多個(gè)站點(diǎn)同時(shí)都在監(jiān)聽信道時(shí)必然會(huì)發(fā)生沖突。
(3)P-堅(jiān)持CSMA。
①若信道空閑,則以概率p發(fā)送,以概率g=lp把該次發(fā)送推遲到下一時(shí)間單位。一個(gè)時(shí)間單位通常等于最大傳播時(shí)延的2倍。
②延遲一個(gè)時(shí)間單位后,重復(fù)步驟①。
③若信道忙。則繼續(xù)監(jiān)聽,直至檢測(cè)到信道空閑時(shí),執(zhí)行步驟0XP-堅(jiān)持算法既能像非堅(jiān)持算法那樣減少?zèng)_突,又能像1-堅(jiān)持算法那樣減少信道空閑時(shí)間,是吸取了兩者優(yōu)點(diǎn)的一種折中方案。問(wèn)題在于概率值的選取。在選取P值時(shí)要考慮到在重負(fù)載下需要防止系統(tǒng)處于不穩(wěn)定狀態(tài)。假如信道忙時(shí),有一個(gè)站有數(shù)據(jù)要發(fā)送,當(dāng)前一個(gè)節(jié)點(diǎn)的數(shù)據(jù)發(fā)送完畢時(shí),就會(huì)有nP個(gè)站點(diǎn)需要發(fā)送。如果P值選取的過(guò)大,使則說(shuō)明會(huì)有多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù),勢(shì)必會(huì)引起沖突。在最壞的情況下,隨著沖突概率的不斷增大,會(huì)使吞吐童降低到零。因此必須選取適當(dāng)?shù)氖凳?。但如果值選取的過(guò)小,發(fā)送節(jié)點(diǎn)則要等待較長(zhǎng)的時(shí)間,信道的利用率會(huì)大大降低。
3.具有沖突檢測(cè)的載波監(jiān)聽多路訪問(wèn)CSMA/CD
在CSMA中,由于信道存在傳播時(shí)延,可能出現(xiàn)兩個(gè)節(jié)點(diǎn)在沒有監(jiān)聽到載波信號(hào)的情況下都開始發(fā)送幀的情況,這樣仍可能會(huì)發(fā)生沖突。而CSMA算法中沒有沖突檢測(cè)的功能,即使發(fā)生了沖突,它仍然會(huì)繼續(xù)發(fā)送幀,這樣會(huì)造成網(wǎng)絡(luò)帶寬的浪費(fèi),如果幀比較長(zhǎng),對(duì)帶寬的浪費(fèi)就會(huì)較大。為了進(jìn)一步提髙帶寬的利用率,需要對(duì)CSMA方案進(jìn)行改進(jìn)。
一種改進(jìn)方案是邊發(fā)送邊監(jiān)聽,如下所述。
發(fā)送過(guò)程中繼續(xù)監(jiān)聽信道,沒有沖突發(fā)生,則繼續(xù)發(fā)送。
若發(fā)生了沖突,就立即停止發(fā)送,并向總線上發(fā)送一串干擾信號(hào)(Jamming),通知其他相關(guān)站點(diǎn),停止發(fā)送。
發(fā)送jamming信號(hào)后,等待一段隨機(jī)長(zhǎng)的時(shí)間,重新監(jiān)聽,再嘗試發(fā)送。
當(dāng)重送失敗次數(shù)達(dá)到16次時(shí),MAC子層就會(huì)用異常終止的狀態(tài)來(lái)通知LLC子層。采用這種方式就不會(huì)因?yàn)閭魉鸵咽軗p的幀而造成帶寬的浪費(fèi),可以提髙總線的利用率。這種方案稱為具有沖突檢測(cè)的載波監(jiān)聽多路訪問(wèn)技術(shù)(CSMA/CD),廣泛應(yīng)用于局域網(wǎng)中。
在CSMA/CD中,檢測(cè)到?jīng)_突,發(fā)送完干擾信號(hào)之后,要隨機(jī)等待一段時(shí)間,再重新監(jiān)聽,嘗試發(fā)送。后退時(shí)間的長(zhǎng)短對(duì)網(wǎng)絡(luò)的穩(wěn)定工作有很大影響,特別是在負(fù)載很重的情況下,為了避免很多站發(fā)生連續(xù)沖突,設(shè)計(jì)了一種被稱為二進(jìn)制指數(shù)退避的算法:
二進(jìn)制指數(shù)退避算法是按后進(jìn)先出(Last In First Out,LIFO)的次序來(lái)控制的,即未發(fā)生沖突或很少發(fā)生沖突的數(shù)據(jù)幀,具有優(yōu)先發(fā)送權(quán);而發(fā)生過(guò)多次沖突的數(shù)據(jù)幀,發(fā)送成功的概率就更少。
IEEE802.3就是采用二進(jìn)制指數(shù)退避和1-堅(jiān)持算法的CSMA/CD介質(zhì)訪問(wèn)控制方法。采用這種方法,在低負(fù)荷時(shí)要發(fā)送數(shù)據(jù)幀的節(jié)點(diǎn)能立即發(fā)送:在高負(fù)荷時(shí),仍能保證系統(tǒng)的穩(wěn)定性。
通信工程師備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題