当前位置: 首页 > java >正文

介质访问控制——随机访问控制

随机访问控制​​就像一群人在自由讨论会上发言——谁想说话就随时开口,但可能会撞车,所以需要一套“避免打架”的规则。它用于解决多个设备共享同一信道时的冲突问题。

随机访问控制是一种多个设备抢占通信信道的方式,谁先抢到谁就可以先发送数据,没抢到的等下一轮。

 

纯ALOHA协议

纯ALOHA协议​​就像一场“无规则抢答比赛”——谁想发言就直接开口,撞车了再重来。它是​​最早的去中心化随机访问协议​​,核心逻辑是​​完全自由,冲突后随机重试​​。

发送规则​​:
设备有数据帧就​​立刻发送​​,无需监听信道或等待时隙。
完全不考虑其他设备是否正在发送。

冲突处理​​:
如果多个设备的发送时间重叠(哪怕只有1比特的重叠),所有帧都会损坏。
发送方等待​​随机时间​​后重传,直到成功。

时隙ALOHA

时隙ALOHA​​就像一场“按节拍抢答”的比赛——所有人只能在固定的时间点发言,避免乱成一团。它是纯ALOHA的升级版,通过​​强制时间同步​​减少冲突,​​信道利用率翻倍​​。

 

核心规则:按时间槽发言​

​时间分割​​:
将时间划分为等长的​​时隙(Slot)​​,每个时隙的长度 = ​​一帧数据的发送时间​​。例如,若发送一帧需1ms,则时隙长度固定为1ms。

发送规则​​:
设备​​必须​​在时隙的起点才能发送数据。若在非起点时刻有数据要发送,需等待下一个时隙开始。

​冲突处理​​:
如果多个设备在同一时隙发送,则全部冲突,帧损毁。冲突后,设备随机等待若干个时隙再重试。

CSMA协议​

CSMA协议​​(载波侦听多路访问)就像一场“文明讨论会”——发言前先竖起耳朵听有没有人说话,避免打断别人。它通过​​先监听再发送​​的规则,显著降低了冲突概率,是随机访问协议中的“优雅派”。
 

第一步:听(Carrier Sense)​
设备在发送数据前,先​​检测信道是否空闲​​:
​信道空闲​​ → 立即发送数据。
​信道忙​​ → 等待直到信道空闲。

​第二步:说(Transmit)​
确认信道空闲后,设备开始发送数据。

冲突处理​​:
若多个设备同时检测到空闲并发送 → 冲突发生 → 数据损坏。
冲突后设备​​随机退避等待​​,再重新尝试。

​三种坚持策略:不同“礼貌程度”​

1-坚持CSMA:监听信道,​​只要空闲就立刻发送​​。若信道忙,持续监听直到空闲,然后立即发送。

非坚持 CSMA:站点在发送数据前先监听信道,若信道忙则放弃监听,等待一个随机时间后再监听,若信道空闲则发送数据。

​P-坚持CSMA
将时间划分为​​时隙​​(slot),每个时隙长度 = 最大传播时延。监听信道:若空闲,以概率 ​​P​​ 发送,以概率 ​​1-P​​ 延迟一个时隙再试。若信道忙,持续监听直到空闲。

CSMA/CD协议​

CSMA/CD协议​​(载波侦听多路访问/冲突检测)就像一场“边说话边听声”的会议——发言时时刻竖起耳朵,一旦发现有人插话,立刻闭嘴并协商重试。它是​​传统以太网(使用集线器的网络)的核心协议​​,核心目标是​​快速检测冲突,减少带宽浪费​​。

第一步:载波侦听(Carrier Sense)​
发送前先监听信道,若空闲则开始发送。

​第二步:边发边听(Collision Detection)​
发送数据时​​持续检测信道电压或信号波形​​,判断是否发生冲突。

第三步:冲突处理​
一旦检测到冲突,立即停止发送,并发送一个​​拥塞信号(Jamming Signal)​​通知所有设备。
执行​​二进制指数退避算法​​:随机等待时间 = 随机数×时隙时间×2^冲突次数,冲突次数越多,等待时间越长。

 

