计算机网络•自顶向下方法:多址接入协议
多址接入协议
链路的两种类型
点到点链路:
- 仅连接了一个发送方和一个接收方的链路
- 一条全双工链路可以看成是由两条单工链路组成
广播链路:
- 连接了许多节点的单一共享链路,任何一个节点发送的数据可被链路上的其它节点接收到
多址接入(Multiple Access)
冲突(collision)
- 在广播链路上,若两个或多个节点同时发送,发送的信号会发生干扰,导致接收失败
多址接入协议
- 规定节点共享信道(谁可以发送)的方法
- 多址接入协议也称媒体接入控制(Medium Access Control,MAC)协议
理想的多址接入协议
在速率为R bps的广播信道上
- 当只有一个节点发送时,它应能以速率R发送(信道利用率高)
- 当有M个节点发送时,每个节点应能以 R/M的平均速率发送(公平性好、信道利用率高)
- 协议是无中心的(分散式):
- 不需要一个特殊的节点来协调发送(健壮性好)
- 不需要时钟或时隙同步(不需要额外的机制)
- 简单(实现和运行开销小)
MAC协议的分类
信道划分
-
将信道划分为若干子信道,每个节点固定分配一个子信道,不会发生冲突
-
关注公平性,轻负载时信道利用率不高
随机接入(竞争)
- 不划分信道,每个节点自行决定何时发送,出现冲突后设法解决
- 轻负载时信道利用率高,重负载时冲突严重
轮流使用信道
- 不划分信道,有数据的节点轮流发送,不会出现冲突
- 信道利用率高,公平性好,但需引入额外机制
信道划分的MAC协议
TDMA: 时分多址
- 将信道的使用时间划分成帧,每个节点在帧中被分配一个固定长度的时间片,每个时间片可以发送一个分组
- 节点只能在分配给自己的时间片内发送
- 若节点不发送,其时间片轮空
FDMA: 频分多址
- 将信道频谱划分为若干子频带
- 每个节点被分配一个固定的子频带
- 若节点不发送,其子频带空闲
CDMA: 码分多址
- 将每个比特时间进一步划分为m个微时隙(称chip)
- 每个节点被分配一个惟一的m比特码序列(称chip code)
- 发送方编码:发送“1”=发送chip code;发送“0”=发送chip code的反码
- 信号叠加:多个节点发送的信号在信道中线性相加
- 接收方解码:用发送方的chip code与信道中收到的混合信号计算内积,恢复出原数据
- 前提条件:任意两个chip code必须是相互正交的
CDMA允许所有节点同时使用整个信道!
随机接入的MAC协议
随机接入的基本思想:
- 当节点有数据要发送时,以信道速率R发送,发送前不需要协调
- 随机接入MAC协议规定如何检测冲突,以及如何从冲突中恢复
随机接入MAC协议的例子:
- 发送前不监听信道:ALOHA家族
- 发送前监听信道:CSMA家族
时分(Slotted) ALOHA
假设:
- 所有帧长度相同
- 时间被划分为等长的时隙,每个时隙传一帧
- 节点只能在时隙开始时发送
- 节点是时钟同步的(知道时隙何时开始)
- 所有节点可在时隙结束前检测到是否有冲突发生
操作:
- 节点从上层收到数据后,在下一个时隙发送
- 若时隙结束前未检测到冲突,节点可在下一个时隙发送新的帧
- 若检测到冲突,节点在随后的每一个时隙中以概率P重传,直至发送成功
优点
- 单个活跃节点可以信道速率连续发送
- 分散式:节点自行决定什么时候发送
- 简单
缺点
- 发生冲突的时隙被浪费了
- 由于概率重传,有些时隙被闲置
- 需要时钟同步
时分Aloha的效率
效率:当网络中存在大量活跃节点时,长期运行过程中成功时隙所占的比例
假设: 有N个活跃节点,每个节点在每个时隙开始时以概率P发送
给定节点在一个时隙中发送成功的概率 = p ( 1 − p ) N − 1 p(1-p)^{N-1} p(1−p)N−1
给定时隙中有节点发送成功的概率 = N p ( 1 − p ) N − 1 Np(1-p)^{N-1} Np(1−p)N−1
最大效率:
找到令 N p ( 1 − p ) N − 1 Np(1-p)^{N-1} Np(1−p)N−1最大的概率 p ∗ p^* p∗
代入 N p ∗ ( 1 − p ∗ ) N − 1 Np^*(1-p^*)^{N-1} Np∗(1−p∗)N−1,并令N趋向于无穷,得到:
最大效率 = 1/e = 0.37
纯ALOHA
基本思想:
- 不需时钟同步,任何节点有数据发送就可以立即发送
- 节点通过监听信道判断本次传输是否成功
- 若不成功,立即以概率P重传,以概率(1-P)等待一个帧时后再决定。(帧时:发送一帧的时间,假设帧长度相同)
发生冲突的情形:
在时刻 t 0 t_0 t0发送的帧与在 ( t 0 − 1 , t 0 + 1 ) (t_0-1,t_0+1) (t0−1,t0+1) 时段内发送的其它帧冲突
纯Aloha的效率
P(给定节点发送成功) = P(节点发送) .
P(无其它节点在 ( t 0 − 1 , t 0 ] (t_0-1,t_0] (t0−1,t0]内发送) .
P(无其它节点在 [ t 0 , t 0 + 1 ) [t_0, t_0+1) [t0,t0+1)内发送)
= p ( 1 − p ) N − 1 ( 1 − p ) N − 1 p(1-p)^{N-1}(1-p)^{N-1} p(1−p)N−1(1−p)N−1
= p ( 1 − p ) 2 ( N − 1 ) p(1-p)^{2(N-1)} p(1−p)2(N−1)
求导得到 :最大效率 = 1/(2e) = 0.18
载波侦听多址接入(CSMA)
发送前监听信道(carrier sensing):
- 信道空闲:发送整个帧
- 信道忙:推迟发送
冲突仍可能发生:
- 由于存在传输延迟,节点可能没有监听到其它节点正在发送
- 即使忽略传输延迟,当两个(或多个)节点同时发现信道由忙变为空闲、并都决定立即发送时,仍会发生冲突
CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波侦听多路访问/冲突检测)
为了提高CSMA协议的效率,CSMA/CD在其基础上增加了冲突检测机制。该协议主要用于有线网络(如以太网)中,设备在发送数据的同时也监听信道,能够实时检测是否发生碰撞。具体步骤如下:
- 监听信道:设备发送数据前,首先监听信道。如果信道空闲,设备开始发送数据;如果信道繁忙,则等待。
- 数据发送:当信道空闲时,设备开始发送数据。在发送过程中,设备继续监听信道,以便检测是否发生碰撞。
- 碰撞检测:
- 如果在发送数据时发生碰撞(即两个设备同时发送数据),设备立即停止发送,并通过冲突检测机制发现碰撞。
- 停止发送:设备会立即停止数据发送。
- :退避机制:设备会等待一个随机的退避时间后,再重新尝试发送数据。退避时间是随机生成的,以避免重复的碰撞。
退避算法:
- 退避时间通常使用二进制指数退避算法,即在每次碰撞后,设备随机选择一个退避时间,且退避时间的范围随着碰撞次数的增加而增大。通过随机选择,避免多个设备总是同时重试,导致持续碰撞。负载越重(冲突次数越多),等待时间的选择范围越大,再次发生冲突的可能性越小
CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多路访问/冲突避免)
CSMA/CA是专门为无线网络(如Wi-Fi)设计的协议。与CSMA/CD不同,由于无线信道的特点,设备在发送过程中无法直接检测碰撞,因此CSMA/CA采用了冲突避免策略来降低碰撞发生的概率。
具体步骤如下:
- 监听信道:设备在发送数据前首先监听信道,检查信道是否空闲。
- 等待随机时间:
- 如果信道空闲,设备不立即发送数据,而是等待一个随机的时间段。这一时间段通常称为退避时间。
- 退避时间是为了避免多个设备几乎同时开始发送数据,导致碰撞。每个设备会等待一个随机的时间段,减少多设备同时发送的概率。
- 数据发送:
- 如果信道在退避时间结束时仍然空闲,设备就开始发送数据。
- ACK(确认)机制:
- 在无线网络中,设备通常在数据发送完成后等待接收方的确认(ACK)。如果在一定时间内没有收到确认,设备会认为数据发送失败,并重新尝试发送数据。
CSMA/CA的特点:
- 冲突避免:通过随机退避时间来避免多个设备同时发送,从而降低碰撞的发生概率。
- 确认机制:设备发送数据后需要等待接收方的确认,增加了可靠性。
轮流MAC协议
轮询
在轮询协议中,通信系统或网络中的一个设备(通常称为主设备或轮询器)负责主动轮询每个节点,询问它是否有数据需要发送。该协议通过避免多个节点同时发送数据来减少冲突。
-
主设备轮询:主设备(通常是接入点或中央控制器)依次轮询每个从设备。
-
从设备回应:
- 当从设备收到轮询信号时,如果它有数据要发送,它会响应并开始发送数据。
- 如果没有数据要发送,从设备就会跳过这次轮询,不发送任何信号,主设备继续轮询下一个从设备。
-
数据传输:主设备通过轮询控制数据传输的顺序,确保每个设备在自己的时刻占用信道,从而避免了碰撞。
缺点:
- 依赖主设备:该协议依赖于主设备的存在,主设备故障会导致整个系统无法工作
- 主设备负担重:主设备需要管理所有设备的轮询请求,可能导致主设备的负担较重
- 延迟:如果设备数量多,轮询一次需要的时间就很长,可能导致较大的延迟,尤其是在高负载情况下
令牌传递
令牌传递协议是一种通过在网络中传递一个特殊的“令牌”来控制信道访问的协议。令牌是一个特殊的数据包或控制信号,网络中的设备必须获取令牌才能发送数据。令牌在设备之间轮流传递,保证了每个设备在某一时刻具有发送数据的权限。
- 令牌初始化:网络中的设备形成一个环形结构,最初有一个设备持有令牌。
- 令牌传递:
- 设备只有在收到令牌后,才能开始发送数据。如果设备没有数据要发送,它会将令牌传递给下一个设备。
- 令牌在网络中按顺序传递,确保每个设备都有机会发送数据。
- 数据传输:持有令牌的设备可以开始发送数据。发送完成后,它将令牌传递给下一个设备。
- 循环进行:令牌不断在设备之间传递,直到所有设备完成数据传输。
缺点:
- 令牌丢失问题:如果令牌丢失,网络中的设备就无法发送数据,因此需要特殊机制来恢复丢失的令牌。
- 传递延迟:令牌传递可能带来一定的延迟,尤其是在设备数量很多时,令牌传递的周期可能较长。
- 复杂性:令牌传递协议的实现相对较复杂,尤其是在大规模网络中,需要有效管理令牌的传递和丢失恢复。
MAC协议小结
按照时间、频率、编码划分信道:
- 时分多址、频分多址、码分多址
随机接入:
- 纯ALOHA, S-ALOHA(ALOHA网络)
- CSMA/CD(早期以太网)
- CSMA/CA(802.11)
轮流访问:
- 中心节点轮询(蓝牙)
- 令牌传递(FDDI、IBM令牌环、令牌总线)
MAC协议比较
信道划分MAC协议:
- 重负载下高效:没有冲突,节点公平使用信道
- 轻负载下低效:即使只有一个活跃节点也只能使用1/N的带宽
随机接入MAC协议:
- 轻负载时高效:单个活跃节点可以使用整个信道
- 重负载时低效:频繁发生冲突,信道使用效率低
轮流协议(试图权衡以上两者):
- 按需使用信道(避免轻负载下固定分配信道的低效)
- 消除竞争(避免重负载下的发送冲突)