3.6 媒体接入控制
3.6 媒体接入控制(MAC)
- 共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。
- 随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局 域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。
1. 静态划分信道
- 信道复用技术
- 复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
- 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
1.1 频分复用(FDM)
- 频分复用的所有用户同时占用不同的频带资源并行通信。
1.2 时分复用(TDM)
- 时分复用的所有用户在不同的时间占用同样的频带宽度。
1.3 波分复用(WDM)
1.4 码分复用
- CDM的每一个用户可以在同样的时间使用同样的频带进行通信。
- 由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
- CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
- 在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128
- 使用CDMA的每一个站被指派一个唯一的码片码片序列
- 一个站如果要发送比特1,则发送它自己的码片码片序列;
- 一个站如果要发送比特0,则发送它自己的码片序列的二进制反码
- 码片序列挑选原则
- 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
- 分配给每个站的码片序列必须相互正交(规格化内积为0)
\[ A \bullet B = \frac{1}{m} \times \sum_{i=1}^{m}A_i \times B_i \]
2. 动态接入控制——随机接入
2.1 CSMA/CD协议
- 载波监听 多址接入 / 碰撞检测
- 以太网还采取一种叫做强化碰撞的措施。这就是当发送帧的站点一旦检测到碰撞,除了立即停止发送帧外,还要再继续发送32比特或48比特的人为干扰信号(Jamming Signal),以便有足够多的碰撞信号使所有站点都能检测出碰撞。
2.2 工作原理
争用期(碰撞窗口)
- 发送帧的主机最多经过以太网端到端往返传播时延2τ这么长时间,就可检测到本次传输是否发生了碰撞,2τ称为争用期:
- 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
- 以太网规定2τ的取值为512比特时间(即发送512比特所耗费的时间),对于10Mbps的以太网,2τ 即为51.2 μs。
- 最小帧长
\[ 最小帧长 = 争用期 \times 数据传输速率(带宽) \]
- 最小帧长的设置是因为源主机将帧发送完毕以后,便不会再管这个帧,此时发生碰撞导致目标主机丢弃该帧,不会重发。
- 以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期):
- 如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。
- 以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞:
- 如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞;
- 如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧。
- 最大帧长
- 最大帧长的设置是因为不能使某个主机长时间独占共享媒介,否则过于影响其它主机的数据发送
- 截断二进制指数退避算法
\[ 随机退避时间=争用期\times 随机数r,\\其中r从离散的整数集合0,1,…,(2k.1)中随机取出一个, \]
\[ k = Min(重传次数,10) \] - 若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减)小发生碰撞的概率,有利于整个系统的稳定。 - 当重传达16次仍不能成功时,这表明同时打算发送数据的主机太多以至于连续发生碰撞,则丢弃该帧并向高层报告。
- 以太网信道利用率
- 考虑以下这种理想情况:
- 各主机发送帧都不会产生碰撞,总线一旦空闲就有某个主机立即发送帧:
- 发送一帧占用总线的时间为T0+T,而帧本身的发送时间是T0,
- 理想情况公式:
\[ S_{max} = \frac{T_0}{T_0 + \tau} = \frac{1}{1+\frac{\tau}{T_0}} \]
- 信道利用率受传播时延限制,所以以太网端到端的距离收到限制,以太网帧的长度最好尽量长些
3. CSMA/CA协议
载波监听 多址接入 / 碰撞避免
载波监听多址接入/碰撞避免CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)
- 既然CSMA/CD协议已经成功地应用于使用广播信道的有线局域网,那么同样使用广播信道的无线局域网能不能也使用CSMA/CD协议呢?
- 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
- 在无线局域网中,不能使用碰撞检测CD,原因如下:
- 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
- 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰撞检测的意义也不大。
- 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。
- 由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。
- 802.11的MAC层标准定义了两种不同的媒体接入控制方式:
- 分布式协调功能DCF(Distributed Coordination Function)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
- 点协调功能PCF(Point Coordination Function)。PCF方式使用集中控制的接入算法 (一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。
3.1 帧间间隔IFS(InterFrame Space)
- 802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔FS。
- 帧间间隔的长短取决于该站点要发送的帧的类型:
- 高优先级帧需要等待的时间较短,因此可优先获得发送权:
- 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
无法在无线局域网中使用碰撞检测,所以还使用了停止-等待协议来实现可靠传输
- 短帧间间隔(SIFS)和 长时间间隔(DIFS),常用的两种帧间间隔如下:
- 短帧间间隔SIFS(28μs),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
- DCF帧间间隔DIFS(128μS),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
3.2 退避算法
- 在执行退避算法时,站点为退避计时器设置一个随机的退避时间
- 当退避计时器的时间减小到零时,就开始发送数据;
- 当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
- 在进行第i次退避时,退避时间在时隙编号0,1,......,2i+2 -1中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了。
何时执行退避算法
- 在发送数据帧之前检测到信道处于忙状态时
- 在每一次重传一个数据帧时
- 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)
信道预约
- 为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
- 802.11标准允许要发送数据的站点对信道进行预约,即在发送数据帧之前先发送请求发送RTS帧。在收到响应允许发送CTS帧后,就可发送数据帧。
- 源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
- 若目的站正确收到源站发来的RTS顿,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
- 源站收到CTS帧后,再等待一段时间S1FS后,就可发送其数据帧。
- 若目的站正确收到了源站发来的数据帧,在等待时间SFS后,就向源站发送确认帧ACK。
- 除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰。
- 如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。
- 由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择:
- 使用RTS帧和CTS帧
- 不使用RTS帧和CTS帧
- 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧
- 虚拟载波监听
- 除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。
- 由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。

3.6 媒体接入控制
http://binbo-zappy.github.io/2024/11/17/计算机网络/3-6-媒体介入控制/