载波侦听多路访问/冲突避免(CSMA/CD)协议

 

发展背景(出因):
在总线和环形拓扑中,网络上的设备必须共享传输线路,为解决同一时间几个设备同时争用传输介质,需要有某种访问控制方式,以便协调各设备访问介质的顺序,在设备之间交换数据。
在总线系统中,每个站都能独立地决定帧的发送,若两个或多个站同时发送,就产生冲突,同时发送的所有帧都会出错。因此一个用户发送信息成功与否在很大程度上取决于总线是否空闲的算法以及两个不同节点同时发送的分组发生冲突时所使用和中断传输的方法,总线争用技术分为载波监听多路访问(CSMA)和具有冲突检测的载波监听多路访问(CSMA/CD)这两大类。载波监听多路访问(CSMA)的技术,也叫做先听后说(LBT),希望传输的站首先对信道进行监听以确定是否有别的站在传输。如果信道空闲,该站可以传输,否则,该站将避让一段时间后再尝试。需要有一种退避算法来决定退让时间。常用的有三种算法。1、非坚持CSMA;2、1-坚持CSMA;3、P-坚持CSMA。
通信中对介质的访问可以是随机的,即各工作站可以在任何时刻、任意地访问介质;也可以是受控的,即各工作站可以用一定的算法调整各站访问介质的顺序和时间。在随机访问方式中,常用的争用总线技术为CSMA/CD.
这种控制方式对任何工作站都没有预约发送时间,工作站的发送是随机的,必须在网络上争用传输介质,故称之为争用技术。若同一时刻有多个工作站向传输线路发送信息,则这些信息会在传输线上互相混淆而遭破坏,称为“冲突”。为尽量避免由于竟争引起的冲突,每个工作站在发送信息之前,都要监听传输线上是否有信息在发送,这就是“载波监听”。
CSMA是从一种叫ALOHA的控制协议演变而来的,之所以要采用这种控制协议,是因为当许多用户共享一个容量为C b/s的信道时,如果两个或更多的用户同时都在共享信道上发送信息,这样就会产生冲突。习惯上把这种冲突叫做碰撞。碰撞的产生会导致冲突的用户发送都告失败。如图所示:
由图可知,一个帧若要发送成功,必须在发送时刻之前和之后各有一段时间T0内没有其他帧的发送,否则就必然产生冲突而导致失败。这样,一个帧发送成功的条件就是该帧与该帧前后的两个帧到达的时间间隔大于T0.

基本定义或原理:
载波监听多路访问/冲突检测(CSMA/CD):在CSMA中,由于通道的传播延迟,当两个站点监听到总线上没有存在信号而发送帧时,仍会发生冲突。由于CSMA算法没有冲突检测功能,即使冲突己发生,仍然要将已破坏的帧发送完,使总线的利用率降低。
一种CSMA的改进方案是使站点在传输时间继续监听媒体,一旦检测到冲突,就立即停止发送,并向总线上发一串短的阻塞报文(Jam),通知总线上各站冲突己发生,这样通道容量不致因白白传送己受损的帧而浪费,可以提高总线的利用率,这就称作载波监听多路访问/冲突检测协议,简写为CSMA/CD,这种协议己广泛应用于以太网和IEEE802.3标准中。
此时,浪费掉的带宽就减少为用检测冲突所花费的时间。那么,怎么来估算所需的冲突检测时间呢?对于基带总线而言,此时用于检测一个冲突的时间等于任意两个站之间最大的传播延迟的两倍,所以对于基带CSMA/CD,要求分组长度应该至少两倍于传播延迟,否则在检测出冲突之前传输已经完成,但实际上分组被冲突所破坏。

应用:CSMA/CD是用争用的方法来决定对介质的访问权。而这种争用协议一般用于总线网。载波监听多路访问(CSMA) 发展情况及存在问题:
CSMA/CD总线网络中的一个关键技术问题是冲突控制或冲突分解问题,即由于发送冲突而遭碰撞的报文要经过一段随机延时后重发,典型的冲突控制算法,亦即后退算法有以下五种:二进制指数后退算法BEB、多项式后退算法PB、线性增值后退算法LIB、固定平均后退算法FMB、顺序后退算法OB.

