以太网—CSMA/CD 载波侦听多路访问/碰撞检测

本文详细介绍了以太网的CSMA/CD(载波侦听多路访问/碰撞检测)协议,包括其工作原理和二进制指数退避算法。CSMA/CD确保在发送数据前先监听信道,发送过程中持续检测冲突,一旦发现冲突则立即停止发送并随机延迟后重发。二进制指数退避算法用于冲突后的重传策略,通过随机选择退避时间来避免再次冲突。

以太网—CSMA/CD 载波侦听多路访问/碰撞检测


小白刚开始学习以太网的知识,综合了几篇文章,记录了一些知识点和自己的理解,不知道有没有错误的地方,多多指教~

一、参考网址

CSMA/CD协议详解!!!(感觉这篇写的很棒很详细~~)

CSMA/CD 及其二进制指数退避算法

带冲突检测的CSMA:CSMA/CD

二进制指数退避算法

二、工作原理

​ CSMA:发送数据之前进行载波监听,由于传播时延(数据帧在信道中传播一定距离所需要花费的时间的存在,仍然可能冲突。(考虑2个站点的模型,其中一个先发送信息,由于传送时延使另一个站点也发现信道是空闲的,于是也发送信息,结果2个站点的信息在途中冲突,但2个站均不知道,一直要将数据帧余下部分发完,等到有错再重发送。这样明显造成了信道的浪费,加大了通信开销。)先听后发。

​ CSMA/CD:带冲突检测的载波监听多路访问协议。载波监听全程都在进行,除发送前监听信号是否空闲以获取发送权外,发送过程中也监听信道上是否有冲突(检测信道上信号电压的变化情况),一旦冲突,任何一个正在发送的工作站立即停止发送(发送阻塞信号增强冲突,以便其他工作站均可知道冲突,并准备重发冲突受损的数据帧)。

先听后发,边听边发
一旦冲突,立即停发
等待时机,然后再发
​ 其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发

(之前不理解CSMA和CSMA/CD的区别。。。似乎是CSMA是在发送前监听信道,当产生冲突后无法停发,而CSMA/CD全程在监听,发送数据帧后等待一个争用期,碰撞后可以采取停发措施。)

三、二进制指数退避算法

​ 冲突后,随机等待一段时间再开始发送数据帧。两个工作站等待的时间不同,冲突就不会出现。如果传输失败超过一次,将采用退避指数增长时间的方法。退避的时间通过截断二进制指数退避算法确定。(个人理解:退避的时间就是冲突后工作站等待的时间。)

  • 二进制指数退避算法的思想(退避时间间隔指重传数据帧应退后的时间)
    检测到首次冲突后,设置基本退避时间T(1个争用期,又称冲突窗口),对于10Mbits的以太网,争用期为51.2μs)。设置参数 L = 2 L=2 L=2,从 [ 1 , L ] [1,L] [1,L]中选取一个随机数,记作 R R R,那么退避时间间隔取 R T RT RT,检测到再次再次发生冲突, L L L翻倍,重复上述过程。
  • 重传数据帧不能无休止地进行,通过截断式二进制指数退避算法确定基本退避时间,算法如下:
    1. 确定基本退避时间 T T T(争用期/冲突窗口:端到端的往返时间),参数 L = 2 L=2 L=2
    2. 定义冲突次数 k k k,初始化 k = 1 k=1 k=1
    3. K = M i n ( k , 10 ) K = Min(k,10) K=Min(k,10),若 K ≤ 10 K\le10 K10,则 L = 2 k L=2^k L=2k,否则 L = 2 10 L = 2^{10} L=210
    4. 定义 R R R [ 1 , L ] [1,L] [1,L]中的一个随机数,退避时间间隔 t = R T t = RT t=RT
    5. 若再次冲突, k = k + 1 k=k+1 k=k+1。若 k > 16 k>16 k>16,不再重发,报告出错,否则,重复3) - 5)步骤。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值