随机访问控制协议

背景

在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突(碰撞),导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问控制协议。

核心思想

胜利者通过争用获得信道,从而获得信息的发送权。

实质

一种将广播信道转化为点到点信道的行为。

CSMA协议

思想

若每个站点在发送前都先侦听一下共用信道,发现信道空闲后再发送,则就会大大降低冲突的可能,从而提高信道的利用率。

CSMA(载波侦听多路访问)协议分为三种:1-坚持CSMA、非坚持CSMA、p-坚持CSMA。

信道状态 1-坚持 非坚持 p-坚持
空闲 立即发送数据 立即发送数据 以概率p发送数据,以概率1-p推迟到下一个时隙
继续坚持侦听信道 放弃侦听,等待一个随机的时间后再侦听 持续侦听,等待下一个时隙再侦听

CSMA/CD协议

CSMA/CD协议应用于有线连接的局域网。采用CSMA/CD协议的以太网只能进行半双工通信。

工作流程

先听后发,边听边发(区别于CSMA协议),冲突停发,随机重发。

  1. 适配器从父结点获得一个网络层数据报,准备一个以太网帧,并把该帧放到适配器缓冲区中。
  2. 如果适配器侦听到信道空闲,那么它开始传输该帧。如果适配器侦听到信道忙,那么它将等待直至侦听到没有信号能量,然后开始传输该帧。
  3. 在传输过程中,适配器检测来自其他适配器的信号能量。如果这个适配器传输了整个帧,而没有检测到来自其他适配器的信号能量,那么这个适配器完成该帧的传输。否则,适配器就须停止传输它的帧,取而代之传输一个48比特的拥塞信号。
  4. 在中止(即传输拥塞信号)后,适配器采用截断二进制指数退避算法等待一段随机时间后返回步骤2。

最小帧长

为了确保发送站在发送数据的同时能检测到可能存在的冲突,需要在发送完帧之前就能收到自己发送出去的数据,即帧的传输时延至少要两倍于信号在总线中的传播时延,所以CSMA/CD总线网中的所有数据帧都必须要大于一个最小帧长。
最小帧长 = 总线传播时延 × 数据传输率 × 2
对于10Mb/s的以太网,最短帧长为64B。

二进制指数退避算法

  1. 确定基本退避时间,一般取两倍的总线端到端传播时延 2τ(即争用期)。
  2. 定义参数 k,它等于重传次数,但 k 不超过 10,即 k = min[重传次数,10]。
  3. 从离散的整数集合[0, 1, …, 2k-1]中随机取出一个数 r,重传所需要退避的时间就是 r 倍的基本退避时间,即 2rτ。
  4. 当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

CSMA/CA协议

CSMA/CA 采用二进制指数退避算法。信道从忙态变为空闲时,任何一个站要发送数据帧时,不仅都须等待一个时间间隔,而且还要进入争用窗口,并计算随机退避时间以便再次试图接入信道,因此降低了发生碰撞的概率。当且仅当检测到信道空闲并且这个数据帧是要发送的第一个数据帧时,才不使用退避算法。

CSMA/CA 还使用预约信道、ACK帧、RTS/CTS帧等三种机制来实现碰撞避免。
预约信道:发送方在发送数据的同时向其他站点通知自己传输数据需要的时间长度,以便让其他站点在这段时间内不发送数据,从而避免碰撞。

总结:CSMA/CA 协议的基本思想是在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞。CSMA/CD 协议的基本思想是发送前侦听,边发送边侦听,一旦出现碰撞马上停止发送。