csma/cd即帶沖突檢測(cè)的載波監(jiān)聽(tīng)多路訪問(wèn)技術(shù)或者稱為載波監(jiān)聽(tīng)多點(diǎn)介入/碰撞檢測(cè)。在傳統(tǒng)的共享以太網(wǎng)中,所有的節(jié)點(diǎn)共享傳輸介質(zhì)。如何保證傳輸介質(zhì)有序、高效地為許多節(jié)點(diǎn)提供傳輸服務(wù),就是以太網(wǎng)的介質(zhì)訪問(wèn)控制協(xié)議要解決的問(wèn)題。
csma/cd是一種爭(zhēng)用型的介質(zhì)訪問(wèn)控制協(xié)議。它起源于美國(guó)夏威夷大學(xué)開(kāi)發(fā)的aloha網(wǎng)所采用的爭(zhēng)用型協(xié)議,并進(jìn)行了改進(jìn),使之具有比aloha協(xié)議更高的介質(zhì)利用率。主要應(yīng)用于現(xiàn)場(chǎng)總線ethernet中。另一個(gè)改進(jìn)是,對(duì)于每一個(gè)站點(diǎn)而言,一旦它檢測(cè)到有沖突,它就放棄它當(dāng)前的傳送任務(wù)。換句話說(shuō),如果兩個(gè)站點(diǎn)都檢測(cè)到信道是空閑的,并且同時(shí)開(kāi)始傳送數(shù)據(jù),則它們幾乎立刻就會(huì)檢測(cè)到有沖突發(fā)生。它們不應(yīng)該再繼續(xù)傳送它們的幀,因?yàn)檫@樣只會(huì)產(chǎn)生垃圾而已;相反一旦檢測(cè)到?jīng)_突之后,它們應(yīng)該立即停止傳送數(shù)據(jù)??焖俚亟K止被損壞的幀可以節(jié)省時(shí)間和帶寬。
csma/cd控制方式的優(yōu)點(diǎn)是:
原理比較簡(jiǎn)單,技術(shù)上易實(shí)現(xiàn),網(wǎng)絡(luò)中各工作站處于平等地位 ,不需集中控制,不提供優(yōu)先級(jí)控制。但在網(wǎng)絡(luò)負(fù)載增大時(shí),發(fā)送時(shí)間增長(zhǎng),發(fā)送效率急劇下降。
csma/cd應(yīng)用在 osi 的第二層數(shù)據(jù)鏈路層
它的工作原理是: 發(fā)送數(shù)據(jù)前 先偵聽(tīng)信道是否空閑 ,若空閑,則立即發(fā)送數(shù)據(jù)。若信道忙碌,則等待一段時(shí)間至信道中的信息傳輸結(jié)束后再發(fā)送數(shù)據(jù);若在上一段信息發(fā)送結(jié)束后,同時(shí)有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)都提出發(fā)送請(qǐng)求,則判定為沖突。若偵聽(tīng)到?jīng)_突,則立即停止發(fā)送數(shù)據(jù),等待一段隨機(jī)時(shí)間,再重新嘗試。
其原理簡(jiǎn)單總結(jié)為:先聽(tīng)后發(fā),邊發(fā)邊聽(tīng),沖突停發(fā),隨機(jī)延遲后重發(fā)
csma/cd采用ieee 802.3標(biāo)準(zhǔn)。
它的主要目的是:提供尋址和媒體存取的控制方式,使得不同設(shè)備或網(wǎng)絡(luò)上的節(jié)點(diǎn)可以在多點(diǎn)的網(wǎng)絡(luò)上通信而不相互沖突。
有人將csma/cd的工作過(guò)程形象的比喻成很多人在一間黑屋子中舉行討論會(huì),參加會(huì)議的人都是只能聽(tīng)到其他人的聲音。每個(gè)人在說(shuō)話前必須先傾聽(tīng),只有等會(huì)場(chǎng)安靜下來(lái)后,他才能夠發(fā)言。人們將發(fā)言前監(jiān)聽(tīng)以確定是否已有人在發(fā)言的動(dòng)作稱為載波監(jiān)聽(tīng);將在會(huì)場(chǎng)安靜的情況下每人都有平等機(jī)會(huì)講話成為“多路訪問(wèn)”;如果有兩人或兩人以上同時(shí)說(shuō)話,大家就無(wú)法聽(tīng)清其中任何一人的發(fā)言,這種情況稱為發(fā)生“沖突”。發(fā)言人在發(fā)言過(guò)程中要及時(shí)發(fā)現(xiàn)是否發(fā)生沖突,這個(gè)動(dòng)作稱為“沖突檢測(cè)”。如果發(fā)言人發(fā)現(xiàn)沖突已經(jīng)發(fā)生,這時(shí)他需要停止講話,然后隨機(jī)后退延遲,再次重復(fù)上述過(guò)程,直至講話成功。如果失敗次數(shù)太多,他也許就放棄這次發(fā)言的想法。通常嘗試16次后放棄。
控制規(guī)程的核心問(wèn)題:解決在公共通道上以廣播方式傳送數(shù)據(jù)中可能出現(xiàn)的問(wèn)題(主要是數(shù)據(jù)碰撞問(wèn)題)
控制過(guò)程包含四個(gè)處理內(nèi)容:監(jiān)聽(tīng)、發(fā)送、檢測(cè)、沖突處理
(1) 監(jiān)聽(tīng):
通過(guò)專(zhuān)門(mén)的檢測(cè)機(jī)構(gòu),在站點(diǎn)準(zhǔn)備發(fā)送前先偵聽(tīng)一下總線上是否有數(shù)據(jù)正在傳送(線路是否忙)?
若“忙”則進(jìn)入后述的“退避”處理程序,進(jìn)而進(jìn)一步反復(fù)進(jìn)行偵聽(tīng)工作。
若“閑”,則一定算法原則(“x堅(jiān)持”算法)決定如何發(fā)送。
(2) 發(fā)送:
當(dāng)確定要發(fā)送后,通過(guò)發(fā)送機(jī)構(gòu),向總線發(fā)送數(shù)據(jù)。
(3) 檢測(cè):
數(shù)據(jù)發(fā)送后,也可能發(fā)生數(shù)據(jù)碰撞。因而,要對(duì)數(shù)據(jù)邊發(fā)送,邊檢測(cè),以判斷是否沖突了。
(4)沖突處理:
當(dāng)確認(rèn)發(fā)生沖突后,進(jìn)入沖突處理程序。有兩種沖突情況:
① 偵聽(tīng)中發(fā)現(xiàn)線路忙
② 發(fā)送過(guò)程中發(fā)現(xiàn)數(shù)據(jù)碰撞
① 若在偵聽(tīng)中發(fā)現(xiàn)線路忙,則等待一個(gè)延時(shí)后再次偵聽(tīng),若仍然忙,則繼續(xù)延遲等待,一直到可以發(fā)送為止。每次延時(shí)的時(shí)間不一致,由退避算法確定延時(shí)值。
② 若發(fā)送過(guò)程中發(fā)現(xiàn)數(shù)據(jù)碰撞,先發(fā)送阻塞信息,強(qiáng)化沖突,再進(jìn)行監(jiān)聽(tīng)工作,以待下次重新發(fā)送(方法同①)csma/cd工作原理及性能分析(指標(biāo)與影響因素)
csma/cd的主要影響因素:傳播時(shí)延、工作站數(shù)。
①csma/cd對(duì)站點(diǎn)個(gè)數(shù)不是很敏感,對(duì)實(shí)際的輸入負(fù)載比較敏感。
②csma/cd對(duì)傳播時(shí)延比較敏感。
③csma/cd沖突不可避免。
④csma/cd的介質(zhì)利用率隨a的上升下降較快。
⑤csma/cd適合通信量不大,交互頻繁的場(chǎng)合
⑥對(duì)于csma/cd幀越長(zhǎng),吞吐量越大,要求幀具有最小長(zhǎng)度,當(dāng)有許多短消息時(shí),帶寬浪費(fèi)嚴(yán)重。
⑦csma/cd在輕負(fù)載時(shí)提供最短延遲,但對(duì)重負(fù)載敏感。
上述兩種沖突情況都會(huì)涉及一個(gè)共同算法——退避算法。
①退避算法:當(dāng)出現(xiàn)線路沖突時(shí),如果沖突的各站點(diǎn)都采用同樣的退避間隔時(shí)間,則很容易產(chǎn)生二次、三次的碰撞。因此,要求各個(gè)站點(diǎn)的退避間隔時(shí)間具有差異性。這要求通過(guò)退避算法來(lái)實(shí)現(xiàn)。
截?cái)嗟亩M(jìn)制指數(shù)退避算法(退避算法之一):
當(dāng)一個(gè)站點(diǎn)發(fā)現(xiàn)線路忙時(shí),要等待一個(gè)延時(shí)時(shí)間m,然后再進(jìn)行偵聽(tīng)工作。延時(shí)時(shí)間m以以下算法決定:
m = 0 ~ (2^k - 1) 之間的一個(gè)隨機(jī)數(shù)乘以512比特時(shí)間(例如對(duì)于10mbps以太網(wǎng),為51.2微秒),k為沖突(碰撞)的次數(shù),m的最大值為1023,即當(dāng)k=10及以后m始終是0~1023之間的一個(gè)隨機(jī)值與51.2的乘積,當(dāng)k增加到16時(shí),就發(fā)出錯(cuò)誤信息。
② 特殊阻塞信息:是一組特殊數(shù)據(jù)信息。在發(fā)送數(shù)據(jù)后發(fā)現(xiàn)沖突時(shí),立即發(fā)送特殊阻塞信息(連續(xù)幾個(gè)字節(jié)的全1,一般為32-48位),以強(qiáng)化沖突信號(hào),使線路上站點(diǎn)可以盡早探測(cè)得到?jīng)_突的信號(hào),從而減少造成新沖突的可能性。
③ 沖突檢測(cè)時(shí)間>=2α: α表示網(wǎng)絡(luò)中最遠(yuǎn)兩個(gè)站點(diǎn)的傳輸線路延遲時(shí)間。該式表示檢測(cè)時(shí)間必須保證最遠(yuǎn)站點(diǎn)發(fā)出數(shù)據(jù)產(chǎn)生沖突后被對(duì)方感知的最短時(shí)間。在2α?xí)r間里沒(méi)有感知沖突,則保證發(fā)出的數(shù)據(jù)沒(méi)有產(chǎn)生沖突。(只要保證檢測(cè)2α?xí)r間,沒(méi)有必要整個(gè)發(fā)送過(guò)程都進(jìn)行檢測(cè))
④ x-堅(jiān)持的csma算法:當(dāng)在偵聽(tīng)中發(fā)現(xiàn)線路空閑時(shí),不一定馬上發(fā)送數(shù)據(jù),而采用x-堅(jiān)持的csma算法決定如何進(jìn)行數(shù)據(jù)發(fā)送:
算法特點(diǎn)
綜上,介紹了csma/cd,csma/cd是一種爭(zhēng)用型的介質(zhì)訪問(wèn)控制協(xié)議。它起源于美國(guó)夏威夷大學(xué)開(kāi)發(fā)的aloha網(wǎng)所采用的爭(zhēng)用型協(xié)議,主要應(yīng)用于現(xiàn)場(chǎng)總線ethernet中。對(duì)于每一個(gè)站點(diǎn)而言,一旦它檢測(cè)到有沖突,它就放棄它當(dāng)前的傳送任務(wù)。