【计算机网络】数据链路层 : CSMA/CD 协议 ( 载波监听多点接入 / 碰撞检测 协议 | 单程端到端传播时延 | 截断二进制指数规避算法 | 计算示例 | 最小帧长问题 )★

简介: 【计算机网络】数据链路层 : CSMA/CD 协议 ( 载波监听多点接入 / 碰撞检测 协议 | 单程端到端传播时延 | 截断二进制指数规避算法 | 计算示例 | 最小帧长问题 )★

文章目录

一、 CSMA/CD 协议

二、 传播时延对于 载波监听 的影响

三、 单程端到端传播时延 相关概念

四、 碰撞后重传时机 ( 截断二进制指数规避算法 )

五、截断二进制指数规避算法 计算示例

六、最小帧长问题





一、 CSMA/CD 协议


CSMA/CD 协议 :


① 全称 : Carrier Sense Multiple Access With Collision Detection , 载波监听多点接入 / 碰撞检测 协议 ;


② CS : Carrier Sense , 载波监听 , 每个站点 发送数据前 , 和 发送数据过程中 , 先检测总线上是否有其它 站点 在发送数据 ;


③ MA : Multiple Access , 多点接入 , 多个 主机 连接在同一条 总线 上 ; 该协议 应用于 总线型网络 中 ;


④ CD : Collision Detection , 碰撞检测 , 适配器 一边发送 , 一边监听 , 检测信道上电压变化 用于 判断本站点发送数据 时 , 其它站点是否也在发送你数据 ; 由此可以看出 , 该协议用于 半双工网络 中 ;



电磁波传输时间导致冲突 : 先监听了信道 , 但是还是会发生冲突 , 电磁波在信道上是以有限速度传播的 , 如果电磁波没有到本站点 , 当时检测肯定是没有信号 , 但是等到本站点向外发出数据时 , 突然检测到有信号 , 这里电磁波传输的时间差 , 就造成了这种误差 ;



ALOHA 协议 与 CSMA 协议 对比 :


ALOHA 协议 , 不听就说 ;


CSMA 协议 , 先听再说 ;


CSMA/CD 协议 , 先听再说 , 边听边说 ;






二、 传播时延对于 载波监听 的影响


传播时延对于 载波监听 的影响 :


① 前提 : 信道 两端 是 A , B A, BA,B 两台主机 , 两个站点 单程 端到端 , 电磁波 从 A AA 到 B BB 传播 , 需要 t tt 纳秒 ;


② A AA 发送数据到 B BB 一半 : 0 00 纳秒 时刻 , A AA 向 B BB 发送数据时 , 预计 t tt 纳秒后 , 到达到 B BB 站点 ;


③ B BB 发送数据到 A AA : B BB 在 t 2 \cfrac{t}{2}

2

t


 纳秒 时刻 , 突然 A AA 发送数据 , 此时检测到信道没有电磁波 , 因为此时电磁波还没有到达 B BB 站点 ; 因此检测到信道没有信号传输 ;


④ 出现冲突 : B BB 如果传输数据 , 肯定会在某时刻与 A AA 已经发送的数据 产生冲突 ; 此时时刻时 3 t 4 \cfrac{3t}{4}

4

3t


 纳秒


⑤ 碰撞 : B BB 的信号 与 A AA 的信号叠加在一起 , 称为碰撞 ; 此时两个信号都被污染了 , 无法解析使用 ;


⑥ B BB 站点检测到碰撞 : B BB 接收到 碰撞后的信号 , 校验肯定不通过 , 出现帧错误 , 此时检测到发生了碰撞 , B BB 站点暂停数据发送 ; 该时刻是 t tt 纳秒 ;


⑦ A AA 站点检测到碰撞 : A AA 接收到 碰撞后的信号 , 校验肯定不通过 , 出现帧错误 , 此时检测到发生了碰撞 , A AA 站点暂停数据发送 ; 此时时刻时 3 t 2 \cfrac{3t}{2}

2

3t


 纳秒






三、 单程端到端传播时延 相关概念


引入一组概念 :


① 单程端到端传播时延 : 记作 τ \tauτ ;


② 碰撞检测最长时间 : 站点发出数据后 , 最多 两倍的 单程端到端时延 2 τ 2\tau2τ 后就可以得知出现了碰撞 ;


③ 2 τ 2\tau2τ 概念 : 又称为 , 总线端到端往返传播时延 , 争用期 , 冲突窗口 , 碰撞窗口 ;



只要经过 2 τ 2\tau2τ 没有检测到碰撞 , 本次发送 , 一定没有碰撞 ;






