CSMA_CD协议
CSMA/CD协议是在一种广播信道中一种典型的协调多个用户使用广播信道的协议,该协议的实质也就是载波监听和碰撞检测
可以想象这样一种场景,a要发消息给b,但是发消息的这条链路是共享的,不知道现在被占用没?就先检测一下总线上是否有其它人再发数据,如果有就等到总线空闲的时候再发。这就是载波监听。
那么还有一种场景就是a要发消息给b,不管三七二十一先把数据发出去,然后再检测信道上信号电压变化情况,发现和别的数据撞车了就会停止发放,等待一段时间的空闲时间再发。这就是碰撞检测。
CSMA/CD 的发送流程可以简单的概括为 4 点:
(1)载波侦听过程
根据监听到介质状态后采取的回避策略可将 CSMA 分为下面几种:
非坚持型 CSMA
① 信道空闲,立即发送。
当监听到信道忙的时候,不再坚持监听,而是随机延后一段时间再来监听
缺点:很可能在再次监听之前信道已空闲了,与其它站的冲突概率最低,但产生严重信道浪费。
坚持型 CSMA(1-坚持 CSMA)
① 信道空闲,立即发送。
② 当监听到信道忙状态时,就坚持监听,直到信道空闲,立即发送一帧。
③ 假如有冲突发生,则等待一段随机长的时间后再监听信道。
缺点:当某站要送数据时,先监听信道,若信道忙,若两个或两个站同时监听到信道空闲,立即发送,必定冲突,即冲突概率为
1,故称之为 1-坚持型。
(2)冲突检测
CSMA/CD 总线网络中最短帧长的计算关系式:
以太网的端到端往返时延2t称为正勇气,或者冲突窗口、冲突时槽。为了检测冲突,要求:
传输时延>=2*传播时延
也就是上图的关系式:数据帧长/带宽>=2*信道长度/电磁波在信道中的传播速度
(3)发现冲突、停止发送
(4)随机延迟重发
以太网采用截断二进制指数退避算法来解决碰撞问题。这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后就立即再发送数据,而是推迟一个随机的时间。这样做是为了使的重传时再次发生冲突的概率减少,当重传此数达
16
次仍不能成功时,则表明同时打算发送数据的站太多,以至连续发生冲突,则丢弃该帧,并向高层报告。
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
基本退避时间取为争用期2r
从整数集合[0,1,。。。。,(2的k次方-1)]中随机的取出一个数,记为r。重传所需的实验就是r倍的基本退避时间。
参考k按下面的公式计算:
k=min[重传次数,10]
当k<=10时,参数k等于重传次数。
当重传达16次仍不能成功时则既丢弃该帧,并向高层报告
其它局域网标准