我是靠谱客的博主 紧张蚂蚁,最近开发中收集的这篇文章主要介绍使用广播信道的数据链路层--CSMA/CD 协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、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),会存在时延。单程端到端传播时延用tau表示,假设在 t=tau-delta 的时候B也开始发送数据,发生碰撞,改变信号电压,最后AB分别根据电压的变化检测到是否发生碰撞。

2、A发现冲突的最长时间为2tau,数据从A发送刚到B的时候B也发送数据,那么A检测到冲突的最长时间为2tau。所以网线越长发现冲突的时间也越长,从检测冲突角度也可以解析以太网网线一般不会超过100m。

    

三、CSMA/CD协议的特点:

1、CSMA/CD协议的以太网不能进行全双工通信,只能实现双向交替通信(半双工通信)

2、争用期:以太网的争用期为 2tau,也叫碰撞窗口。通常取51.2 μs为争用期的长度。传统以太网速率为10M/100M,对于10Mb/s以太网,在争用期可以发送512bit(64字节)的数据,以太网在发送前64字节未发生冲突,则后续的数据就不会发生冲突

3、最短有效帧:如果发生冲突,那么一定是发生在前64个字节。以太网规定了最短有效帧为64字节,如果需要发送的数据不足64帧则会在后面补零填充。凡是小于64字节的帧都是由于冲突而异常中止的无效帧。

四、二进制指数类型退避算法

发生碰撞之后的站在停止发送数据后,要推迟(退避)一个随机发送时间再发送数据,基本退避时间为2tau

                         

假设A向B发送数据发送冲突:

第一次重传,K=1,集合S为 [0,1]

A和B在S集合中分别随机取一个数记为r1和r2,A重传所需的时延为 r1*2tau,B重传所需的时延为 r2*2tau

假设第一次重传失败,则进行第二次重传,K=2,集合S为[0,1,2,3]

A和B在S集合中分别随机取一个数记为r1和r2,A重传所需的时延为 r1*2tau,B重传所需的时延为 r2*2tau

... ...

假设第11次重传失败,则进行第二次重传,K=Min(11,10)=10,集合S为[0,1,2,,,2^10-1]

A和B在S集合中分别随机取一个数记为r1和r2,A重传所需的时延为 r1*2tau,B重传所需的时延为 r2*2tau

直到重传次数到16次仍然不成功则丢弃该帧,并向高层报告。

重传次数没有到10的时候,随着重传次数的增加,集合S越来越大(重传次数超过10集合大小不该变),AB从中随机选择的数相同的可能性就越小,重传时延一致的可能性越小,那么重传成功率越大。

附加题: 

 

最后

以上就是紧张蚂蚁为你收集整理的使用广播信道的数据链路层--CSMA/CD 协议的全部内容,希望文章能够帮你解决使用广播信道的数据链路层--CSMA/CD 协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部