四、 碰撞后重传时机 ( 截断二进制指数规避算法 )


截断二进制指数规避算法 :


① 争用期 : 确定基本退避时间 , 也就是争用期 , 两倍的 单程端到端传播时延 2 τ 2\tau2τ ;


② 重传次数 : 定义参数 k kk , 一定程度上相当于重传次数 ;


k kk 公式 : k kk 取值不超过 10 1010 , 公式为 k = m i n ( 重 传 次 数 , 10 ) k=min( 重传次数 , 10 )k=min(重传次数,10) ;

当重传次数 不超过 10 1010 时 : k = 重 传 次 数 k = 重传次数k=重传次数

当重传次数 大于 10 1010 时 : k = 10 k=10k=10 ;

③ 取随机数 : 从整数集合 [ 0 , 2 k − 1 ] [0, 2^k - 1][0,2

k

−1] 中 , 取出随机数 r rr , 重传时间就是 r × 2 τ r \times 2\taur×2τ ;


④ 重传次数限制 : 当重传 16 1616 次都失败时 , 说明网络拥塞严重 , 直接丢弃该帧 , 向上层报告出错 ;




示例 :


① 第 1 11 次重传 , k = 1 k=1k=1 , 从


[ 0 , 1 ] [0, 1][0,1] 区间中 , 即 { 0 , 1 } \{ 0 , 1\}{0,1}


中随机取一个值 , r rr ;


如果 r = 0 r = 0r=0 , 重传时间是 0 00 ;

如果 r = 1 r = 1r=1 , 重传时间是 2 τ 2\tau2τ ;


② 第 1 11 次重传 , k = 2 k=2k=2 , 从


[ 0 , 3 ] [0, 3][0,3] 区间中 , 即 { 0 , 1 , 2 , 3 } \{ 0 , 1 , 2 ,3\}{0,1,2,3}


中随机取一个值 , r rr ;


如果 r = 0 r = 0r=0 , 重传时间是 0 00 ;

如果 r = 1 r = 1r=1 , 重传时间是 2 τ 2\tau2τ ;

如果 r = 2 r = 2r=2 , 重传时间是 4 τ 4\tau4τ ;

如果 r = 3 r = 3r=3 , 重传时间是 6 τ 6\tau6τ ;


③ 第 3 33 次重传 , k = 3 k=3k=3 , 从


[ 0 , 7 ] [0, 7][0,7] 区间中 , 即 { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } \{ 0 , 1 , 2 ,3 , 4, 5, 6, 7\}{0,1,2,3,4,5,6,7}


中随机取一个值 , r rr ;


如果 r = 0 r = 0r=0 , 重传时间是 0 00 ;

如果 r = 1 r = 1r=1 , 重传时间是 2 τ 2\tau2τ ;

如果 r = 2 r = 2r=2 , 重传时间是 4 τ 4\tau4τ ;

如果 r = 3 r = 3r=3 , 重传时间是 6 τ 6\tau6τ ;

如果 r = 4 r = 4r=4 , 重传时间是 8 τ 8\tau8τ ;

如果 r = 5 r = 5r=5 , 重传时间是 10 τ 10\tau10τ ;

如果 r = 6 r = 6r=6 , 重传时间是 12 τ 12\tau12τ ;

如果 r = 7 r = 7r=7 , 重传时间是 14 τ 14\tau14τ ;





五、截断二进制指数规避算法 计算示例


在 以太网 二进制回退算法中 , 碰撞 11 1111 次后 , 随机数 r rr 的选择范围是多少 ? ??


随机数 r rr 是根据 参数 k kk 确定的 , 参数 k kk 是重传次数 和 10 1010 中较小的值 , 重传次数 小于等于 10 1010 次时 , k = 重 传 次 数 k = 重传次数k=重传次数 , 重传次数大于等于 11 1111 次时 , k = 10 k = 10k=10 ;



随机数 r rr 的取值范围是 [ 0 , 2 k − 1 ] [0, 2^k - 1][0,2

k

−1] , 代入 k = 10 k=10k=10 ;


取值范围是 [ 0 , 2 10 − 1 ] [0 , 2^{10} - 1][0,2

10

−1] , 随机数 r rr 的 范围 是 [ 0 , 1023 ] [0 , 1023][0,1023] 之间的值 ;






六、最小帧长问题


检测到碰撞时 , 需要暂停帧的发送 , 如果帧太短 , 就会导致一次性发送完毕 , 无法暂停 , 这里需要在检测到碰撞时 , 帧还没有发送结束 ;



帧的传输时延 至少要 大于 2 τ 2\tau2τ ;


