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