【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制

MA[ multiple-access ]-多访问协议

多访问是指多个来源的流量同时访问一个节点,此时Rx对于流量的识别可能会出现问题。MA协议分为以下三种

【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
上图就是我们本章讨论的重点,我们将围绕上图的主题进行解释。

Random-access

Random-access也被称为contention-based【基于竞争】的方法。每个节点遵循事先定义的程序,在需要时发送数据,网络中的每个节点在传输过程中是完全随机的,每个站点为了占用通信资源和互相竞争。
而如果在同一时内多个节点 同时发送数据,信号由于会发生冲突而导致传输数据的数据包失真而无法被识别,最终被丢弃,传输失败。

ALOHA

最简单的传输方式,只要使用者有需求,就发送数据包,不管当前网络状况和其他事项,也因此自然会发生冲突。发生冲突则数据包无法被Tx识别或收到,此时重传该数据包或者放弃传输,根据事先制定的规则不同而决定。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
ACK确认:当数据包传输成功时,Rx会返回ACK通知Tx成功收到数据包,以此为凭证成功传输。 也因为这个机制,Tx需要等待ACK到达,等待ACK到达需要两倍的传输时间(往返)[RTT].
如上图,第二传输的来自四个Tx的数据包发生冲突而传输失败,此时需要重传数据包,重传数据包并不是立刻重传,而是等待一定时间后重传,为了防止重传再次冲突,设定等待时间为随机等待时间,减少再次冲突的概率。

Binary exponential backoff:二进制指数补偿。对于每一次重传,随机选择一个R = 0到2K−1的乘数,乘以Tp(最大传播时间)或Tfr(发送帧所需的平均时间)来找到TB
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
Wait time:总之大于RTT,除了往返时间之外,还有包括准备连接和差错检验等时间,因此等待时间一定大于RTT。
Tp:单方向链路中传输需要的时间,两倍就是RTT[往返时间]。
过程简述: 当Tx需要时,就发送数据包,发送数据包后等待略长于RTT的时间,然后检查是否收到了ACK,如果收到则传输成功;如果没有收到ACK则说明传输失败则需要重传数据包,重传数据包时需要随机等待时间,而确认随机等待时间的方式就是令K=K+1;K为当前发送该数据包的次数,这个次数拥有一个被称为Window Size的随机变量取值空间,这个Window Size的取值范围为2的K次幂。比如,如果是第一次传输失败,则下一次传输重传的WS就是(4-1=3),如果第4次传输失败就是15,然后从WS中随机取一个整数数值R,用R乘以RTT或者Tp后再次重传,如果失败则进入下一个循环,每次失败都会让WS变大,随机空间更大,下次还冲突的概率就会相对更低。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
Vulnerable time:可能发生冲突的时间长度。如图所示,如果B是当前要传输的数据包,在图示中的传输中B与A的结尾和C的开头部分冲突,导致B无法传输。因此如果想要令B安全的传输的话,则要求的安全时间应该是两倍的Tfr,只要在这个时间段没有其他数据包来占用传输资源,则可以保证数据B可以安全传输。

吞吐率

【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
这里的吞吐率用来描述数据的传输效率,公式如上。纯ALOHA的吞吐率公式是 S = G × e − 2 G S=G\times e^{-2G} S=G×e2G,最大吞吐率是 S m a x = 1 2 e . S_{max}=\frac{1}{2e}. Smax=2e1.
公式推导:
根 据 泊 松 方 程 , 数 据 包 到 达 的 成 功 率 = ( λ T ) k × e − λ T k ! 根据泊松方程,数据包到达的成功率=\frac{(λT)^k \times e^{-λT}}{k!} =k!(λT)k×eλT

  1. 假设单位传输时间内有λ个数据包到达,则需要的平均传输时间就是λT
  2. 如果想要一个完美的传输,则一个Tx传输数据时,其他所有Tx都没有传输数据,即K=0;且至少2T时间内其他Tx没有发送数据,即T=2T。此时原式等于 ( λ T ) 0 × e − λ 2 T 0 ! = 1 × e − λ 2 T 1 = e − 2 λ T \frac{(λT)^0 \times e^{-λ2T}}{0!}=\frac{1 \times e^{-λ2T}}{1}=e^{-2λT} 0!(λT)0×eλ2T=11×eλ2T=e2λT,因此平均时间*成功率=实际到达数据包数(吞吐量)= λ T ∗ e − λ 2 T = G ∗ e − 2 G λT*e^{-λ2T}=G*e^{-2G} λTeλ2T=Ge2G
  3. S m a x = d s d G S = e − 2 λ T + ( − 2 ) G ∗ e − 2 λ T = e − 2 λ T ( 1 − 2 G ) S_{max}=\frac{ds}{dG}S=e^{-2λT}+(-2)G*e^{-2λT}=e^{-2λT}(1-2G) Smax=dGdsS=e2λT+(2)Ge2λT=e2λT(12G)
    通过上式,我们可以发现Gmax=½,因此 G ∗ e − 2 G = 2 ∗ e − 1 = 0.184 G*e^{-2G}=2*e^{-1}=0.184 Ge2G=2e1=0.184