所谓媒体访问控制,就是控制网上各工作站在什么情况下才可以发送数据,在发送数据过程中,如何发现问题及出现问题后如何处理等管理方法。   CSMA/CD是英文carrier sense multiple access/collision detected 的缩写,可把它翻成“载波侦察听多路访问/冲突检测”,或“带有冲突检测的载波侦听多路访问”。所谓载波侦听(carrier sense),意思是网络上各个工作站在发送数据前都要总线上有没有数据传输。若干数据传输 (称总线为忙),则不发送数据;若无数据传输(称总线为空),立即发送准备好的数据。所谓多路访问(multiple access)意思是网络上所有工作站收发数据共同使用同一条总线,且发送数据是广播式的。所谓冲突(collision),意思是,若网上有两个或两个以上工作站同时发送数据,在总线上就会产生信号的混合,哪个工作站都同时发送数据,在总线上就会产生信号的混合,哪个工作站都辨别不出真正的数据是什么。这种情况称数据冲突又称碰撞。为了减少冲突发生后又的影响。工作站在发送数据过程中还要不停地检测自己发送的数据,有没有在传输过程中与其它工作站的数据发生冲突,这就是冲突检测(collision detected)。

CSMA/CD媒体访问控制方法的工作原理,可以概括如下:
先听后说,边听边说;
一旦冲突,立即停说;
等待时机,然后再说;
听,即监听、检测之意;说,即发送数据之意。
上面几句话在发送数据前,先监听总线是否空闲。若总线忙,则不发送。若总线空闲,则把准备好的数据发送到总线上。在发送数据的过程中,工作站边发送检测总线,是否自己发送的数据有冲突。若无冲突则继续发送直到发完全部数据;若有冲突,则立即停止发送数据,但是要发送一个加强冲突的JAM信号,以便使网络上所有工作站都知道网上发生了冲突,然后,等待一个预定的随机时间,且在总线为空闲时,再重新发送未发完的数据。
1.常用的退避算法:非坚持、1-坚持和P-坚持
(1)非坚持算法
①若媒体是空闲的,则可以立即发送;
②若媒体是忙的,则等待一个由概率分布决定的随机重发延迟后,再重复前一步骤;采用随机的重发延迟时间可以减少冲突发生的可能性。非坚持算法的缺点是:即使有几个站点都有数据要发送,但由于大家都在延迟等待过程中,致使媒体仍可能处于空闲状态,使利用率降低。
(2)1-坚持算法
①若媒体是空闲的,则可以立即发送;
②若媒体是忙的,则继续监听,直至检测到媒体空闲,立即发送;
③如果有冲突,则等待一随机量的时间,重复步骤①至②;
这种算法的优点是:只要媒体空闲,站点就立即可以发送,避免了媒体利用率的损失;其缺点是:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
(3)P-坚持算法
①监听总线,如果媒体是空闲的,则以P的概率发送,而以(1-p)的概率延迟一个时间单位。一个时间单位等于最大传播时延的2倍。
②延迟了一个时间单位后,再重复步骤①;
③如果媒体是忙的,继续监听直至媒体空闲并重复步骤①。
P-坚持算法是一种既能象非坚持算法那样减少冲突,又能象l-坚持算法那样减少媒体空闲时间的折衷方案,问题是如何选择P的有效值,这要考虑到避免重负载下系统处于的不稳定状态。  
2.数据传输时延
数据帧从一个站点开始发送,到该数据帧发送完毕所需的时间称为数据传输时延;同理,数据传输时延也表示一个接收站点开始接收数据帧,到该数据接收完毕所需的时间。数据传输时延(s)=数据帧长度(bit)/数据传输速率(bps)若不考虑中继器引人的延迟,数据帧从一个站点开始发送,到该数据帧被另一

你可能感兴趣的:(载波侦听多路访问/冲突避免(CSMA/CD)协议)