概述
一、CSMA/CD
1、Carrier Sense Multiple Access with Collision Detection 载波监听多点接入/碰撞检测
2、载波监听:检测信道。在发送数据前,发送数据中,每个站都要不断检测信道
3、多点接入:总线型网络中,计算机以多点接入的方式连接到一根总线上
4、碰撞检测:边发送边监听,改协议是通过电压的变化来检测碰撞是否发生
参考:https://www.bilibili.com/video/BV17p411f7ZZ?p=35
二、该协议冲突检测和解决冲突的机制:
1、假设从A传到B,传输距离为1km(实际中,电磁波在 1km 电缆的传播时延约为 5 μs),会存在时延。单程端到端传播时延用表示,假设在 t=- 的时候B也开始发送数据,发生碰撞,改变信号电压,最后AB分别根据电压的变化检测到是否发生碰撞。
2、A发现冲突的最长时间为2,数据从A发送刚到B的时候B也发送数据,那么A检测到冲突的最长时间为2。所以网线越长发现冲突的时间也越长,从检测冲突角度也可以解析以太网网线一般不会超过100m。
三、CSMA/CD协议的特点:
1、CSMA/CD协议的以太网不能进行全双工通信,只能实现双向交替通信(半双工通信)
2、争用期:以太网的争用期为 2,也叫碰撞窗口。通常取51.2 μs为争用期的长度。传统以太网速率为10M/100M,对于10Mb/s以太网,在争用期可以发送512bit(64字节)的数据,以太网在发送前64字节未发生冲突,则后续的数据就不会发生冲突
3、最短有效帧:如果发生冲突,那么一定是发生在前64个字节。以太网规定了最短有效帧为64字节,如果需要发送的数据不足64帧则会在后面补零填充。凡是小于64字节的帧都是由于冲突而异常中止的无效帧。
四、二进制指数类型退避算法
发生碰撞之后的站在停止发送数据后,要推迟(退避)一个随机发送时间再发送数据,基本退避时间为2
假设A向B发送数据发送冲突:
第一次重传,K=1,集合S为 [0,1]
A和B在S集合中分别随机取一个数记为r1和r2,A重传所需的时延为 r1*2,B重传所需的时延为 r2*2
假设第一次重传失败,则进行第二次重传,K=2,集合S为[0,1,2,3]
A和B在S集合中分别随机取一个数记为r1和r2,A重传所需的时延为 r1*2,B重传所需的时延为 r2*2
... ...
假设第11次重传失败,则进行第二次重传,K=Min(11,10)=10,集合S为[0,1,2,,,2^10-1]
A和B在S集合中分别随机取一个数记为r1和r2,A重传所需的时延为 r1*2,B重传所需的时延为 r2*2
直到重传次数到16次仍然不成功则丢弃该帧,并向高层报告。
重传次数没有到10的时候,随着重传次数的增加,集合S越来越大(重传次数超过10集合大小不该变),AB从中随机选择的数相同的可能性就越小,重传时延一致的可能性越小,那么重传成功率越大。
附加题:
最后
以上就是紧张蚂蚁为你收集整理的使用广播信道的数据链路层--CSMA/CD 协议的全部内容,希望文章能够帮你解决使用广播信道的数据链路层--CSMA/CD 协议所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复