介质访问控制——随机访问控制
随机访问控制就像一群人在自由讨论会上发言——谁想说话就随时开口,但可能会撞车,所以需要一套“避免打架”的规则。它用于解决多个设备共享同一信道时的冲突问题。
随机访问控制是一种多个设备抢占通信信道的方式,谁先抢到谁就可以先发送数据,没抢到的等下一轮。
纯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协议