​关键场景:最坏冲突检测时间​

假设网络中有两个设备A和B,位于链路两端,相距最远(传播时延为 ​​τ​​)。

​步骤1​​:A开始发送数据,信号需经过时间 ​​τ​​ 才能到达B。​
步骤2​
​:在A的信号即将到达B的瞬间(时间差趋近于0),B也开始发送数据,导致冲突。
步骤3​
​:冲突信号(B发送的干扰信号)需再经过时间 ​​τ​​ 才能传回A。
总时间​​ = τ(A到B) + τ(B到A) = ​​2τ​​ → 这就是​​争用期的长度​​。


​生活类比:两人隔山喊话​
场景​​:两人A和B站在山谷两侧,距离导致喊话需10秒传到对方耳中。​
步骤1​
​:A喊话“你好”,声音10秒后传到B。
​步骤2​​:B在A喊话即将到达时(第9.9秒)也喊“喂”,两声音冲突。(B在第9.9秒时以为信道是空闲的)
​步骤3​​:冲突后的混合声音需再10秒传回A → A在第20秒才知冲突。
结论​​:A必须持续喊话至少20秒,才能确保听到冲突回音,否则可能误以为发送成功。

 

 

​CSMA/CD协议限制最小帧长(bit数充满整个信道)​​,就像给快递包裹设置“最小尺寸”——太小的包裹可能在运输中被其他包裹撞坏,却无人察觉。核心原因在于​​确保发送方能检测到冲突​​。

 

 

以下是通俗解释:

​冲突检测的“安全时间”​

场景类比​​:A和B在一条长走廊两端喊话,声音传播需要10秒。
A喊话后,如果B在A喊完前(比如第9秒)也开始喊,A需要再等10秒才能听到B的回声,总共20秒才能确认是否冲突。
​规则​​:A必须至少喊20秒,才能覆盖“冲突回声”的时间窗口。
​对应到网络​​:最小帧长 = 数据传输速率 × ​​2倍最大传播时延(争用期)​​。
例子​​:10Mbps以太网中,争用期=51.2μs → 最小帧长=10Mbps×51.2μs=64字节。
​意义​​:发送方必须发满64字节,才能确保在发完前检测到最远端的冲突。

 

​CSMA/CA协议

 

http://www.xdnf.cn/news/14389.html

相关文章:

  • Java的DI依赖注入
  • 2025如何快速给人物模型添加骨骼
  • 【Python机器学习(一)】NumPy/Pandas手搓决策树+使用Graphviz可视化(以西瓜书数据集为例)
  • 【深度剖析】领信卓越:福耀玻璃的数字化转型(上篇2:转型动机分析)
  • 嵌入式知识篇---三种坐标系
  • 揭开肾细胞的分子密码:当 METTL3 遇上 FOSL1【AbMole】
  • Android 与 ESP-01 WIFI模块通信
  • Tomcat 配置双击启动
  • 141. 环形链表
  • 概率期望DP
  • 【茶社茶楼专用软件】佳易王茶社茶楼计时计费会员管理软件介绍
  • 深度解析企业风控API技术实践:构建全方位企业风险画像系统
  • 【运维系列】【ubuntu22.04】安装Docker
  • 【性能优化】启用zram
  • 个人笔记-- TCL 替换
  • WebAssembly的本质与核心价值
  • 电磁场与电磁波篇---介质媒质导体
  • C++: 类 Class 的基础用法
  • 人工智能:神经网络原理、案例与 Python 代码
  • java 设计模式_行为型_19命令模式
  • 一个应用程序或移动网站项目提供最佳UI解决方案
  • python动态重叠爱心图
  • 【Linux】KVM简单介绍
  • WebSocket深度指南:从零基础到生产级应用
  • Linux下的MySQL从DDL到DQL的基础操作
  • Leetcode 刷题记录 15 —— 二分查找
  • Elastic Search 学习笔记
  • 强化学习-UCB示例
  • Python 模块
  • 鸿蒙Next仓颉语言开发实战教程:设置页面