CSMA/CD即載波偵聽多路訪問/沖突檢測,是廣播型信道中采用一種隨機(jī)訪問技術(shù)的競爭型訪問方法,具有多目標(biāo)地址的特點。它處于一種總線型局域網(wǎng)結(jié)構(gòu),其物理拓?fù)浣Y(jié)構(gòu)正逐步向星型發(fā)展。CSMA/CD采用分布式控制方法,所有結(jié)點之間不存在控制與被控制的關(guān)系。
CSMA協(xié)議要求站點在發(fā)送數(shù)據(jù)之前先監(jiān)聽信道。如果信道空閑,站點就可以發(fā)送數(shù)據(jù);如果信道忙,則站點不能發(fā)送數(shù)據(jù)。但是,如果兩個站點都檢測到信道是空閑的,并且同時開始傳送數(shù)據(jù),那么這幾乎會立即導(dǎo)致沖突。另外,站點在監(jiān)聽信道時,聽到信道是空閑的,但這并不意味著信道真的空閑,因為其他站點的數(shù)據(jù)此時可能正在信道上傳送,但由于傳播時延,信號還沒有到達(dá)正在監(jiān)聽的站點,從而引起對信道狀態(tài)的錯誤判斷。在早期的CSMA傳輸方式中,由于信道傳播時延的存在,即使通信雙方的站點,都沒有偵聽到載波信號,在發(fā)送數(shù)據(jù)時仍可能會發(fā)生沖突。因為它們可能會在檢測到介質(zhì)空閑時,同時發(fā)送數(shù)據(jù),致使沖突發(fā)生。盡管CSMA可以發(fā)現(xiàn)沖突,但它并沒有先知的沖突檢測和阻止功能,致使沖突發(fā)生頻繁。可以對CSMA協(xié)議作進(jìn)一步的改進(jìn),使發(fā)送站點在傳輸過程中仍繼續(xù)偵聽介質(zhì),以檢測是否存在沖突。如果兩個站點都在某一時間檢測到信道是空閑的,并且同時開始傳送數(shù)據(jù),則它們幾乎立刻就會檢測到有沖突發(fā)生。如果發(fā)生沖突,信道上可以檢測到超過發(fā)送站點本身發(fā)送的載波信號幅度的電磁波,由此判斷出沖突的存在。一旦檢測到?jīng)_突,發(fā)送站點就立即停止發(fā)送,并向總線上發(fā)一串阻塞信號,用以通知總線上通信的對方站點,快速地終止被破壞的幀,可以節(jié)省時間和帶寬要求站點在發(fā)送數(shù)據(jù)過程中進(jìn)行沖突檢測,而一旦檢測到?jīng)_突立即停止發(fā)送數(shù)據(jù)。這樣的協(xié)議被稱為帶沖突檢測的載波監(jiān)聽多路訪問協(xié)議,即 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)協(xié)議。
CSMA/CD(Carrier Sense Multiple Access with Collision Detection,載波偵聽多路訪問/沖突檢測協(xié)議),早期主要是以太網(wǎng)絡(luò)中數(shù)據(jù)傳輸方式,廣泛應(yīng)用于以太網(wǎng)中。載波偵聽(Carrier Sense),意思是網(wǎng)絡(luò)上各個工作站在發(fā)送數(shù)據(jù)前,都要確認(rèn)總線上有沒有數(shù)據(jù)傳輸。若有數(shù)據(jù)傳輸(稱總線為忙),則不發(fā)送數(shù)據(jù);若無數(shù)據(jù)傳輸(稱總線為空),立即發(fā)送準(zhǔn)備好的數(shù)據(jù)。多路訪問(Multiple Access),意思是網(wǎng)絡(luò)上所有工作站收發(fā)數(shù)據(jù),共同使用同一條總線,且發(fā)送數(shù)據(jù)是廣播式?!皼_突檢測”是指發(fā)送結(jié)點在發(fā)出信息幀的同時,還必須監(jiān)聽媒體,判斷是否發(fā)生沖突(同一時刻,有無其他結(jié)點也在發(fā)送信息幀)。CSMA/CD的標(biāo)準(zhǔn)為IEEE802.3或者ISO8802/3。
實際上CSMA/CD的工作流程與人際間通話非常相似,可以用以下7步來說明。第一步:載波監(jiān)聽,想發(fā)送信息包的節(jié)點要確保沒有其他節(jié)點在使用共享介質(zhì),所以該節(jié)點首先要監(jiān)聽信道上的動靜(即先聽后說)。第二步:如果信道在一定時段內(nèi)寂靜無聲(稱為幀間縫隙IFG),則該節(jié)點就開始傳輸(無聲則講)。第三步:如果信道一直很忙碌,就一直監(jiān)視信道,直到出現(xiàn)最小的IFG時段時,該節(jié)點才開始發(fā)送它的數(shù)據(jù)(有空就說)。第四步:沖突檢測,如果兩個節(jié)點或更多的節(jié)點都在監(jiān)聽和等待發(fā)送,然后在信道空時同時決定立即(幾乎同時)開始發(fā)送數(shù)據(jù),此時就發(fā)生碰撞。這一事件會導(dǎo)致沖突,并使雙方信息包都受到損壞。以太網(wǎng)在傳輸過程中不斷地監(jiān)聽信道,以檢測碰撞沖突(邊聽邊說)。第五步:如果一個節(jié)點在傳輸期間檢測出碰撞沖突,則立即停止該次傳輸,并向信道發(fā)出一個“擁擠”信號,以確保其他所有節(jié)點也發(fā)現(xiàn)該沖突,從而摒棄可能一直在接收的受損的信息包(沖突停止,即一次只能一人講)。第六步:多路存取,在等待一段時間(稱為后退)后,想發(fā)送的節(jié)點試圖進(jìn)行新的發(fā)送。這時采用一種叫二進(jìn)制指數(shù)退避策略(Binary Exponential Back off Policy)的算法來決定不同的節(jié)點在試圖再次發(fā)送數(shù)據(jù)前要等待一段時間(隨機(jī)延遲)。第七步:返回到第一步。實際上,沖突是以太網(wǎng)電纜傳輸距離限制的一個因素。例如,如果兩個連接到同一總線的節(jié)點間距離超過2500米,數(shù)據(jù)傳播將發(fā)生延遲,這種延遲將阻止CSMA/CD的沖突檢測例程正確進(jìn)行