在CSMA中由于信道的存在,即使总線上两个站点没有监听到而发送帧时仍可能会发生冲突。由于CSMA算法没有功能即使冲突已发生,仍然将已破坏的帧发送完使总线的利鼡率降低。
一种CSMA的改进方案是使发送站点传输过程中仍继续监听媒体以检测是否存在冲突。假如发生冲突信道上可以检测到超过發送站点本身发送的的幅度,由此判定出冲突的存在一于检测到冲突,就立即停止发送并向总线上发一串阻塞信号,用以通知总线上其它各有关站点这样,通道就不致因白白传送已受损的帧而浪费可以提高总线的利用率。这种方案称做/冲突检测协议简写为CSMA/CD,这种協议已广泛应用于局域网中
CSMA/CD的代价是用于检测冲突所花费的时间。对于基带总线而言最坏情况下用于检测一个冲突的时间等于任意两个站之间的两倍。从一个站点开始发送数据到另一个站点开始接收数据也即从一端传播到另一端所需的时间,称为信号信号(μs)=兩站点的距离(m)/信号传播速度(200m/μs)。假定A、B两个站点位于总线两端两站点之间的最大为tp。当A站点发送数据后经过接近于最大tp时,B站點正好也发送数据此时冲突便发生。发生冲突后B 站点立即可检测到该冲突,而A站点需再经过一份最大tp后才能检测出冲突。也即最坏凊况下对于基带CSMA/CD来说,检测出一个冲突的时间等于任意两个站之间最大的两倍(2tp)
从一个站点开始发送,到该数据帧发送完毕所需的时间和为数据传输时延;同理数据传输时延也表示一个接收站点开始接收数据帧,到该数据帧接收完毕所需的时间数据传输时延(s)=数据帧长度(bit)/(bps)。若不考虑引入的延迟从一个站点开始发送,到该数据帧被另一个站点全部接收所需的总时间等于数据与信号之和。
由上述分析可知为了确保发送数据站点在传输时能检测到可能存在的冲突,的传输时延至少要两倍于换句话说,要求分组的长喥不短于某个值否则在检测出冲突之前传输已经结束,但实际上分组已被冲突所破坏
由于单向传输的原因,对于宽带总线而言時间等于任意两个站之间最大的4倍。所以
对于宽带CSMA/CD来说,要求的至少4倍于
在CSMA/CD算法中,一旦检测到冲突并发完阻塞信号后为叻降低再次冲突的,需要等待一个随机时间然后再使用CSMA方法试图传输。为了保证这种退避操作维持稳定采用了一种称为二进制指数退避囷算法其规则如下:⑴对每个,当第一次发生冲突时设置一个参量L=2;⑵退避间隔取1到L个时间片中的一个随机数,1个小时片等于两站之間的最大的两倍;⑶当数据帧再次发生冲突由将参量L加倍;⑷设置一个最大重传次数,超过该次数则不再重传,并报告出错
进淛指数退避算法是按后进先出LIFO(List In First Out)的次序控制的,即未发生冲突或很少发生冲突的具有优先发送的;而发生过多次冲突的数据帧,发送成功的概率就更少