Slotted ALOHA

【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
与纯ALOHA相比,时隙ALOHA有着明确规定的起始点,非起始点下不能收发数据。这样的好处在于,杜绝了了开始或结尾与上一帧或下一帧出现些许冲突而导致传输失败的情况,传输的数据帧要么完全重叠而冲突要么不冲突。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制

也因此其Vulnerable time为Tfr。换言之 G ∗ e − G = e − 1 = 0.37 G*e^{-G}=e^{-1}=0.37 GeG=e1=0.37

CSMA-Carrier sense multiple access-载波监听多路访问

【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
与RA不同的是,CSMA能够自主的检测当前节点附近信道内是否有数据在传输,如果有则暂时不传等一定时间后再传,这样既可大大避免冲突产生的次数。但是冲突仍会产生,如上图所示:B想要传输数据给A和D,且传输时信道内无其他流量,因此成功将数据发送出去。但是C也想发数据给A,此时监听自己附近的信道,发现无流量,认为信道为空则传输数据给A,此时B-D流量与C-A流量相遇,冲突导致两信号被破坏。
CSMA虽然能大大减少冲突的发生,但是不能杜绝。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
他的VT=他的传输时间,只要他的传输过程中其他节点无信号发送既可成功通信。
接下来我们来详细说明一下这个过程:
CSMA可以分为三种类型:
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制

  1. 1-persistent:持续监听信道,当空闲时间立刻发送信号/数据。媒体利用率高。但是若有两个或两个以上的站点有数据发送,冲突就不可避免。
  2. nonpersistent:不持续监听信道,会等待一个随机时间间隔不时来尝试介入信道,如果信道忙则继续等待,信道空闲则立即发送。可以减少网络冲突。但若多个站点都有数据要发送,由于都在延时,所以媒体可能处于空闲状态,媒体利用率低
  3. p-persisten:节点须要持续监听信道,一旦发现信道空暇后,节点以p的概率立马发送数据。以1-p的概率不发送数据。若节点该时刻不发送数据。那么等待一段时间后。再次进行监听,并以p概率再次发送。既能像0-persistentes CSMA那样减少冲突,又能像1-persistentes CSMA 那样减少媒体空闲时间。这种算法的关键在于p值得选择,如果p值过大,冲突就不可避免,而且随着冲突概率的增大,吞吐量就会降低到0;当然若p值选的过小,媒体利用率会非常的低。

CSMA/CD

