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