基本介紹
在CSMA中,由于通道的傳播延遲,當兩個站點監聽到總線上沒有存在信號而發送幀時,仍會發生沖突。由于CSMA算法沒有沖突檢測功能,即使沖突己發生,仍然要將已破壞的幀發送完,使總線的利用率降低。改進方案是使站點在傳輸時間繼續監聽媒體,一旦檢測到沖突,就立即停止發送,并向總線上發一串短的阻塞報文(Jam),通知總線上各站沖突己發生,可以提高總線的利用率。
載波監聽多路訪問CSMA的技術,也稱做先聽后說LBT(Listen Before Talk)。要傳輸數據的站點首先對媒體上有無載波進行監聽,以確定是否有別的站點在傳輸數據。假如媒體空閑,該站點便可傳輸數據;否則,該站點將避讓一段時間后再做嘗試。這就需要有一種退避算法來決定避讓的時間,常用的退避算法有非堅持、1-堅持、P-堅持三種。
非堅持算法
算法規則為:⑴假如媒本是空閑的,則可以立即發送。⑵假如媒體是忙的,則等待一個由概率分布決定的隨機重發延遲后,再重復前一步驟。采用隨機的重發延遲時間可以減少沖突發生的可能性。非堅持算法的缺點是:即使有幾個著眼點為都有數據要發送,但由于大家都在延遲等待過程中,致使媒體仍可能處于空閑狀態,使用率降低。
1-堅持算法
算法規則:⑴假如媒體空閑的,則可以立即發送。⑵假如媒體是忙的,則繼續監聽,直至檢測到媒體是空閑,立即發送。⑶假如有沖突(在一段時間內未收到肯定的回復),則等待一隨機量的時間,重復步驟⑴~⑵。
這種算法的優點是:只要媒體空閑,站點就立即可發送,避免了媒體利用率的損失;其缺點是:假若有兩個或兩個以上的站點有數據要發送,沖突就不可避免。
P-堅持算法
算法規則:⑴監聽總線,假如媒體是空閑的,則以P的概率發送,而以(1-P)的概率延遲一個時間單位。一個時間單位通常等于最大傳播時延的2倍。⑵延遲一個時間單位后,再重復步驟⑴。⑶假如媒體是忙的,繼續監聽直至媒體空閑并重復步驟⑴。
P-堅持算法是一種既能像非堅持算法那樣減少沖突,又能像1-堅持算法那樣減少媒體空閑時間的折中方案。問題在于如何選擇P的有值,這要考慮到避免重負載下系統處于的不穩定狀態。假如媒體是忙時,有N個站有數據等待發送,一旦當前的發送完成時,將要試圖傳輸的站的總期望數為NP。假如選擇P過大,使NP>1,表明有多個站點試圖發送,沖突就不可避免。最壞的情況是,隨著沖突概率的不斷增大,而使吞吐量降低到零。所以必須選擇適當P值使NP<1。當然P值選得過小,則媒體利用率又會大大降低。
幀的平均傳輸時延與吞吐量的關系曲線
載波監聽多路訪問/沖突檢測(CSMA/CD):在CSMA中,由于通道的傳播延遲,當兩個站點監聽到總線上沒有存在信號而發送幀時,仍會發生沖突。由于CSMA算法沒有沖突檢測功能,即使沖突己發生,仍然要將已破壞的幀發送完,使總線的利用率降低。一種CSMA的改進方案是使站點在傳輸時間繼續監聽媒體,一旦
網絡通信原理圖
基本定義
檢測到沖突,就立即停止發送,并向總線上發一串短的阻塞報文(Jam),通知總線上各站沖突己發生,這樣通道容量不致因白白傳送己受損的幀而浪費,可以提高總線的利用率,這就稱作載波監聽多路訪問/沖突檢測協議,簡寫為CSMA/CD,這種協議己廣泛應用于以太網和IEEE802.3標準中。
此時,浪費掉的帶寬就減少為用檢測沖突所花費的時間。那么,怎么來估算所需的沖突檢測時間呢?對于基帶總線而言,此時用于檢測一個沖突的時間等于任意兩個站之間最大的傳播延遲的兩倍,所以對于基帶CSMA/CD,要求分組長度應該至少兩倍于傳播延遲,否則在檢測出沖突之前傳輸已經完成,但實際上分組被沖突所破壞。
發展應用
CSMA/CD是用爭用的方法來決定對介質的訪問權。而這種爭用協議一般用于總線網。載波監聽多路訪問(CSMA) 發展情況及存在問題:
CSMA/CD總線網絡中的一個關鍵技術問題是沖突控制或沖突分解問題,即由于發送沖突而遭碰撞的報文要經過一段隨機延時后重發,典型的沖突控制算法,亦即后退算法有以下五種:二進制指數后退算法BEB、多項式后退算法PB、線性增值后退算法LIB、固定平均后退算法FMB、順序后退算法OB。
沖突檢測協議
在CSMA中,由于信道傳播時延的存在,即使總線上兩個站點沒有監聽到載波信號而發送幀時,仍可能會發生沖突。由于CSMA算法沒有沖突檢測功能,即使沖突已發生,仍然將已破壞的幀發送完,使總線的利用率降低。
一種CSMA的改進方案是使發送站點傳輸過程中仍繼續監聽媒體,以檢測是否存在沖突。假如發生沖突,信道上可以檢測到超過發送站點本身發送的載波信號的幅度,由此判定出沖突的存在。一于檢測到沖突,就立即停止發送,并向總線上發一串阻塞信號,用以通知總線上其它各有關站點。這樣,通道容量就不致因白白傳送已受損的幀而浪費,可以提高總線的利用率。這種方案稱做載波監聽多路訪問/沖突檢測協議,簡寫為CSMA/CD,這種協議已廣泛應用于局域網中。
CSMA/CD的代價是用于檢測沖突所花費的時間。對于基帶總線而言,最壞情況下用于檢測一個沖突的時間等于任意兩個站之間傳播時延的兩倍。從一個站點開始發送數據到另一個站點開始接收數據,也即載波信號從一端傳播到另一端所需的時間,稱為信號傳播時延。信號傳播時延(μs)=兩站點的距離(m)/信號傳播速度(200m/μs)。假定A、B兩個站點位于總線兩端,兩站點之間的最大傳播時延為tp。當A站點發送數據后,經過接近于最大傳播時延tp時,B站點正好也發送數據,此時沖突便發生。發生沖突后,B 站點立即可檢測到該沖突,而A站點需再經過一份最大傳播時延tp后,才能檢測出沖突。也即最壞情況下,對于基帶CSMA/CD來說,檢測出一個沖突的時間等于任意兩個站之間最大傳播時延的兩倍(2tp)。
數據幀從一個站點開始發送,到該數據幀發送完畢所需的時間和為數據傳輸時延;同理,數據傳輸時延也表示一個接收站點開始接收數據幀,到該數據幀接收完畢所需的時間。數據傳輸時延(s)=數據幀長度(bit)/數據傳輸速率(bps)。若不考慮中繼器引入的延遲,數據幀從一個站點開始發送,到該數據幀被另一個站點全部接收所需的總時間,等于數據傳輸時延與信號傳播時延之和。
由上述分析可知,為了確保發送數據站點在傳輸時能檢測到可能存在的沖突,數據幀的傳輸時延至少要兩倍于傳播時延。換句話說,要求分組的長度不短于某個值,否則在檢測出沖突之前傳輸已經結束,但實際上分組已被沖突所破壞。
由于單向傳輸的原因,對于寬帶總線而言,沖突檢測時間等于任意兩個站之間最大傳播時延的4倍。所以,
對于寬帶CSMA/CD來說,要求數據幀的傳輸時延至少4倍于傳播時延。
在CSMA/CD算法中,一旦檢測到沖突并發完阻塞信號后,為了降低再次沖突的概率,需要等待一個隨機時間,然后再使用CSMA方法試圖傳輸。為了保證這種退避操作維持穩定采用了一種稱為二進制指數退避和算法,其規則如下:⑴對每個數據幀,當第一次發生沖突時,設置一個參量L=2;⑵退避間隔取1到L個時間片中的一個隨機數,1個小時片等于兩站之間的最大傳播時延的兩倍;⑶當數據幀再次發生沖突,由將參量L加倍;⑷設置一個最大重傳次數,超過該次數,則不再重傳,并報告出錯。
二進制指數退避算法是按后進先出LIFO(List In First Out)的次序控制的,即未發生沖突或很少發生沖突的數據幀,具有優先發送的概率;而發生過多次沖突的數據幀,發送成功的概率就更少。
IEEE 802.3就是采用二進制指數退避和1-堅持算法的CSMA/CD媒體訪問控制方法。這種方法在低負荷時,如媒體空閑時,要發送數據幀的站點能立即發送;在重負荷時,仍能保證系統的穩定性。由于在媒體上傳播的信號會衰減,為確保能檢測出沖突信號,CSMA/CD總線網限制一段無分支電纜的最大長度為500米。
-
CSMA
+關注
關注
0文章
28瀏覽量
13003
原文標題:載波監聽
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論