CSMA/CD,作用于有线网,用于检测冲突。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
因为检测冲突是由节点本身完成的,那么极端的情况下(比如C将数据包发送到A了,这一瞬间,A也发出来一个数据包,两信号碰撞了,使得A(对于C的接收端)无法识别该信号,而C确认为已经将数据成功传输给A,会导致Tx与Rx收发不一致的情况,而一旦数据帧到达目的地,则对应的源节点就结束了传输,也自然不再探测信道内的信号冲突,但是实际上传输是失败的。在这种情况下,我们要求持续传输帧的时间必须至少是一个RTT(往返时间),这样哪怕在瞬间发生冲突也能够及时告知C信息传输失败。

【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
Minimum Frame Size:最小帧大小。由于信道内发生冲突后,实际上检测冲突的是设备检测信道内的电压(有线网),信号的叠加必然使得电压升高,电压的变化可以被各节点端口识别,从而达到检测冲突的效果。

吞吐率:CSMA/CD效果优于ALOHA,与1-persistent下能达到50%左右[G=1],而其他情况下可以达到90%[G=3~8]
传统以太网使用10Mbps的传输速率实现CSMA/CD
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制

CSMA/CA

冲突避免,适用于无线网络。无线传输信号的性质决定了无线信道接收与发送信号时,无法采用CSMA/CD通过电压变化检测冲突的方法(Near/Far现象),同时无线网络中存在隐蔽站与暴露站的问题,因此设计了CSMA/CA来完成无线局域网下的冲突检测。CSMA/CA利用ACK信号来避免冲突的发生,也就是说,只有当客户端收到网络上返回的ACK信号后才确认送出的数据已经正确到达目的地址。
过程如下
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
(1)检测到介质空闲后,等待IFS[InferFrame Space]后,仍然需要等待一个0~WindowSize的窗口随机值R的时间后才发送请求帧RTS[Request To Send],表明需要占用介质的时间。RTS信号包括发射端的地址、接收端的地址、下一笔数据将持续发送的时间等信息。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
如果IFS之后的随机R的发送时间信道仍然忙,则仍然需要继续等待,此时window size*2,选择的范围称为之前的二倍,虽然不能说等待时间就对应称为两倍,但是平均而言发送效率会随着信道忙而等待的增加而越来越慢。

(2)目标收到RTS后,若空闲,向所有站点发送“准备发送帧”,表明信道将被占用。所有站点收到RTS信号后,将响应短信号CTS(Clear To Send),CTS信号上也RTS内记录的持续发送的时间,当发送端收到CTS包后,随即开始发送数据包。

(3)接收端收到数据包后,将以包内的CRC(CyClic Redundancy Check,循环冗余校验)的数值来检验包数据是否正确,若是检验结果正确时,接收端将响应ACK包,告知发射端数据己经被成功地接收。当发射端没有收到接收端的ACK包时,将认为包在传输过程中丢失,而一直重新发送包。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
DIFS的等待时间比SIFS要长。
我们来假设一个环境,E可以收到AB的信号,B-C之间无法互通信号,B-D之间可以互通信号,现在A要给B发数据。
A发送RTS时,此时信道内C/E不可传输数据;但是当B发CTS时,由于E可以收到B的数据,因此E整个过程不可发送数据,而C收不到B的CTS,则则A-B传输阶段,C可以发送数据给其他节点。D收不到A的信号,因此A发RTS时可以发送数据,可以收到B的信号,因此B在接收数据阶段D不可以发送数据。
冲突:B/C同时给A发送数据,A无法识别正确的RTS就不会反回CTS,此时B/C需要随机等待一个时间点来重传RTS。

NAV:Network Allocation Vector【网络分配向量】
当一个站发送一个RTS帧,它包括它需要占用信道的持续时间,NAV指明了其他设备需要至少等待多久才检查信道是否空闲,在监听物理链路之前,每个节点需要先检查NAV是否过期。

隐藏节点

隐藏节点:如图,A包含B,C包含B,AC互相无法直接访问。则AC同时向B发送数据包从CSMA的逻辑上是可能的,这就会导致RTS冲突。
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
解决方法有三种:

  1. Reservation: 数据传输之前要先发送一个预约帧。然后接收端会返回一个确认信息,只要这个过程完成后,则信道被二者占有直至使用完毕,因此这种方法可以避免冲突发生
  2. Polling: 分为主站和辅助站,由主设备决定在给定的时间允许哪个设备使用信道。所有数据交换必须通过主设备进行,即使最终目的地是一个辅助设备,指定时间内一一指定辅助站是否能使用信道资源。
  3. Token-passing:
    【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
    交换令牌,只有当设备持有令牌时,才允许发送数据/信号资源;信号轮流传递,当令牌传到对应设备且设备无需要发送的数据则传递给下一个设备

信道划分[Channelization]

  1. 频分多址
    【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制

  2. 时分多址
    【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制

  3. 码分多址
    【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
    这部分内容前面详细说明过,参考:Ch.6:多路复用和频谱扩展

补充说明——Walsh表
【通讯原理】Ch.11 Media Access Control(MAC) 媒体访问控制
通过块状矩阵的聚合来实现数据的正交,能满足上述规则的条件是码片数量为2的倍数。