CSMA/CD协议
全称为载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)
CSMA/CD协议 - CS:
CS指的是载波侦听/监听,每一个站点再发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
CSMA/CD协议 - MA:
多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络。
CSMA/CD协议 - CD:
碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
传播时延对于载波监听的影响
假设有两个通信站点A,B,A到B的单程端到端的传播时延为,假设A在给B发送数据,但是在到达之前,B因其未检测到信号到达,所以也给A发送数据,结果两方的数据在半路上发生了碰撞,这就是传播时延造成的。二者信号就会发生叠加,所以A发送的信号因与B发送的信号发生了碰撞叠加,到达B之后,B会检测收到的数据帧,会用一定的方法检测出收到的帧发生了碰撞,于是B就停止发送,A收到之后同样会检测到碰撞,也会停发。
征用期/冲突窗口/碰撞窗口
发送端最迟知道自己发送的数据没有发生冲突的时间是发送后的2时间(二位总线端到端的传播时延)过后
碰撞后的重传时机
发生碰撞后数据帧就无法使用了,于是数据帧需要重新传输,所以通信两端需要确定重传时机。
确定碰撞后的重传时机算法 --- 截断二进制指数规避算法
- 确定基本退避(推迟)时间为征用期 2 。
- 定义一个参数k,它等于重传次数,但k不超过10,即k = min(重传次数,10)。当重传次数不超过10时,k等于重传次数,当重传次数大于10时,k还是等于10.
- 从离散的整数集合(0,1,。。。,)中随机抽取一个数r,重传所需要退避的时间就是r倍的基本退避时间,也就是。
- 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错 。
如果连续多次发生冲突,就表明可能有较多的站点参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
使得CSMA/CD协议更有意义 --- 最小帧长问题
帧的传输时延至少要两倍于信号在总线中的传播时延。
帧长(bit)/数据传输速率 .
最小帧长 = 数据传输速率 *
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而一场终止的无效帧。