載波監(jiān)聽 在CSMA中,由于通道的傳播延遲,當(dāng)兩個站點監(jiān)聽到總線上沒有存在信號而發(fā)送幀時,仍會發(fā)生沖突。由于CSMA算法沒有沖突檢測功能,即使沖突己發(fā)生,仍然要將已破壞的幀發(fā)送完,使總線的利用率降低。改進(jìn)方案是使站點在傳輸時間繼續(xù)監(jiān)聽媒體,一旦檢測到?jīng)_突,就立即停止發(fā)送,并向總線上發(fā)一串短的阻塞報文(Jam),通知總線上各站沖突己發(fā)生,可以提高總線的利用率。
載波監(jiān)聽 載波監(jiān)聽多路訪問CSMA的技術(shù),也稱做無聽后說LBT(Listem Before Talk)。要傳輸數(shù)據(jù)的站點首先對媒體上有無載波進(jìn)行監(jiān)聽,以確定是否有別的站點在傳輸數(shù)據(jù)。假如媒體空閑,該站點便可傳輸數(shù)據(jù);否則,該站點將避讓一段時間后再做嘗試。這就需要有一種退避算法來決定避讓的時間,常用的退避算法有非堅持、1-堅持、P-堅持三種。
1、非堅持算法
算法規(guī)則為:⑴假如媒本是空閑的,則可以立即發(fā)送。⑵假如媒體是忙的,則等待一個由概率分布決定的隨機(jī)重發(fā)延遲后,再重復(fù)前一步驟。采用隨機(jī)的重發(fā)延遲時間可以減少沖突發(fā)生的可能性。非堅持算法的缺點是:即使有幾個著眼點為都有數(shù)據(jù)要發(fā)送,但由于大家都在延遲等待過程中,致使媒體仍可能處于空閑狀態(tài),使用率降低。
2、1-堅持算法
算法規(guī)則:⑴假如媒體空閑的,則可以立即發(fā)送。⑵假如媒體是忙的,則繼續(xù)監(jiān)聽,直至檢測到媒體是空閑,立即發(fā)送。⑶假如有沖突(在一段時間內(nèi)未收到肯定的回復(fù)),則等待一隨機(jī)量的時間,重復(fù)步驟⑴~⑵。
這種算法的優(yōu)點是:只要媒體空閑,站點就立即可發(fā)送,避免了媒體利用率的損失;其缺點是:假若有兩個或兩個以上的站點有數(shù)據(jù)要發(fā)送,沖突就不可避免。
3、P-堅持算法
算法規(guī)則:⑴監(jiān)聽總線,假如媒體是空閑的,則以P的概率發(fā)送,而以(1-P)的概率延遲一個時間單位。一個時間單位通常等于最大傳播時延的2倍。⑵延遲一個時間單位后,再重復(fù)步驟⑴。⑶假如媒體是忙的,繼續(xù)監(jiān)聽直至媒體空閑并重復(fù)步驟⑴。
P-堅持算法是一種既能像非堅持算法那樣減少沖突,又能像1-堅持算法那樣減少媒體空閑時間的折中方案。問題在于如何選擇P的有值,這要考慮到避免重負(fù)載下系統(tǒng)處于的不穩(wěn)定狀態(tài)。假如媒體是忙時,有N個站有數(shù)據(jù)等待發(fā)送,一旦當(dāng)前的發(fā)送完成時,將要試圖傳輸?shù)恼镜目偲谕麛?shù)為NP。假如選擇P過大,使NP>1,表明有多個站點試圖發(fā)送,沖突就不可避免。最壞的情況是,隨著沖突概率的不斷增大,而使吞吐量降低到零。所以必須選擇適當(dāng)P值使NP<1。當(dāng)然P值選得過小,則媒體利用率又會大大降低。
幀的平均傳輸時延與吞吐量的關(guān)系曲線 在總線和環(huán)形拓?fù)渲,網(wǎng)絡(luò)上的設(shè)備必須共享傳輸線路,為解決同一時間幾個設(shè)備同時爭用傳輸介質(zhì),需要有某種訪問控制方式,以便協(xié)調(diào)各設(shè)備訪問介質(zhì)的順序,在設(shè)備之間交換數(shù)據(jù)。
在總線系統(tǒng)中,每個站都能獨(dú)立地決定幀的發(fā)送,若兩個或多個站同時發(fā)送,就產(chǎn)生沖突,同時發(fā)送的所有幀都會出錯。因此一個用戶發(fā)送信息成功與否在很大程度上取決于總線是否空閑的算法以及兩個不同節(jié)點同時發(fā)送的分組發(fā)生沖突時所使用和中斷傳輸?shù)姆椒,總線爭用技術(shù)分為載波監(jiān)聽多路訪問(CSMA)和具有沖突檢測的載波監(jiān)聽多路訪問(CSMA/CD)這兩大類。載波監(jiān)聽多路訪問(CSMA)的技術(shù),也叫做先聽后說(LBT),希望傳輸?shù)恼臼紫葘π诺肋M(jìn)行監(jiān)聽以確定是否有別的站在傳輸。如果信道空閑,該站可以傳輸,否則,該站將避讓一段時間后再嘗試。需要有一種退避算法來決定退讓時間。常用的有三種算法。1、非堅持CSMA;2、1-堅持CSMA;3、P-堅持CSMA。
通信中對介質(zhì)的訪問可以是隨機(jī)的,即各工作站可以在任何時刻、任意地訪問介質(zhì);也可以是受控的,即各工作站可以用一定的算法調(diào)整各站訪問介質(zhì)的順序和時間。在隨機(jī)訪問方式中,常用的爭用總線技術(shù)為CSMA/CD.
這種控制方式對任何工作站都沒有預(yù)約發(fā)送時間,工作站的發(fā)送是隨機(jī)的,必須在網(wǎng)絡(luò)上爭用傳輸介質(zhì),故稱之為爭用技術(shù)。若同一時刻有多個工作站向傳輸線路發(fā)送信息,則這些信息會在傳輸線上互相混淆而遭破壞,稱為“沖突”。為盡量避免由于竟?fàn)幰鸬臎_突,每個工作站在發(fā)送信息之前,都要監(jiān)聽傳輸線上是否有信息在發(fā)送,這就是“載波監(jiān)聽”。
CSMA是從一種叫ALOHA的控制協(xié)議演變而來的,之所以要采用這種控制協(xié)議,是因為當(dāng)許多用戶共享一個容量為C b/s的信道時,如果兩個或更多的用戶同時都在共享信道上發(fā)送信息,這樣就會產(chǎn)生沖突。習(xí)慣上把這種沖突叫做碰撞。碰撞的產(chǎn)生會導(dǎo)致沖突的用戶發(fā)送都告失敗。
載波監(jiān)聽 載波監(jiān)聽多路訪問/沖突檢測(CSMA/CD):在CSMA中,由于通道的傳播延遲,當(dāng)兩個站點監(jiān)聽到總線上沒有存在信號而發(fā)送幀時,仍會發(fā)生沖突。由于CSMA算法沒有沖突檢測功能,即使沖突己發(fā)生,仍然要將已破壞的幀發(fā)送完,使總線的利用率降低。
一種CSMA的改進(jìn)方案是使站點在傳輸時間繼續(xù)監(jiān)聽媒體,一旦檢測到?jīng)_突,就立即停止發(fā)送,并向總線上發(fā)一串短的阻塞報文(Jam),通知總線上各站沖突己發(fā)生,這樣通道容量不致因白白傳送己受損的幀而浪費(fèi),可以提高總線的利用率,這就稱作載波監(jiān)聽多路訪問/沖突檢測協(xié)議,簡寫為CSMA/CD,這種協(xié)議己廣泛應(yīng)用于以太網(wǎng)和IEEE802.3標(biāo)準(zhǔn)中。
此時,浪費(fèi)掉的帶寬就減少為用檢測沖突所花費(fèi)的時間。那么,怎么來估算所需的沖突檢測時間呢?對于基帶總線而言,此時用于檢測一個沖突的時間等于任意兩個站之間最大的傳播延遲的兩倍,所以對于基帶CSMA/CD,要求分組長度應(yīng)該至少兩倍于傳播延遲,否則在檢測出沖突之前傳輸已經(jīng)完成,但實際上分組被沖突所破壞。
CSMA/CD是用爭用的方法來決定對介質(zhì)的訪問權(quán)。而這種爭用協(xié)議一般用于總線網(wǎng)。載波監(jiān)聽多路訪問(CSMA) 發(fā)展情況及存在問題:
CSMA/CD總線網(wǎng)絡(luò)中的一個關(guān)鍵技術(shù)問題是沖突控制或沖突分解問題,即由于發(fā)送沖突而遭碰撞的報文要經(jīng)過一段隨機(jī)延時后重發(fā),典型的沖突控制算法,亦即后退算法有以下五種:二進(jìn)制指數(shù)后退算法BEB、多項式后退算法PB、線性增值后退算法LIB、固定平均后退算法FMB、順序后退算法OB.
網(wǎng)絡(luò)通信原理圖 在CSMA中,由于信道傳播時延的存在,即使總線上兩個站點沒有監(jiān)聽到載波信號而發(fā)送幀時,仍可能會發(fā)生沖突。由于CSMA算法沒有沖突檢測功能,即使沖突已發(fā)和,仍然將已破壞的幀發(fā)送完,使總線的利用率降低。
一種CSMA的改進(jìn)方案是使發(fā)送站點傳輸過程中仍繼續(xù)監(jiān)聽媒體,以檢測是否存在沖突。假如發(fā)生沖突,信道上可以檢測到超過發(fā)送站點本身發(fā)送的載波信號的幅度,由此判定出沖突的存在。一于檢測到?jīng)_突,就立即停止發(fā)送,并向總線上發(fā)一串阻塞信號,用以通知總線上其它各有關(guān)站點。這樣,通道容量就不致因白白傳送已受損的幀而浪費(fèi),可以提高總線的利用率。這種方案稱做載波監(jiān)聽多路訪問/沖突檢測協(xié)議,簡寫為CSMA/CD,這種協(xié)議已廣泛應(yīng)用于局域網(wǎng)中。
CSMA/CD的代價是用于檢測沖突所花費(fèi)的時間。對于基帶總線而言,最壞情況下用于檢測一個沖突的時間等于任意兩個站之間傳播時延的兩倍。從一個站點開始發(fā)送數(shù)據(jù)到另一個站點開始接收數(shù)據(jù),也即載波信號從一端傳播到另一端所需的時間,稱為信號傳播時延。信號傳播時延(μs)=兩站點的距離(m)/信號傳播速度(200m/μs)。假定A、B兩個站點位于總線兩端,兩站點之間的最大傳播時延為tp。當(dāng)A站點發(fā)送數(shù)據(jù)后,經(jīng)過接近于最大傳播時延tp時,B站點正好也發(fā)送數(shù)據(jù),此時沖突便發(fā)生。發(fā)生沖突后,B 站點立即可檢測到該沖突,而A站點需再經(jīng)過一份最大傳播時延tp后,才能檢測出沖突。也即最壞情況下,對于基帶CSMA/CD來說,檢測出一個沖突的時間等于任意兩個站之間最大傳播時延的兩倍(2tp)。
數(shù)據(jù)幀從一個站點開始發(fā)送,到該數(shù)據(jù)幀發(fā)送完畢所需的時間和為數(shù)據(jù)傳輸時延;同理,數(shù)據(jù)傳輸時延也表示一個接收站點開始接收數(shù)據(jù)幀,到該數(shù)據(jù)幀接收完畢所需的時間。數(shù)據(jù)傳輸時延(s)=數(shù)據(jù)幀長度(bit)/數(shù)據(jù)傳輸速率(bps)。若不考慮中繼器引入的延遲,數(shù)據(jù)幀從一個站點開始發(fā)送,到該數(shù)據(jù)幀被另一個站點全部接收所需的總時間,等于數(shù)據(jù)傳輸時延與信號傳播時延之和。
由上述分析可知,為了確保發(fā)送數(shù)據(jù)站點在傳輸時能檢測到可能存在的沖突,數(shù)據(jù)幀的傳輸時延至少要兩倍于傳播時延。換句話說,要求分組的長度不短于某個值,否則在檢測出沖突之前傳輸已經(jīng)結(jié)束,但實際上分組已被沖突所破壞。
由于單向傳輸?shù)脑颍瑢τ趯拵Э偩而言,沖突檢測時間等于任意兩個站之間最大傳播時延的4倍。所以,
對于寬帶CSMA/CD來說,要求數(shù)據(jù)幀的傳輸時延至少4倍于傳播時延。
在CSMA/CD算法中,一旦檢測到?jīng)_突并發(fā)完阻塞信號后,為了降低再次沖突的概率,需要等待一個隨機(jī)時間,然后再使用CSMA方法試圖傳輸。為了保證這種退避操作維持穩(wěn)定采用了一種稱為二進(jìn)制指數(shù)退避和算法,其規(guī)則如下:(1)對每個數(shù)據(jù)幀,當(dāng)?shù)谝淮伟l(fā)生沖突時,設(shè)置一個參量L=2;(2)退避間隔取1到L個時間片中的一個隨機(jī)數(shù),1個小時片等于兩站之間的最大傳播時延的兩倍;(3)當(dāng)數(shù)據(jù)幀再次發(fā)生沖突,由將參量L加倍;(4)設(shè)置一個最大重傳次數(shù),超過該次數(shù),則不再重傳,并報告出錯。
二進(jìn)制指數(shù)退避算法是按后進(jìn)先出LIFO(List In First Out)的次序控制的,即未發(fā)生沖突或很少發(fā)生沖突的數(shù)據(jù)幀,具有優(yōu)先發(fā)送的概率;而發(fā)生過多次沖突的數(shù)據(jù)幀,發(fā)送成功的概率就更少。
IEEE 802.3就是采用二進(jìn)制指數(shù)退避和1-堅持算法的CSMA/CD媒體訪問控制方法。這種方法在低負(fù)荷時,如媒體空閑時,要發(fā)送數(shù)據(jù)幀的站點能立即發(fā)送;在重負(fù)荷時,仍能保證系統(tǒng)的穩(wěn)定性。由于在媒體上傳播的信號會衰減,為確保能檢測出沖突信號,CSMA/CD總線網(wǎng)限制一段無分支電纜的最大長度為500米。
二進(jìn)制指數(shù)后退算法 |
多項式后退算法 |
線性增值后退算法 |
固定平均后退算法 |
順序后退算法 |
數(shù)據(jù)幀長度 |
傳播時延 |
阻塞報文 |
監(jiān)聽傳輸線 |
[1] 學(xué)習(xí)點評網(wǎng) http://www.stuvs.com/skills/NetworkEngineering/wlzs/20071221/32887.html
[2] 中電網(wǎng) http://baike.chinaecnet.com/eewiki/index.php/%E8%BD%BD%E6%B3%A2%E4%BE%A6%E5%90%AC%E5%A4%9A%E8%B7%AF%E8%AE%BF%E9%97%AE/%E5%86%B2%E7%AA%81%E9%81%BF%E5%85%8D(CSMA/CA)%E5%8D%8F%E8%AE%AE