媒体接入控制的基本概念
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。
随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。
静态划分信道
信道复用
复用(Multiplexing)是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。
1.频分复用FDM
频分复用的所有用户同时占用不同的频带资源并行通信。
2.时分复用TDM
时分复用的所有用户在不同的时间占用同样的频带宽度。
3.波分复用(光的频分复用)
4.码分复用
码分复用CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)。在本课程中,我们不严格区分复用与多址的概念。可简单理解如下:
-
复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立,互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
-
多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
-
某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。
与FDM和TDM不同,CDM的每一个用户可以在同样的时间使用同样的频带进行通信。由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
在CDMA中,每一个比特时间再划分为m个短的间隔,称为码片(Chip)。通常m的值是64或128。为了简单起见,在后续的举例中,我们假设m为8。
使用CDMA的每一个站被指派一个唯一的m bit码片序列(Chip Sequence)
-
一个站如果要发送比特1,则发送它自己的m bit码片序列;
-
一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码;
例:指派给CDMA系统中某个站点的码片序列为00011011
发送比特1:发送自己的码片序列00011011
发送比特0:发送自己的码片序列的二进制反码11100100
为了方便,我们按惯例将码片序列中的0写为-1,将1写为+1。
则该站点的码片序列是(-1 -1 -1 +1 +1 -1 +1 +1)。
这种通信方式称为直接序列扩频,DSSS。
码片序列的挑选原则如下:
-
分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
-
分配给每个站的码片序列必须相互正交(规格化内积为0)。正交就是向量互相垂直。
令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列。两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0:
向量S相当于m维向量。
例题:共有4个站进行CDMA通信,这4个站的码片序列分别为:
A: (-1 -1-1 +1 +1 -1+1 +1) B: (-1 -1+1-1+1 +1 +1-1)
C: (-1 +1 -1+1+1 +1 -1 -1) D: (-1 +1 -1-1 -1 -1 +1 -1)
现收到码片序列(-1+1-3+1-1-3+1+1)。问是哪些站发送了数据?发送的是比特1还是0?
解析:用收到的码片序列分别与各站的码片序列进行求内积运算。若计算结果为数值1,则被判断的站发送了比特1;若计算结果为数值-1,则被判断的站发送了比特0;若计算结果为数值0,则被判断的站未发送数据。
经计算,A发送比特1,B发送比特0,C未发送,D发送比特1。
例题:站点A、B、C通过CDMA共享链路,A、B、C的码片序列(chipping sequence)分别是(1,1,1,1)、(1,-1,1,-1)和(1,1,-1,-1)。若C从链路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是
A.000 B.101 C.110 D.111
解析:由于题目所给各站的码片序列为4位,因此将站点C收到的序列分成三部分,每部分也由4位组成:
(2,0,2,0),(0,-2,0,-2) ,(0,2,0,2)
将站点A的码片序列(1,1,1,1)分别与上述三个部分进行内积运算,根据结果可判断出A发送的数据。第一个是比特1,第二个是比特0,第三个是比特1,选B
媒体接入控制——动态接入控制——随机接入
载波监听多址接入/碰撞检测CSMA/CD (Carrier Sense Multiple Access/Collision Detection)
1.多址接入MA
多个站连接在一条总线上,竞争使用总线。
2.载波监听CS
每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(“先听后说”) ∶
-
若检测到总线空闲96比特时间,则发送这个帧;
-
若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧。
96比特时间是指,发送96比特所耗费的时间,也称为帧间最小间隔。其作用是使接收方可以检测出一个帧的结束。同时也使得所有其他站点都能有机会平等竟争信道并发送帧。
3.碰撞检测CD
每一个正在发送帧的站边发送边检测碰撞(“边说边听”) :
一旦发现总线上出现碰撞,则立即停止发送,退避━段随机时间后再次发送(“一旦冲突,立即停说,等待时机,重新再说”)。
争用期(碰撞窗口)
主机最多经过2τ(即δ→0 )的时长就可检测到本次发送是否遭受了碰撞因此,以太网的端到端往返传播时延2τ称为争用期或碰撞窗口。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
每一个主机在自己发送帧之后的一小段时间内,存在着遭遇碰撞的可能性。这一小段时间是不确定的。它取决于另一个发送帧的主机到本主机的距离,但不会超过总线的端到端往返传播时延,即一个争用期时间。
显然,在以太网中发送帧的主机越多,端到端往返传播时延越大,发生碰撞的概率就越大。因此,共享式以太网不能连接太多的主机,使用的总线也不能太长。
10Mb/s以太网把争用期定为512比特发送时间,即51.2μs,因此其总线长度不能超过5120m,但考虑到其他一些因素,如信号衰减等,以太网规定总线长度不能超过2500m
最小帧长
假设A向D发送一个很短的帧,发完后C又向D发送帧,此时C检测总线为空闲,所以发送,然后发生碰撞。
很显然,以太网的帧长不能太短!
以太网规定最小帧长为64字节,即512比特(512比特时间即为争用期);
如果要发送的数据非常少,那么必须加入一些填充字节,使帧长不小于64字节。
以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞;
如果在争用期(共发送64字节)没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞;如果在争用期内检测到碰撞,就立即中止发送,这时已经发送出去的数据一定小于64字节,因此凡长度小于64字节的帧都是由于碰撞而异常中止的无效帧。
最大帧长
截断二进制指数退避算法
若连续多次发生碰撞,就表明可能有较多的主机参与竞争信道。但使用上述退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
当重传达16次仍不能成功时,表明同时打算发送帧的主机太多,以至于连续发生碰撞,则丢弃该帧,并向高层报告。
信道利用率
帧发送流程
帧接收流程
例题:下列关于CSMA/CD协议的叙述中,错误的是
A.边发送数据帧,边检测是否发生冲突
B.适用于无线网络,以实现无线链路共享
C.需要根据网络跨距和数据传输速率限定最小帧长
D.当信号传播延迟趋近于0时,信道利用率趋近100%
解析:选项A描述的是“碰撞检测(冲突检测)”,描述正确;
选项B的描述错误,因为CSMA/CD协议不适用于无线网络。对于无线网络,可以使用CSMA/CA协议;
选项C中给出的“网络跨距”相当于给出了“端到端传播时延て”,进而可得出“争用期2z”,再乘以数据传输速率即为最小帧长,描述正确;
选项D描述正确,这可以从极限信道利用率的计算公式看出。故选B。
例题:在一个采用CSMA/CD协议的网络中,传输介质是一根完整的电缆,传输速率为1Gbps,电缆中的信号传播速度是200 000km/s。若最小数据帧长度减少800比特,则最远的两个站点之间的距离至少需要
A。增加160m B.增加80m C.减少160m D.减少80m
解析:
本题考查采用CSMA/CD协议的以太网的最小帧长的相关概念。
设最远两个站点之间的距离为d(m),最小帧长为I(bit); 最小帧长=争用期×数据传输速率
计算得,d=l/10
故选D
例题:某局域网采用CSMA/CD协议实现介质访问控制,数据传输速率为10Mbps,主机甲和主机乙之间的距离为2km,信号传播速度是200 000km/s。请回答下列问题,要求说明理由或写出计算过程。
(1)如主机甲和主机乙发送数据时发生冲突,则从开始发送数据时刻起,到两台主机均检测到冲突时刻止,最短需经过多长时间?最长需经过多长时间(假设主机甲和主机乙发送数据过程中,其他主机不发送数据)?
解析:
甲发送的帧信号传播到无限接近乙的某个时刻,乙也要发送帧,它检测到信道空闲(但信道此时并不空闲),就立刻开始发送帧,这必然会导致碰撞。乙会首先检测到碰撞,一段时间后甲也会检测到碰撞。
从开始发送数据时刻起,到两台主机均检测到碰撞时刻止,最长需要经过的时间为两台主机间信号传播的往返时延(争用期)(2km ÷ 200 000km/s ) x 2 = 0.02ms
载波监听多址接入/碰撞避免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定义的可选方式,在实际中较少使用。
帧间间隔IFS(InterFrame Space)
802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS。
帧间间隔的长短取决于该站点要发送的帧的类型:
-
高优先级帧需要等待的时间较短,因此可优先获得发送权;
-
低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
常用的两种帧间间隔如下:
-
短帧间间隔SIFS(28us),是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
-
DCF帧间间隔DIFS(128us),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。
CSMA/CA协议工作原理
源站为什么在检测到信道空闲后还要再等待一段时间DIFS?
就是考虑到可能有其他的站有高优先级的帧要发送。若有,就要让高优先级帧先发送。
目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
SIFS是最短的帧间间隔,用来分隔开属于一次对话的各帧。
在这段时间内,一个站点应当能够从发送方式切换到接收方式。
为什么信道由忙转为空闲且经过DIFS时间后,还要退避一段随机时间才能使用信道?
防止多个站点同时发送数据而产生碰撞。
当站点检测到信道是空闲的,并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
以下情况必须使用退避算法:
-
在发送数据帧之前检测到信道处于忙状态时;
-
在每一次重传一个数据帧时;
-
在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)。
CSMA/CA协议的退避算法
在执行退避算法时,站点为退避计时器设置一个随机的退避时间:
-
当退避计时器的时间减小到零时,就开始发送数据;
-
当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
在进行第i次退避时,退避时间在时隙编号{0,1,…2^(2+i) -1}中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了。
从左往右看
CSMA/CA协议的信道预约和虚拟载波监听
为了尽可能减少碰撞的概率和降低碰撞的影响,802.11标准允许要发送数据的站点对信道进行预约。
(1)源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Send),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
(2)若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Cear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中)。
(3)源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧。
(4)若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK。
除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰。
如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。
由于RTS帧和CTS帧很短,发送碰撞的概率、碰撞产生的开销及本身的开销都很小。而对于一般的数据帧,其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择:
-
使用RTS帧和CTS帧
-
不使用RTS帧和CTS帧
-
只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧
除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题。
A给B发送数据帧前,可以使用RTS来预约信道。即使C收不到该RTS帧,但可以收到B发给A的CTS帧,这样,C就知道了信道将被占用多长时间。A给B发送数据帧的时候,C不会干扰。
例题:下列选项中,对正确接收到的数据帧进行确认的MAC协议是
A.CSMA B.CDMA C.CSMA/CD D.CSMA/CA
解析:CSMA是指载波监听多址接入,并不使用确认机制;
CDMA是指码分多址,属于静态划分信道,是物理层的信道复用技术,而不属于MAC协议
CSMA/CD是指载波监听多址接入/碰撞检测,是对CSMA的改进,是早期共享信道以太网使用的信道访问控制协议,并不使用确认机制;
CSMA/CA是指载波监听多址接入/碰撞避免,是802.11局域网采用的无线信道访问控制协议。802.11局域网在使用CSMA/CA的同时,还使用停止-等待协议。这是因为无线信道的通信质量远不如有线信道,因此无线站点每发送完一个数据帧后,要等到收到对方的确认帧后才能继续发送下一帧;故选D
例题:下列介质访问控制方法中,可能发生冲突的是
A.CDMA B.CSMA C.TDMA D.FDMA
解析:CDMA(Code Division Multiplex Access)是指码分多址;
TDMA(Time Division Multiplex Access)是指时分多址;
FDMA(Frequency Division Multiplex Access)是指频分多址;
CSMA(Carrier Sense Multiple Access)是指载波监听多址接入;
TDMA,FDMA,CDMA是常见的物理层信道复用技术,属于静态划分信道,用于多用户共享信道,不会发生冲突。
CSMA属于争用型的媒体接入控制协议,连接在同一媒体上的多个站点使用该协议以竞争方式发送数据帧,可能出现冲突(也称为碰撞)。
例题:IEEE 802.11无线局域网的MAC协议CSMA/CA进行信道预约的方法是
A.发送确认帧 B.采用二进制指数退避 C.使用多个MAC地址 D.交换RTS与CTS帧
解析:CSMA/CA协议使用RTS和CTS帧来预约信道,它们都携带有通信需要持续的时间另外,除RTS和CTS帧外,数据帧也能携带通信需要持续的时间,这就是802.11的虚拟载波监听。