CSMA/CD协议分析笔记
CSMA/CD協議分析筆記
CSMA/CD(carrier sense multiple access with collision detection)文章目錄
- CSMA/CD協議分析筆記
- 前言
- 一、解讀CS MA / CD
- CS——“載波監聽”
- MA——“多點接入”
- CD——“碰撞(沖突)檢測”
- 二、傳播時延對載波監聽的影響
- 為什么先聽后發還是會產生沖突???
- 端到端往返傳播時延
- 三、產生沖突(確定碰撞)后的重傳時機
- 如何確定碰撞后的重傳時機??
- 最小幀長問題
- 四、強化碰撞
- 五、要點歸納
- 1.準備發送
- 2.檢測信道
- 3.邊發送邊監聽
前言
課程視頻https://www.bilibili.com/video/BV19E411D78Q/?p=35
CSMA/CD協議,意思是載波監聽多點接入/碰撞檢測,屬于共享信道中動態媒體接入控制的隨機接入的協議,即所有用戶可以隨機發送信息,發送信息時占用全部信道帶寬。
CSMA/CD口訣:先聽后發;邊聽邊發;沖突停止;隨機重發
一、解讀CS MA / CD
CS——“載波監聽”
檢測信道。不管在發送前還是發送后,每個站都必須不停地檢測信道,檢查是否有其他的計算機在發送數據。
MA——“多點接入”
總線型網絡,即計算機以多點接入地方式連接在一根總線上。
CD——“碰撞(沖突)檢測”
半雙工網絡“邊發送邊監聽”,即適配器邊發送數據邊檢測信道上地信號電壓地變化情況,以便于判斷自己在發送數據時其他站是否也在發送數據。當幾個站同時在總線上發送數據時,總線上的信號電壓變化幅度將會增大(互相疊加),當適配器檢測到地信號電壓變化幅度超過一定地門限值時,就認為總線上至少有兩個站同時發送數據,即產生了沖突或碰撞。
二、傳播時延對載波監聽的影響
為什么先聽后發還是會產生沖突???
因為電磁波在總線上總是以有限的速率傳播的。
設局域網兩端站A和站B相距1km,用同軸電纜相連。電磁波在1km電纜的傳播時延約為5us。因此,A向B發出的數據,在約5us后才能傳送到B。如果B在A發送的數據到達前發送數據,這是B的載波監聽檢測不到A發送的信息,就一定會在某個時間A的幀和B的幀碰撞。產生碰撞之后,A和B分別對數據進行差錯控制,一定會檢測到所接收到的數據出現錯誤,而碰撞之后接收的數據發生錯誤,這兩個幀都會變得無用,A和B站也會停發數據,不讓這個錯誤繼續下去。
端到端往返傳播時延
在局域網的分析中,常把總線上的單程端到端傳播時延記為τ
發送的數據站希望盡早知道是否發生了碰撞,最多要經過的時間是兩倍的總線端到端的傳播時延(2τ),或總線的端到端往返傳播時延,也稱為爭用期/沖突窗口/碰撞窗口
只要經過2τ時間還沒有檢測到碰撞,就能肯定這次發送不會發生碰撞
經過爭用期這段時間還沒有檢測到碰撞,才能肯定這次發送不會發生碰撞。
三、產生沖突(確定碰撞)后的重傳時機
以太網使用截斷二進制指數退避算法來確定碰撞后重傳的時機。這種算法讓發生碰撞的站在停止發送數據后,不是等待信道變成空閑后就立即重新發送數據,而是推遲(避讓)一個隨機的時間。
如果幾個發生碰撞的站都在監聽信道,那么都會同時發現信道變成了空閑。如果在此時都同時重新發送,那么一定會又發生碰撞
如何確定碰撞后的重傳時機??
(2)若再次碰撞,則進行第二次重傳:k=2,r從{0,1,2,3}選;重傳推遲時間為0或2τ或4τ或6τ,在這四個時間中隨機選一個
(3)若再次碰撞,則進行第三次重傳:k=3,r從{0,1,2,3,4,5,6,7}選......;
(10)若還是碰撞,則進行第十次重傳:k=10,r從{0,1,2,......,1022,1023}選......
(11)若還是碰撞,則進行第十一次重傳:k=10,r從{0,1,2,......,1022,1023}選......
(16)若還是碰撞,說明網絡太擁擠,此時認為此幀永遠無法正確發出,拋棄此幀并向高層報告出錯。
若連續發生多次沖突,就表明可能有較多的站參與爭用信道。使用此算法可使重傳需要推遲的平均時間隨重傳次數的增大而增大,因而減小發生碰撞的概率,有利于整個系統的穩定。
最小幀長問題
——幀的傳輸時延至少要兩倍的信號在總線中的傳播時延——
%為什么要設置最小幀長???%
如果某一個站發送了一個很短的幀,假定這個幀在繼續向前傳播到達目的站之前和別的站發送的幀發生了碰撞,因而目的站點接收到錯誤的幀,然后將該幀丟棄。而發送站不知道這個幀發生了碰撞,因而不會重傳此幀。
最小幀長的計算:
以太網規定的最小幀長為64B,即512bit。凡是長度小于64B的都是由于沖突而異常終止的無效幀。只要接收到這種無效幀,就應當立即丟棄。
最小幀長相關例題請跳轉到計算機網絡——CSMA/CD最小幀長相關題目
協議規定了基本推遲時間為爭用期2τ,具體的爭用期時間是51.2us。對于10Mbit/s以太網,在爭用期內可發送512bit,即64字節,也可以說爭用期是512比特時間。
四、強化碰撞
當發送數據的站點一旦發生了碰撞,除了立即停止發送數據外,還需要再繼續發送32比特或者48比特的人為干擾信號,以便于讓所有用戶都知道現在已經發生了碰撞
T1:A站從發送數據開始到檢測到碰撞并停止發送的時間間隔T2:A站得知碰撞已經發生時發送的強化碰撞的干擾信號的持續時間
發生碰撞使A浪費的時間:T1+T2
整個信道被占用的時間:T1+T2+τ
為了使剛剛收到數據幀的目的站點清理接收緩存,做好接收下一幀的準備,以太網規定了幀間最小間隔9.6us,相當于96比特時間。
五、要點歸納
1.準備發送
在發送數據幀之前,先要檢測信道。適配器從網絡層獲得一個分組,加上以太網的首部和尾部,組成以太網幀,放入適配器的緩存中。
2.檢測信道
若檢測到信道忙,就不停的檢測信道,一直等待信道轉為空閑。
若檢測到信道為空閑,并在96比特時間內信道保持空閑(保證了幀間最小間隔),就發送這個幀。
3.邊發送邊監聽
-
發送成功
在爭用期內一直未檢測到碰撞,那么這個幀肯定能發送成功。 -
發送失敗
(1)在爭用期內檢測到碰撞,這時立即停止發送數據,按照規定發送人為干擾信號
(2)適配器執行截斷二進制指數退避算法,等待r倍的512比特時間后,返回步驟2繼續檢測信道
(3)若重傳16次仍不能成功,則停止重傳向上報錯
以太網每發完一個幀,一定要把已發送的幀暫時保留一下。如果在爭用期內檢測出發生了碰撞,那么還要再推遲了一段時間后再把這個幀重傳一次。
總結
以上是生活随笔為你收集整理的CSMA/CD协议分析笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java--线程同步
- 下一篇: 标准化