CSMA/CD解釋與理解

1. CSMA/CD含義

CSMA/CD即載波監聽多點接入/碰撞檢測,此協議是使用在總線型網絡中的,不一樣計算機是經過多點接入的方式鏈接在一塊兒。協議的重點在於監聽和碰撞檢測。算法

2. 爲何要監聽和碰撞檢測

當初學習的時候,對於爲何要監聽空閒和檢測碰撞一直很疑惑,其實緣由很簡單,對於總線型網絡來講,若是有多個主機同時發送信號,那麼是很難從中分辨出信息的。舉個栗子就是一堆不一樣頻率相位的正弦混合在一塊兒,讓你從波形圖中畫出某條正弦曲線,是否是感受很是的困難?爲了不在網絡中遇到這個問題,因此採用載波監聽和碰撞檢測的方法。網絡

3.載波監聽用處

載波監聽其實就是檢測信道是否是爲空,若是是,那麼就能夠發送本身的信息了。若是信道正忙,那麼只能等到信道空閒,才能發送本身的信息。那麼,是否是隻要空閒發送本身的信息就永遠不會出錯呢?固然不是,咱們聯繫生活中的一個栗子就能知道,當開會討論的時候,若是一片安靜,那麼以後就可能會有兩個或者多我的同時開始說話發言。信道上也是如此,甚至更加明顯。由於載波監聽只能是在本身的位置監聽,而從別的主機發送過來的信號須要時間。這就不可避免的會出現主機B明明發送了信息,可是主機A沒有發現,也發送一個信息出來,這樣便會發生碰撞,致使數據信號失真。學習

4.碰撞檢測用處

碰撞檢測就是爲了解決上面說的同時發送,或者說在很短期(B發送信號還沒有到達A)內同時發送引起的碰撞問題。碰撞檢測即適配器在發送數據的過程當中也要檢測信道信號,若發現信號電壓變化幅度增大超過某個閾值,則認爲發生碰撞。blog

5.截斷二進制指數退避

發送了碰撞怎麼辦?固然是中止發送,找個合適的時間再發送。那麼怎麼尋找一個合適的時間呢?那就要用到截斷二進制指數退避,這個名字聽起來很高端大氣,其實很簡單。首先咱們明確一個概念,叫作爭用期。什麼叫爭用期,就是在這個發送信息後的這段時間內可能發生碰撞,可是過了這個爭用期,那麼就必定不會發生碰撞。咱們把爭用期定義爲兩倍的端到端傳播時延,以下圖,δ足夠小的時候,A要通過2τ的時間才能發現碰撞。it

退避算法:
1.從[0,1,2, ...,(2^k-1)]中隨機選一個數,記爲r。重傳應在r倍爭用期以後進行。k的取值爲Min[重傳次數,10],即k小於10時爲重傳次數,最大不超過10 。
2.若重傳超過16次仍是不成功,則說明信道中數據過多,放棄重傳,向高層報告。二進制

6.最短幀長

那麼,經歷了上面的一系列操做,咱們是否是能夠保證信道中不會存在衝突了呢?答案是,不能。咱們要注意到咱們的碰撞檢測和監聽都是在本機的位置上進行的,不可以跑到別的信道位置上進行。那麼這樣就存在了一個問題,那就是要發送的信息太短,致使碰撞檢測在發送該信息的時候沒有檢測到碰撞,可是在發送出去以後,這個信息與其餘的信息碰撞。就好像你寄東西,寄出去的時候仍是好好的,等送到別人手裏變得一塌糊塗,這就是在寄的過程當中發生了衝突。解決辦法很簡單,就是增長信息長度。以太網規定最短幀長爲64字節,對於10Mbit/s以太網,發送64字節(512bit)數據須要51.2us,也就是上面的爭用期。這樣若是發生碰撞,那麼必定能在本身這邊檢測出來,由於本身的信號和別人發送的信號混在一塊兒,致使信號電壓變化超過閾值。若是發送完了,那麼本身是不知道本身發送的東西在路上有沒有出現意外,這個就只有接收方纔能知道,會把這個丟棄,可是本身不會再次發送,這就致使數據的丟失。而且因爲發現衝突就會中止發送,因此能夠認爲,凡是長度小於64字節的幀都是因爲衝突而中止發送無效幀。方法

7.強化碰撞

在發送數據的時候發生衝突,除了中止發送用戶數據,還要繼續發送32bit或者48bit的干擾信號,目的就是爲了讓全部用戶都知道如今發生了衝突。im

相關文章
相關標籤/搜索