MAC 子层的主要功能是控制和协调所有站点对共享介质的访问。
静态划分信道
信道划分介质访问控制
信道划分介质访问控制通过复用实现。复用是指发送端把多个发送方的信号组合在一条物理信道上进行传输,在接收端把收到的复用信号分离出来,并发给接收方。
频分复用(FDM)共享时间
频分多路复用是指载波带宽被划分为多种不同频带的子信道,每个子信道可以并行传送一路信号的一种多路复用技术。相邻信道间还要加入“隔离频带”。
时分复用(TDM)共享空间
时分多路复用一种数字或者模拟(较罕见)的多路复用技术。使用这种技术,两个以上的信号或数据流可以同时在一条通信线路上传输,其表现为同一通信信道的子信道。但在物理上来看,信号还是轮流占用物理信道的。
为了实现 TDM,需要满足两个条件:介质的位速率大于单个信号的位速率;介质的带宽(最高频率与最低频率之差)大于结合信号的带宽。
统计时分复用,又称异步时分复用,是一种根据用户实际需要动态分配线路资源的时分复用方法。只有当用户有数据要传输时才给他分配线路资源,当用户暂停发送数据时,不给他分配线路资源,线路的传输能力可以被其他用户使用。采用统计时分复用时,每个用户的数据传输速率可以高于平均速率,最高可达到线路总的传输能力。
- 这里我们假设线路传输速率为 8000 b/s
- 采用 TDM,则 4 个用户的平均速率为 2000 b/s
- 采用 STDM,则每个用户的最高速率可达 8000 b/s。
波分复用(WDM)共享时间
码分复用(CDM)
码分多路复用是采用不同的编码来区分各路原始信号的一种复用方式。与 FDM 和 TDM 不同, 它既共享信道的频率,又共享时间。
码分复用就是把多个发送方的数据合在一起传送,接收端接收到后再将数据分离,发送给不同的接收方。
特点:
- 频谱利用率高
- 抗干扰能力强
- 保密性强
- 语音质量好
- 运行成本低
- 主要用于移动通信系统
简单理解就是,A 站向 C 站发出的信号用一个向量表示,B 站向 C 站发出的信号用另一个向量表示,两个向量要求相互正交。向量中的分量就是码片。
-
信号数据叠加
假设一个比特被分为 位码片序列, S 代表 A 的码片向量,T 代表 B 的码片向量 A 的码片序列为 00011011, B 的码片序列为 00101110, 将 0 写为-1,得到 , 不同发送方的码片内积为 0,即 任何码片和自身的内积 都是 1 任何码片和自身的反码的内积 都是-1
设此时 A 发送比特 1,B 发送比特 0 数据叠加后得
-
信号数据分离
所以发过来的是 1 所以发过来的是 -1
动态分配信道
随机访问介质访问控制
- 在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。
- 在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告终。
- 为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有 ALOHA 协议、 CSMA 协议、 CSMA/CD 协议和CSMA/CA 协议等。它们的核心思想都是: 胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
- 随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为。
ALOHA 协议
ALOHA协议是由美国夏威夷大学开发的一种网络协议。处于OSI模型中的数据链路层。它属于随机存取协议(Random Access Protocol)中的一种。它分为纯ALOHA协议和分段ALOHA协议(或时隙ALOHA协议)。
纯ALOHA协议
时隙 ALOHA 协议
对比纯ALOHA和时隙ALOHA
- 纯 ALOHA 比时隙 ALOHA 吞吐量更低,效率更低
- 纯 ALOHA 想发就发,时隙 ALOHA 只有在时间片段开始时能发
CSMA 协议
是一种允许多个设备在同一信道发送信号的协议,其中的设备监听其它设备是否忙碌,只有在线路空闲时才发送。
CS:载波侦听/监听,每一个站在发送数据前要检测一下总线上是否有其他计算机在发送数据。 MA:多点接入,表示多计算机以多点接入的方式连接在一根总线上。
CSMA 与 ALOHA 协议的主要区别是多了一个载波监听装置。
根据监听方式和监听到信道忙后的不同处理方式,CSMA 协议分为三种:
1-坚持 CSMA
“1”:监听到信道空闲后,立即发送帧的概率为 1 坚持:监听到信道忙后,继续坚持监听信道
非坚持 CSMA
若监听到信道空闲,则立即发送数据;若监听到信道忙,则等待一个随机的时间后,重新开始监听信道。
p-坚持 CSMA
p-坚持 CSMA 只适用于时分信道。
若监听到信道空闲,则有 p 的概率直接发送数据,有 1-p 的概率推迟到下一个时隙在重新监听;若监听到信道忙,则持续监听(即等到下一个时隙再监听)。
三种不同类型的 CSMA 协议比较
相同点:发生冲突后还是要把帧发送完,造成浪费。
信道状态 | 1-坚持 | 非坚持 | p-坚持 |
---|---|---|---|
空闲 | 立即发送数据 | 立即发送数据 | 有 p 的概率发送数据,1-p 的概率推迟到下一个时隙 |
忙 | 继续坚持监听 | 放弃监听,等待一个随机事件后重新开始监听 | 持续监听(等待下一时隙再监听),直至信道空闲 |
CSMA/CD 协议
CD:碰撞检测,“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,一遍判断自己在发送数据时其他站是否也在发送数据。
单程端到端传播时延记为 当 时发生碰撞,此时 A 和 B 都还不知道 当 时,B 检测到碰撞,停止发送数据 当 时,A 检测到碰撞, 停止发送数据
所以 A 发送数据后最多经过 的时间就可以检测到数据 ( 时 ),所以把 称为争用期(冲突窗口)。
为了在发送站发送完一个帧之前就检测到冲突,则帧不能太短,否则在发送出去后都不能检测到冲突。所以规定一个 大于这个最短帧长的帧,传输时间肯定大于 ,所以在发送出去之前就可以检测到冲突。以太网规定最短帧长为 64B。
发生冲突后,参与冲突的两个站点不能立刻再次发送,否则会导致无休止的冲突。CSMA/CD 采用截断二进制指数退避算法来确定冲突后重传的时机。
截断二进制指数退避算法
- 确定基本退避时间,一般取一个争用期 (即 )
- 从离散的整数集合 中随机取出一个数,记为 ,即重传需要推迟的时间就是 。参数
- 到重传次数达到 16 次时,说明网络太拥挤,认为该帧永远不能发出,抛弃该帧并向高层报告出错。
CSMA/CA 协议
虽然CSMA/CD协议已成功地应用于有线连接的局域网,但无线局域网不能简单地搬用CSMA/CD协议。其主要原因是:
- CSMA/CD协议要求一个站点在发送本站数据的同时还必须不间断地检测信道,以便发现是否有其他的站也在发送数据,这样才能实现“冲突检测”的功能。但在无线局域网的设备中要实现这种功能花费过大。
- 更重要的是,即使能够实现冲突检测的功能,且在发送数据报时检测到信道是空闲的,但是,由于无线电波能够向所有的方向传播,且其传播距离受限,在接收端仍然有可能发生冲突,从而产生隐藏站问题和暴露站问题。
CSMA/CA协议利用ACK信号来避免冲突的发生,就是说需要收到确认才知道数据已经成功发送。
CA:冲突避免。不是说协议可以完全避免冲突,而是指协议的设计要尽量降低冲突发生的概率。
所有站完成发送后,需要等待一个帧间间隔(IFS),才能发送下一帧。802.11 标准使用了下列三种 IFS:
DCF:CSMA/CA 的媒体介入控制方式,没有中心控制节点,每个站点使用 CSMA/CA 协议通过争用信道来获取发送权。DCF 方式是 802.11 定义的默认方式(必须实现)
- SIFS:短 IFS (28µs),用来分隔属于一次对话的各帧,使一个站点能够从发送方式转为接收方式,如 ACK 帧、CTS 帧、分片后的数据帧以及所有回答 AP 探询的帧等,
- PIFS:点协调 IFS,中等长度的 IFS,在 PCF 操作中使用
- DIFS:分布式 IFS (128µs),用于异步帧竞争访问的时延,比如信道空闲是要等待一个 DIFS
RTS 帧(Request to send):包括源地址、目的地址和这次通信所需的持续时间 CTS 帧 (Clear to send):给源站明确的发送许可;让其他站在预约期内不要发送
CSMA/CA 工作原理
- 发送数据前先检测信道是否空闲
- 空闲则等待 DIFS 后发出 RTS
- 忙则随机退避
- 接收端收到 RTS 后,等待一个 SIFS,将响应 CTS
- 发送端收到 CTS 后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要发送多长时间数据)
- 接收端收到数据帧后,将用 CRC 来检验数据是否正确,正确则相应 ACK 帧
- 发送方
- 收到 ACK:等待一个 DIFS 后,随机退避,就可以开始下一个帧的传送
- 若没有收到则 随机退避后重传,直到规定重发次数为止。
以下情况必须使用退避算法
- 在发送数据帧前检测到信道忙
- 每次重传一个数据帧时
- 成功发送并接收到 ACK 后要连续发送下一个帧时(避免一个站点长时间占用信道)
CSMA/CA 的退避算法
- 设置一个退避计时器
- 当计时结束后,开始发送数据
- 当计时未结束时信道又变为忙状态,冻结计时器,等待信道重新空闲时,再经过一个 DIFS,继续计时
- 在第 i 次退避时,退避时间在[0,1,…, ]中随机选择一个,然后乘以一个时隙时间(两站点之间最大传输时延的两倍),
若主机 A 和主机 B 互为隐蔽站,在主机 A 发送 RTS 帧预约信道后,经过一个 SIFS,AP 广播发送一个 CTS 帧,其中包含了 NAV (Network Allocation Vector 网络分配向量)= 信道空闲还需要的时间,A 收到 CTS 帧后等待一个 SIFS 开始发送,B 收到 CTS 后知道还需要 NAV 的时间后信道会空闲。
CSMA/CD 和 CSMA/CA 的对比
协议类型 | 冲突处理 | 传输介质 | 检测方式 | 总结 |
---|---|---|---|---|
CSMA/CD | 检测冲突 | 总线型以太网 | 通过电缆中的电压变化检测 | 在发送数据帧前监听信道,边发送边监听,一旦发生冲突就停止发送 |
CSMA/CA | (尽量)避免冲突 | 无线局域网 802.11 a/b/g/n 等 | 采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式 | 在发送数据帧前先广播告知其他站点,让其他站点在某段时间内停止发送 |
轮询访问介质访问控制(令牌传递协议)
在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点都不能使用信道。
令牌:一个特殊格式的 MAC 控制帧,不含任何信息。令牌只有一个,所以令牌环网络不会发生冲突。
每个结点可在一定时间内获得发送数据的权限,不能无限制持有令牌。 没有数据要发送的节点收到令牌后立刻传递下去而不能持有。
令牌环网络中令牌和数据的传递过程如下:
- 当网络空闲时,环路中只有令牌帧在循环传递
- 当令牌传递到有数据要发送的站点时,该站点修改令牌的一个标志位,并在令牌中附上数据,将令牌变成一个数据帧,然后令牌继续传递
- 经过的站点检查令牌中数据的目的地址,若目的地址就是自己的地址,则复制该数据帧,以便进一步处理
- 数据帧沿着环路传输,直至到达该帧的源站点后停止转发。同时检验返回的帧来查看数据传输过程中是否出错,来决定是否需要重传
- 源站点传送完数据后,重新产生一个令牌,并传递给下一站点,交出信道控制权
令牌传递协议的特点:适合负载很高的广播信道。