通信 CSMA/CD工作原理

在CSMA中,由于信道传播时延的存在,即使总线上两个站点没有监听到载波信号而发送帧时,仍可能会发生冲突。由于CSMA算法没有冲突检测功能,即使冲突已发生,仍然将已破坏的帧发送完,使数据的有效传输率降低。
一种CSMA的改进方案是使发送站点传输过程中仍继续监听媒体,以检测是否存在冲突。如果发生冲突,信道上可以检测到超过发送站点本身发送的载波信号的幅度,由此判断出冲突的存在。一旦检测到冲突,就立即停止发送,并向总线上发一串阻塞信号,用以通知总线上其他各有关站点。这样,通道容量就不致因白白传送已受损的帧而浪费,可以提高总线的利用率。这种方案称为“载波监听多路访问/冲突检测协议”(Carrier Sense Multiple Access with Collision Detection,CSMA/CD),这种协议已广泛应用于局域网中。

CSMA/CD要解决的另一主要问题是如何检测冲突。当网络处于空闲的某一瞬间,有两个或两个以上工作站要同时发送信息时,同步发送的信号就会引起冲突。

1.CSMA/CD的工作原理
由IEEE 802.3标准确定的CSMA/CD检测冲突的方法如下: 
(1)当一个站点想要发送数据的时候,它检测网络查看是否有其他站点正在传输,即监听信道是否空闲。
(2)如果信道忙,则等待,直到信道空闲;如果信道闲,站点就传输数据。
(3)在发送数据的同时,站点继续监听网络确信没有其他站点在同时传输数据。因为有可能两个或多个站点都同时检测到网络空闲然后几乎在同一时刻开始传输数据。如果两个或多个站点同时发送数据,就会产生冲突。
(4)当一个传输节点识别出一个冲突,它就发送一个拥塞信号,这个信号使得冲突的时间足够长,让其他的节点都能发现。
(5)其他节点收到拥塞信号后,都停止传输,等待一个随机产生的时间间隙(回退时间,Backoff Time)后重发。
如图6-25所示,现假定A、B两个站点位于总线两端,两站点之间的最大传播时延为tp。
当A站点发送数据后,经过接近于最大传播时延tp时,B站点正好也发送数据,此时冲突便发生。发生冲突后,B 站点立即可检测到该冲突,而A站点需再经过一份最大传播时延tp后,才能检测出冲突。也即最坏情况下,对于基带CSMA/CD来说,检测出一个冲突的时间等于任意两个站之间最大传播时延的两倍(2tp)。

通信 CSMA/CD工作原理_第1张图片

数据帧从一个站点开始发送,到该数据帧发送完毕所需的时间和为“数据传输时延”;同理,数据传输时延也表示一个接收站点开始接收数据帧,到该数据帧接收完毕所需的时间。数据传输时延(s)=数据帧长度(bit)/数据传输速率(bps)。若不考虑中继器引入的延迟,数据帧从一个站点开始发送,到该数据帧被另一个站点全部接收所需的总时间,等于数据传输时延与信号传播时延之和。
2.CSMA/CD二进制数算法
由上述分析可知,为了确保发送数据站点在传输时能检测到可能存在的冲突,数据帧的传输时延至少要两倍于传播时延。换句话说,要求分组的长度不短于某个值,否则在检测出冲突之前传输已经结束,但实际上分组已被冲突所破坏。由此引出了CSMA/CD总线网络中最短帧长的计算关系式如下所示:


由于单向传输的原因,对于宽带总线而言,冲突检测时间等于任意两个站之间最大传播时延的4倍,所以对于宽带CSMA/CD来说,要求数据帧的传输时延至少4倍于传播时延。在CSMA/CD算法中,一旦检测到冲突并发完阻塞信号后,为了降低再次冲突的概率,需要等待一个随机时间,然后再使用CSMA方法试图传输。为了保证这种退避操作维持稳定采用了一种称为“二进制数指数退避”算法。
二进制数指数退避算法是按“后进先出”(List In First Out,LIFO)的次序控制的,即未发生冲突或很少发生冲突的数据帧,具有优先发送的概率;而发生过多次冲突的数据帧,发送成功的概率就更少。IEEE 802.3就是采用“二进制数指数退避”和“1-坚持”算法的CSMA/CD媒体访问控制方法。这种方法在低负荷时,如媒体空闲时,要发送数据帧的站点能立即发送;在重负荷时,仍能保证系统的稳定性。由于在媒体上传播的信号会衰减,为确保能检测出冲突信号,CSMA/CD总线网限制一段无分支电缆的最大长度为500米。
“二进制数指数退避算法”的规则如下:
 对每个帧,当第一次发生冲突时,设置参数L=2。退避重发时间在1~L个时隙中随机抽取;
 当帧再次冲突时,L加倍,即L=2L。退避重发时间仍在1~L个时隙中随机抽取;
 当冲突n次,L=2n。设置一个最大重传次数,超过此值,不再重发,并报告出错。
此算法的效果是不冲突或少冲突的帧重发的机会大,冲突多的帧重发的机会小。
3.CSMA/CD的优点
CSMA/CD控制方式的优点是:原理比较简单,技术上也容易实现,网络中各工作站处于平等地位,不需集中控制,不提供优先级控制。但在网络负载增大时,发送时间增长,发送效率急剧下降。它的代价是用于检测冲突所花费的时间。对于基带总线而言,最坏情况下用于检测一个冲突的时间等于任意两个站之间传播时延的两倍。从一个站点开始发送数据到另一个站点开始接收数据,也即载波信号从一端传播到另一端所需的时间,称为“信号传播时延”。信号传播时延(μs)=两站点的距离(m)/信号传播速度(200m/μs)。

你可能感兴趣的:(网络协议)