帧 的 传 输 时 延 = 帧 长 度 ( 比 特 ) 数 据 传 输 速 率 帧的传输时延 = \cfrac{帧长度 ( 比特 )}{ 数据传输速率 }帧的传输时延=

数据传输速率

帧长度(比特)




帧 长 度 ( 比 特 ) 数 据 传 输 速 率 ≥ 2 τ \cfrac{帧长度 ( 比特 )}{ 数据传输速率 } \geq 2\tau

数据传输速率

帧长度(比特)


≥2τ



帧 长 度 ( 比 特 ) ≥ 2 τ × 数 据 传 输 速 率 帧长度 ( 比特 )\geq 2\tau \times 数据传输速率帧长度(比特)≥2τ×数据传输速率



最小帧长度是 2 τ × 数 据 传 输 速 率 2\tau \times 数据传输速率2τ×数据传输速率 比特 ;



以太网 规定 最短帧长度是 64 字节 , 小于 64 字节的帧都是由于冲突终止的无效帧 ;


相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
算法 机器人
基于SOA海鸥优化算法的PID控制器最优控制参数计算matlab仿真
本课题研究基于海鸥优化算法(SOA)优化PID控制器参数的方法,通过MATLAB仿真对比传统PID控制效果。利用SOA算法优化PID的kp、ki、kd参数,以积分绝对误差(IAE)为适应度函数,提升系统响应速度与稳定性。仿真结果表明,SOA优化的PID控制器在阶跃响应和误差控制方面均优于传统方法,具有更快的收敛速度和更强的全局寻优能力,适用于复杂系统的参数整定。
|
JSON 监控 API
在线网络PING接口检测服务器连通状态免费API教程
接口盒子提供免费PING检测API,可测试域名或IP的连通性与响应速度,支持指定地域节点,适用于服务器运维和网络监控。
2245 0
|
算法 JavaScript 数据安全/隐私保护
基于GA遗传优化的最优阈值计算认知异构网络(CHN)能量检测算法matlab仿真
本内容介绍了一种基于GA遗传优化的阈值计算方法在认知异构网络(CHN)中的应用。通过Matlab2022a实现算法,完整代码含中文注释与操作视频。能量检测算法用于感知主用户信号,其性能依赖检测阈值。传统固定阈值方法易受噪声影响,而GA算法通过模拟生物进化,在复杂环境中自动优化阈值,提高频谱感知准确性,增强CHN的通信效率与资源利用率。预览效果无水印,核心程序部分展示,适合研究频谱感知与优化算法的学者参考。
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
495 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
监控 算法 安全
基于 C# 基数树算法的网络屏幕监控敏感词检测技术研究
随着数字化办公和网络交互迅猛发展,网络屏幕监控成为信息安全的关键。基数树(Trie Tree)凭借高效的字符串处理能力,在敏感词检测中表现出色。结合C#语言,可构建高时效、高准确率的敏感词识别模块,提升网络安全防护能力。
370 2
|
SQL 数据采集 人工智能
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
606 12
|
机器学习/深度学习 人工智能 运维
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
659 8
|
机器学习/深度学习 算法 5G
基于DNN深度神经网络的OFDM+QPSK信号检测与误码率matlab仿真
本内容展示了基于深度神经网络(DNN)的OFDM-QPSK信号检测算法在Matlab2022a中的仿真效果。通过构建包含多层全连接层和ReLU激活函数的DNN模型,结合信号预处理与特征提取,实现了复杂通信环境下的高效信号检测。仿真结果对比了传统LS、MMSE方法与DNN方法在不同信噪比(SNR)条件下的误码率(BER)和符号错误率(SER),验证了DNN方法的优越性能。核心程序涵盖了QPSK调制、导频插入、OFDM发射、信道传输及DNN预测等关键步骤,为现代通信系统提供了可靠的技术支持。
302 0
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
算法 数据安全/隐私保护
基于Big-Bang-Big-Crunch(BBBC)算法的目标函数最小值计算matlab仿真
该程序基于Big-Bang-Big-Crunch (BBBC)算法,在MATLAB2022A中实现目标函数最小值的计算与仿真。通过模拟宇宙大爆炸和大收缩过程,算法在解空间中搜索最优解。程序初始化随机解集,经过扩张和收缩阶段逐步逼近全局最优解,并记录每次迭代的最佳适应度。最终输出最佳解及其对应的目标函数最小值,并绘制收敛曲线展示优化过程。 核心代码实现了主循环、粒子位置更新、适应度评估及最优解更新等功能。程序运行后无水印,提供清晰的结果展示。
403 14

热门文章

最新文章