首页 理论教育冲突检测的载波侦听(CSMA/CD)在网络工程与设计中的作用

冲突检测的载波侦听(CSMA/CD)在网络工程与设计中的作用

【摘要】:IEEE802.3即以太网,是一种总线型局域网,使用的介质访问控制子层方式是CSMA/CD。把在一个以太网中所有相互之间可能发生冲突的结点的集合称为一个冲突域。为了避免数据传输的冲突,以太网采用带有冲突监测的载波侦听多路访问机制规范结点对于共享信道使用。这种在传输的过程中监测电缆的方法称为冲突检测。由于载波监听不能完全避免冲突,所以在以太网的收发器中设立了冲突检测机构。然后延迟一段时间后,再重新进行CSMA/CD。

CSMA/CD(Carrier Sense Multiple Access/Collision Detection)是采用争用技术的一种介质访问控制方式。CSMA/CD通常用于总线型拓扑结构和星形拓扑结构的局域网中。IEEE802.3即以太网,是一种总线型局域网,使用的介质访问控制子层方式是CSMA/CD。

它的每个结点都能独立决定发送帧,若两个或多个结点同时发送,即产生冲突。把在一个以太网中所有相互之间可能发生冲突的结点的集合称为一个冲突域。例如,对于用同轴电缆互连的以太网,其中所有结点就属于一个冲突域。当一个冲突域中的结点数目过多时,冲突就会很频繁。因此,在以太网中结点数目过多将会严重影响网络性能。为了避免数据传输的冲突,以太网采用带有冲突监测的载波侦听多路访问机制规范结点对于共享信道使用。每个结点都能判断是否有冲突发生,如冲突发生,则等待随机时间间隔后重发,以避免再次发生冲突。

“冲突”是指两个信号相互干扰。尽管冲突不会损坏硬件,但是它产生了混淆的传输,阻止了任何一个帧的正确接收。当一台正在发送的计算机检测到冲突,它立即停止传输。这种在传输的过程中监测电缆的方法称为冲突检测(Collision Detect,CD)。由于载波监听不能完全避免冲突,所以在以太网的收发器中设立了冲突检测机构。发送信息包的结点一面将信息流送至总线上,一面经接收器从总线上将信息流接收下来。将接收到的信息与发送的信息进行比较,如果两者相同,则继续发送;如果不一致,就必定是发生了冲突,应停止发送信息,并发送干扰信号警告所有的其他站点,已检测到冲突。然后采取某种退避算法等待一段时间后再重新监听线路,准备重新发送该信息。

那么,为什么会产生冲突呢?这是因为电磁波在总线上是以有限的速率传播的。如图3-10所示,假设以太网中站点A经过同轴电缆向站点B发送数据,信号通过这段介质的传播时间为τ,如果这时站点B在站点A发送的信号到达之前发送信号到站点A(因为这时B的载波监听检测不到A发送的信号),则站点A和站点B发送的信号必然在某时发生碰撞。所以,在站点A,在它发出信号后,如果收到站点B发来的信号,之间所经过的时间大于2τ的话,就应该没有发生冲突。反之,如果站点A发出信号后,还没有经过2τ时延就收到站点B传来的信号,那么说明信道上肯定发生了冲突。这时,A应立即停止发送这次还没发送完的其他数据。然后延迟一段时间后,再重新进行CSMA/CD。

978-7-111-45076-4-Chapter03-10.jpg

图3-10 传播时延对载波监听的影响

下面是图3-10的一些重要时刻。

在t=0时,A开始发送数据,B检测到信道空闲。

在t=τ-δ,A发送的数据几乎到达B。

在t=τ,A和B发生碰撞。

在t=2τ,A检测到发送碰撞。

这里,τ称为端到端时延(一般取以太网中两个距离最大的站点的时延);2τ为以太网端到端往返的时延,称为争用期(Contention Period)。之所以叫争用期,是因为这段时间里会发生冲突,一个站点发送数据后,经过争用期还没有发生碰撞,那么这次发送就肯定不会发生碰撞。

如果数据传输时发生了碰撞,是立即发送数据还是等待一段时间再发送数据?为了使重传时再次发生冲突的概率减小,一般不是立即再发送数据,而是推迟一个随机的时间。以太网采用截断二进制指数类型的退避算法来决定避让的时间。

截断二进制指数退避算法是这样的:

1)确定基本退避时间为2τ。(www.chuimin.cn)

2)定义参数k为重传次数,但k不超过10。k=Min[重传次数,10]。

3)重传时延Td=r·2τ,r为从离散的整数集合[0,1,2,···,(2k-1)]中随机地抽取一个数。

4)当重传次数超过16次仍不成功,表明网络太拥挤,则丢弃该帧,并向高层报告。

例如,第一次发生冲突,要进行重传,重传时k=1,r=0或1,等待时间Td为0或2τ;第二次如果又发生冲突,重传时k=2,r=0,1,2,3,等待时间Td为随机选择0,2τ,4τ,6τ中的任一个数;如果第三次冲突,重传时k=3,r=0,1,2,3,5,6,7,等待时间Td随机选择0,2τ,4τ,6τ,8τ,10τ,12τ,14τ中的任一个数;……;以此类推,第i次冲突,等待时间为随机选择的0~(2i-1)倍的2τ中的任一个数。

CSMA/CD的工作原理可概括成四句话,即先听后发,边发边听,冲突停止,随机延时后重发,如图3-11显示了采用CSMA/CD方法的流程图。具体过程如下:

1)当一个结点想要发送数据的时候,它首先检测网络是否有其他结点正在传输数据,即侦听信道是否空闲。

2)如果信道忙,则等待,直到信道空闲。

3)如果信道闲,结点就传输数据。

4)在发送数据的同时,结点继续侦听网络确信没有其他结点在同时传输数据。因为有可能两个或多个结点都同时检测到网络空闲然后几乎在同一时刻开始传输数据。如果两个或多个结点同时发送数据,就会产生冲突。

5)当一个传输结点识别出一个冲突,它就发送一个拥塞信号,这个信号使得冲突的时间足够长,让其他的结点都能发现。

6)其他结点收到拥塞信号后,都停止传输,等待一个随机产生的时间间隙(回退时间Back off Time)后重发。

978-7-111-45076-4-Chapter03-11.jpg

图3-11 CSMA/CD流程图

总之,CSMA/CD采用的是一种“有空就发”的竞争型访问策略,因而不可避免会出现信道空闲时多个结点同时争发的现象,无法完全消除冲突,只能是采取一些措施减少冲突,并对产生的冲突进行处理。因此采用这种协议的局域网环境不适合于对实时性要求较强的网络应用。