什麼是載波偵聽多路訪問/衝突避免(CSMA/CA)協議
發展背景(出因):
在總線和環形拓撲中,網絡上的設備必須共享傳輸線路,為解決同一時間幾個設備同時爭用傳輸介質,需要有某種訪問控制方式,以便協調各設備訪問介質的順序,在設備之間交換數據。
在總線系統中,每個站都能獨立地決定幀的發送,若兩個或多個站同時發送,就產生衝突,同時發送的所有幀都會出錯。因此一個用戶發送信息成功與否在很大程度上取決於總線是否空閒的算法以及兩個不同節點同時發送的分組發生衝突時所使用和中斷傳輸的方法,總線爭用技術分為載波監聽多路訪問(CSMA)和具有衝突檢測的載波監聽多路訪問(CSMA/CD)這兩大類。載波監聽多路訪問(CSMA)的技術,也叫做先聽後說(LBT),希望傳輸的站首先對信道進行監聽以確定是否有別的站在傳輸。如果信道空閒,該站可以傳輸,否則,該站將避讓一段時間後再嘗試。需要有一種退避算法來決定退讓時間。常用的有三種算法。1、非堅持CSMA;2、1-堅持CSMA;3、P-堅持CSMA。
通信中對介質的訪問可以是隨機的,即各工作站可以在任何時刻、任意地訪問介質;也可以是受控的,即各工作站可以用一定的算法調整各站訪問介質的順序和時間。在隨機訪問方式中,常用的爭用總線技術為CSMA/CD.
這種控制方式對任何工作站都沒有預約發送時間,工作站的發送是隨機的,必須在網絡上爭用傳輸介質,故稱之為爭用技術。若同一時刻有多個工作站向傳輸線路發送信息,則這些信息會在傳輸線上互相混淆而遭破壞,稱為「衝突」。為儘量避免由於竟爭引起的衝突,每個工作站在發送信息之前,都要監聽傳輸線上是否有信息在發送,這就是「載波監聽」。
CSMA是從一種叫ALOHA的控制協議演變而來的,之所以要採用這種控制協議,是因為當許多用戶共享一個容量為C b/s的信道時,如果兩個或更多的用戶同時都在共享信道上發送信息,這樣就會產生衝突。習慣上把這種衝突叫做碰撞。碰撞的產生會導致衝突的用戶發送都告失敗。如圖所示:
由圖可知,一個幀若要發送成功,必須在發送時刻之前和之後各有一段時間T0內沒有其他幀的發送,否則就必然產生衝突而導致失敗。這樣,一個幀發送成功的條件就是該幀與該幀前後的兩個幀到達的時間間隔大於T0.
基本定義或原理:
載波監聽多路訪問/衝突檢測(CSMA/CD):在CSMA中,由於通道的傳播延遲,當兩個站點監聽到總線上沒有存在信號而發送幀時,仍會發生衝突。由於CSMA算法沒有衝突檢測功能,即使衝突己發生,仍然要將已破壞的幀發送完,使總線的利用率降低。
一種CSMA的改進方案是使站點在傳輸時間繼續監聽媒體,一旦檢測到衝突,就立即停止發送,並向總線上發一串短的阻塞報文(Jam),通知總線上各站衝突己發生,這樣通道容量不致因白白傳送己受損的幀而浪費,可以提高總線的利用率,這就稱作載波監聽多路訪問/衝突檢測協議,簡寫為CSMA/CD,這種協議己廣泛應用於乙太網和IEEE802.3標準中。
此時,浪費掉的帶寬就減少為用檢測衝突所花費的時間。那麼,怎麼來估算所需的衝突檢測時間呢?對於基帶總線而言,此時用於檢測一個衝突的時間等於任意兩個站之間最大的傳播延遲的兩倍,所以對於基帶CSMA/CD,要求分組長度應該至少兩倍於傳播延遲,否則在檢測出衝突之前傳輸已經完成,但實際上分組被衝突所破壞。
應用:CSMA/CD是用爭用的方法來決定對介質的訪問權。而這種爭用協議一般用於總線網。載波監聽多路訪問(CSMA) 發展情況及存在問題:
CSMA/CD總線網絡中的一個關鍵技術問題是衝突控制或衝突分解問題,即由於發送衝突而遭碰撞的報文要經過一段隨機延時後重發,典型的衝突控制算法,亦即後退算法有以下五種:二進位指數後退算法BEB、多項式後退算法PB、線性增值後退算法LIB、固定平均後退算法FMB、順序後退算法OB.