计算机网络(三)—— 数据链路层(6):媒体接入控制MAC

6. 媒体接入控制MAC

6.1 媒体接入控制的基本概念

  如图所示的是一根同轴电缆,有多台主机连接到这根同轴电缆上,它们共享这根传输媒体,形成了一个总线型的局域网。各主机竞争使用总线,随机地在信道上发送数据。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  如果恰巧有两个或更多的站点在同一时刻发送数据,那么信号在共享媒体上就要产生碰撞,即发生了冲突,使得这些站点的发送都失败。例如主机C和主机D同时使用总线来发送数据,这必然会产生所发送信号的碰撞。
  共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC(Medium Access Control)。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  媒体接入控制技术主要分为两类:一类是静态划分信道;另一类是动态接入控制。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  随着技术的发展,交换技术的成熟和成本的降低,具有更高性能的使用点对点链路和链路层交换机的交换式局域网在有线领域已完全取代了共享式局域网,但由于无线信道的广播天性,无线局域网仍然使用的是共享媒体技术。

6.2 媒体接入控制—静态划分信道

  信道复用:
  ■ 复用(Multiplexing) 是通信技术中的一个重要概念。复用就是通过一条物理线路同时传输多路用户的信号。
  ■ 当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC

6.2.1 频分复用FDM

  如图所示,将传输线路的频带资源划分成多个子频带,形成多个子信道。各子信道之间需要留出隔离频带,以免造成子信道间的干扰。当多路信号输入一个多路复用器时,这个复用器将每一路信号调制到不同频率的载波上。接收端由相应的分用器通过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC

6.2.2 时分复用TDM

  如图所示,横坐标为时间,将时间划分成一个个的时隙。时分复用技术将传输线路的带宽资源按时隙轮流分配给不同的用户,每个用户只在所分配的时隙里使用线路传输数据。时分复用技术将时间划分成了一段段等长的时分复用帧,每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙。每一个用户所占用的时隙是周期性出现的,其周期就是时分复用帧的长度。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC

6.2.3 波分复用WDM

  波分复用其实就是光的频分复用。如图所示,这是8路传输速率均为2.5Gbit/s的光载波,其波长均为1310nm。经光调制后,分别将波长变换到1550-1561.2nm,每个光载波相隔1.6nm。这8个波长很接近的光载波,经过光复用器或称合波器,就在一根光纤中传输。因此,在一根光纤上数据传输的总速率就达到了8 × \times × 2.5 Gbit/s = 20 Gbit/s。光信号传输一段距离后会衰减,因此对衰减了的光信号必须进行放大才能继续传输。现在已经有了很好的掺耳光纤放大器,两个光纤放大器之间的光缆线路长度可达120km,而光复用器和光分用器或称分波器之间可以放入四个掺耳光纤放大器,使得光复用器和光分用器之间的无光电转换的距离可达600km。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC

6.2.4 码分复用CDM

  ■ 码分复用 CDM是另一种共享信道的方法。实际上,由于该技术主要用于多址接入,人们更常用的名词是码分多址CDMA(Code Division Multiple Access)。
  ■ 同理,频分复用FDM和时分复用TDM同样可用于多址接入,相应的名词是频分多址FDMA(Frequency Division Multiple Access)和时分多址TDMA(Time Division Multiple Access)。
  ■ 在本课程中,不严格区分复用与多址的概念,可简单理解如下:
    ⋄ \diamond ⋄ 复用是将单一媒体的频带资源划分成很多子信道,这些子信道之间相互独立、互不干扰。从媒体的整体频带资源上看,每个子信道只占用该媒体频带资源的一部分。
    ⋄ \diamond ⋄ 多址(更确切地应该称为多点接入)处理的是动态分配信道给用户。这在用户仅仅暂时性地占用信道的应用中是必须的,而所有的移动通信系统基本上都属于这种情况。相反,在信道永久性地分配给用
户的应用中,多址是不需要的(对于无线广播或电视广播站就是这样)。
    ⋄ \diamond ⋄ 某种程度上,FDMA、TDMA、CDMA可以分别看成是FDM、TDM、CDM的应用。
  ■ 与FDM和TDM不同, CDM的每一个用户可以在同样的时间使用同样的频带进行通信。
  ■ 由于各用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。
  ■ CDM最初是用于军事通信的,因为这种系统所发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。
  ■ 随着技术的进步,CDMA设备的价格和体积都大幅度下降,因而现在已广泛用于民用的移动通信中。
  ■ 在CDMA中, 每一个比特时间再划分为m个短的间隔,称为码片(Chip) 。通常m的值是64或128。为了简单起见,在后续的举例中,假设m为8。
  ■ 使用CDMA的每一个站被指派一个唯一的m bit码片序列(Chip Sequence)。
    ⋄ \diamond ⋄ 一个站如果要发送比特1,则发送它自己的m bit码片序列;
    ⋄ \diamond ⋄ 一个站如果要发送比特0,则发送它自己的m bit码片序列的二进制反码;
    ⋄ \diamond ⋄ 这种通信方式称为直接序列扩频 DSSS。
  ■ 码片序列的挑选原则如下:
    ⋄ \diamond ⋄ 1. 分配给每个站的码片序列必须各不相同,实际常采用伪随机码序列。
    ⋄ \diamond ⋄ 2. 分配给每个站的码片序列必须相互正交(规格化内积为0)。
      令向量S表示站S的码片序列,令向量T表示其他任何站的码片序列。
      两个不同站S和T的码片序列正交,就是向量S和T的规格化内积为0:

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  例: 共有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,则被判断的站未发送数据。
计算机网络(三)—— 数据链路层(6):媒体接入控制MAC计算机网络(三)—— 数据链路层(6):媒体接入控制MAC计算机网络(三)—— 数据链路层(6):媒体接入控制MAC计算机网络(三)—— 数据链路层(6):媒体接入控制MAC计算机网络(三)—— 数据链路层(6):媒体接入控制MAC

6.2.5 课后练习

  1. 将物理信道的总频带分割成若干子信道,每个子信道传输一路信号,这种信道复用技术是( B )
    A. 码分复用  B. 频分复用   C. 时分复用  D. 码分多址
   分析: 将物理信道的总频带分割成若干子信道,每个子信道传输一路信号,这种信道复用技术是频分复用。

  2. A、B、C三个站点采用CDMA技术进行通信,A、B要向C发送数据,设A的码片序列为+1,-1,-1,+1,+1,+1,+1,-1。则B可以选用的码片序列为( D )
    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+1+1-1+1+1-1)/ 8 = 0。

6.3 媒体接入控制—动态接入控制-随机接入-CSMA/CD协议

  如何协调总线上各主机的工作,尽量避免产生碰撞,是一个必须要解决的重要问题。
  早期的共享式以太网采用载波监听多址接入/碰撞检测(CSMA/CD)协议来解决该问题。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  例: 下列关于CSMA/CD协议的叙述中,错误的是( B )
     A. 边发送数据帧,边检测是否发生冲突
     B. 适用于无线网络,以实现无线链路共享
     C. 需要根据网络跨距和数据传输速率限定最小帧长
     D. 当信号传播延迟趋近于0时,信道利用率趋近100%
     分析: 选项A描述的是“碰撞检测(冲突检测)”,描述正确;
         选项B的描述错误,因为CSMA/CD协议不适用于无线网络。对于无线网络,可以使用CSMA/CA协议;
         选项C中给出的“网络跨距”相当于给出了“端到端传播时延 τ τ τ" ,进而可得出“争用期2 τ τ τ",再乘以数据传输速率即为最小帧长,描述正确;
         选项D描述正确,这可以从极限信道利用率的计算公式看出:
计算机网络(三)—— 数据链路层(6):媒体接入控制MAC

6.3.1 总结

   ⋆ \star ⋆ CSMA/CD协议的工作原理
    ⋄ \diamond ⋄ 多点接入MA:多个主机连接在一条总线上,竞争使用总线;
    ⋄ \diamond ⋄ 载波监听CS:发送帧前先检测总线,若总线空闲96比特时间,则立即发送;若总线忙,则持续检测总线直到总线空闲96比特时间后再重新发送;
    ⋄ \diamond ⋄ 碰撞检测到CD:边发送边检测碰撞,若检测到磁撞,则立即停止发送,退避一段随机时间后再重新发送。
    ⋄ \diamond ⋄ 上述过程可比喻为:先听后说,边听边说;一旦冲突,立即停说;等待时机,重新再说。
   ⋆ \star ⋆ 使用CSMA/CD协议的以太网的争用期 (碰撞窗口)
    ⋄ \diamond ⋄ 发送帧的主机最多经过以太网端到端往返传播时延2 τ τ τ这么长时间,就可检测到本次传输是否发生了碰撞,2 τ τ τ称为争用期;
    ⋄ \diamond ⋄ 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞;
    ⋄ \diamond ⋄ 以太网规定2 τ τ τ的取值为512比特时间(即发送512比特所耗费的时间) ,对于10Mbps的以太网,2 τ τ τ为51.2μs;
   ⋆ \star ⋆ 使用CSMA/CD协议的以太网的最小帧长和最大帧长
    ⋄ \diamond ⋄ 最小帧长 = 争用期 x 信道带宽(数据发送速率),对于10Mbps的传统以太网,其争用期为51.2μs,因此最小帧长为512b,即64字节;
    ⋄ \diamond ⋄ 以太网的最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遇了碰撞。如果检测到碰撞,则停止发送帧的剩余部分,退避一段随机事件后,重新发送该帧;
    ⋄ \diamond ⋄ 为了防止主机长时间占用总线,以太网的帧也不能太长;以太网V2的MAC帧最大长度为1518字节(1500字节数据载荷,18字节首尾字段);插入VLAN标记的802.1Q帧最大长度为1522字节(1500字节数据裁荷,22字节首尾字段) ;
   ⋆ \star ⋆ CSMA/CD协议使用的截断二进制指数退避算法
    ⋄ \diamond ⋄ 随机退避时间 = 争用期2 τ τ τ x 随机数r,其中r从离散的整数集合{0, 1, …, (2 k ^k k-1)中随机取出一个,k= Min[重传次数,10];
    ⋄ \diamond ⋄ 当重传达16次仍不能成功时,这表明同时打算发送数据的主机太多以至于连续发生碰撞,则丢弃该帧井向高层报告。
   ⋆ \star ⋆ 以太网的信道利用率
计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。

6.3.2 课后练习

  1. 在CSMA/CD协议中,“争用期”指的是( A )
    A. 信号在最远两个端点之间往返传输的时间  B. 信号从线路一端传输到另一端的时间
    C. 从发送开始到收到应答的时间   D. 从发送完毕到收到应答的时间
   分析: 在CSMA/CD协议中,“争用期”指的信号在最远两个端点之间往返传输的时间。

  2. 以太网中,当数据传输速率提高时,帧的发送时间会相应地缩短,这样可能会影响到冲突的检测,为了能有效地检测冲突,可以使用的解决方案有( B )
    A. 减少电缆介质的长度或减少最短帧长  B. 减少电缆介质的长度或增加最短帧长
    C. 增加电缆介质的长度或减少最短帧长   D. 增加电缆介质的长度或增加最短帧长
   分析: 当传输速率提高时,为了有效地检测冲突,可采用减少电缆介质的长度,使争用期时间减少(即以太网端到端的时延减小) ,保持最小帧长不变,或增加最短帧长。

  3. 长度为10km,数据传输率为10Mb/s的CSMA/CD以太网,信号传播速率为200m/μs。那么该网络的最小帧长是( D )
    A. 20bit  B. 200bit  C. 100bit  D. 1000bit
   分析:

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  4. 在以太网的退避算法中,在11次碰撞后,站点会在0~x之间选择一个随机数,x是( C )
   A. 255  B. 511  C. 1023   D. 2047
   分析: 2 10 ^{10} 10 -1 = 1023。

6.4 媒体接入控制 — 动态接入控制-随机接入-CSMA/CA协议

  既然CSMA/CD协议已经成功地应用于使用广播信道的有线局域网,那么同样使用广播信道的无线局域网能不能也使用CSMA/CD协议呢?
  ■ 在无线局域网中,仍然可以使用载波监听多址接入CSMA,即在发送帧之前先对传输媒体进行载波监听。若发现有其他站在发送帧,就推迟发送以免发生碰撞。
  ■ 在无线局域网中,不能使用碰撞检测CD,原因如下:
    ⋄ \diamond ⋄ 由于无线信道的传输条件特殊,其信号强度的动态范围非常大,无线网卡上接收到的信号强度往往会远远小于发送信号的强度(可能相差百万倍)。如果要在无线网卡上实现碰撞检测CD,对硬件的要求非常高。
    ⋄ \diamond ⋄ 即使能够在硬件上实现无线局域网的碰撞检测功能,但由于无线电波传播的特殊性(存在隐蔽站问题),进行碰插检测的意义也不大。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  ■ 802.11无线局域网使用CSMA/CA协议,在CSMA的基础上增加了一个碰撞避免CA功能,而不再实现碰撞检测功能。
  ■ 由于不可能避免所有的碰撞,并且无线信道误码率较高,802.11标准还使用了数据链路层确认机制(停止-等待协议)来保证数据被正确接收。
  ■ 802.11的MAC层标准定义了两种不同的媒体接入控制方式:
    ⋄ \diamond ⋄ 分布式协调功能DCF(Distributed Coordination Function)。在DCF方式下,没有中心控制站点,每个站点使用CSMA/CA协议通过争用信道来获取发送权,这是802.11定义的默认方式。
    ⋄ \diamond ⋄ 点协调功能PCF(Point Coordination Function)。PCF方式使用集中控制的接入算法(一般在接入点AP实现集中控制),是802.11定义的可选方式,在实际中较少使用。

  帧间间隔IFS(InterFrame Space)
  ■ 802.11标准规定,所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,这段时间称为帧间间隔IFS
  ■ 帧间间隔的长短取决于该站点要发送的帧的类型:
    ⋄ \diamond ⋄ 高优先级帧需要等待的时间较短,因此可优先获得发送权;
    ⋄ \diamond ⋄ 低优先级帧需要等待的时间较长。若某个站的低优先级帧还没来得及发送,而其他站的高优先级帧已发送到信道上,则信道变为忙态,因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。
  ■ 常用的两种帧间间隔如下:
    ⋄ \diamond ⋄ 短帧间间隔SIFS(28μs)是最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式。使用SIFS的帧类型有ACK帧、 CTS帧、 由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。
    ⋄ \diamond ⋄ DCF帧间间隔DIFS(128μs),它比短帧间间隔SIFS要长得多,在DCF方式中用来发送数据帧和管理帧。

  ■ 当站点检测到信道是空闲的, 并且所发送的数据帧不是成功发送完上一个数据帧之后立即连续发送的数据帧,则不使用退避算法。
  ■ 以下情况必须使用退避算法:
    ⋄ \diamond ⋄ 在发送数据帧之前检测到信道处于忙状态时;
    ⋄ \diamond ⋄ 在每一次重传一个数据帧时;
    ⋄ \diamond ⋄ 在每一次成功发送后要连续发送下一个帧时(这是为了避免一个站点长时间占用信道)。

  CSMA/CA协议的退避算法
  ■ 在执行退避算法时, 站点为退避计时器设置一个随机的退避时间:
    ⋄ \diamond ⋄ 当退避计时器的时间减小到零时,就开始发送数据;
    ⋄ \diamond ⋄ 当退避计时器的时间还未减小到零时而信道又转变为忙状态,这时就冻结退避计时器的数值,重新等待信道变为空闲,再经过时间DIFS后,继续启动退避计时器。
  ■ 在进行第i次退避时, 退避时间在时隙编号{0, 1, … 2 2 + i ^{2+i} 2+i-1}中随机选择一个,然后乘以基本退避时间(也就是一个时隙的长度)就可以得到随机的退避时间。这样做是为了使不同站点选择相同退避时间的概率减少。当时隙编号达到255时(对应于第6次退避)就不再增加了。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  CSMA/CA协议的信道预约和虚拟载波监听
  ■ 为了尽可能减少碰撞的概率和降低碰撞的影响, 802.11标准允许要发送数据的站点对信道进行预约。
   (1)源站在发送数据帧之前先发送一个短的控制帧,称为请求发送RTS(Request To Sen),它包括源地址、目的地址以及这次通信(包括相应的确认帧)所需的持续时间。
   (2)若目的站正确收到源站发来的RTS帧,且媒体空闲,就发送一个响应控制帧,称为允许发送CTS(Clear To Send),它也包括这次通信所需的持续时间(从RTS帧中将此持续时间复制到CTS帧中) 。
   (3)源站收到CTS帧后,再等待一段时间SIFS后,就可发送其数据帧。
   (4)若目的站正确收到了源站发来的数据帧,在等待时间SIFS后,就向源站发送确认帧ACK。
  ■ 除源站和目的站以外的其他各站,在收到CTS帧(或数据帧)后就推迟接入到无线局域网中。这样就保证了源站和目的站之间的通信不会受到其他站的干扰。
  ■ 如果RTS帧发生碰撞,源站就收不到CTS帧,需执行退避算法重传RTS帧。
  ■ 由于RTS帧和CTS帧很短,发送碰撞的概率,碰撞产生的开销及本身的开销都很小。而对于一般的数据帧, 其发送时延往往大于传播时延(因为是局域网),碰撞的概率很大,且一旦发生碰撞而导致数据帧重发,则浪费的时间就很多,因此用很小的代价对信道进行预约往往是值得的。802.11标准规定了3种情况供用户选择:
    ⋄ \diamond ⋄ 使用RTS帧和CTS帧;
    ⋄ \diamond ⋄ 不使用RTS帧和CTS帧;
    ⋄ \diamond ⋄ 只有当数据帧的长度超过某一数值时才使用RTS帧和CTS帧。

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  ■ 除RTS帧和CTS帧会携带通信需要持续的时间,数据帧也能携带通信需要持续的时间,这称为802.11的虚拟载波监听机制。
  ■ 由于利用虚拟载波监听机制,站点只要监听到RTS帧、CTS帧或数据帧中的任何一个,就能知道信道被占用的持续时间,而不需要真正监听到信道上的信号,因此虚拟载波监听机制能减少隐蔽站带来的碰撞问题

计算机网络(三)—— 数据链路层(6):媒体接入控制MAC
  例1: 下列选项中,对正确接收到的数据帧进行确认的MAC协议是( D )
      A. CSMA  B. CDMA  C. CSMA/CD  D. CSMA/CA
     分析: CSMA是指载波监听多址接入,并不使用确认机制;
         CSMA/CD是指载波监听多址接入/碰撞检测,是对CSMA的改进,是早期共享信道以太网使用的信道访问控制协议,并不使用确认机制;
         CSMA/CA是指载波监听多址接入/碰撞避免,是802.11局域网采用的无线信道访问控制协议。802.11局域网在使用CSMA/CA的同时,还使用停止-等待协议。这是因为无线信道的通信质量远不如有线信道,因此无线站点每发送完一个数据帧后,要等到收到对方的确认帧后才能继续发送下一帧;
         CDMA是指码分多址,属于静态划分信道,是物理层的信道复用技术,而不属于MAC协议。

  例2: 下列介质访问控制方法中,可能发生冲突的是( B )
      A. CDMA  B. CSMA  C. TDMA  D. FDMA
     分析: CDMA(Code Division Multiplx Access)是指码分多址;
         TDMA(Time Division Multiplex Acess)是指时分多址;
         FDMA(Frequency Division Multiplx Access)是指频分多址;
         CSMA(Carier Sense Multiple Access)是指载波监听多址接入;
         TDMA、 FDMA、 CDMA是常见的物理层信道复用技术,属于静态划分信道,用于多用户共享信道,不会发生冲突。
         CSMA属于争用型的媒体接入控制协议,连接在同一媒体上的多个站点使用该协议以竞争方式发送数据帧,可能出现冲突(也称为碰撞) 。

  例3: IEEE 802.11无线局域网的MAC协议CSMA/CA进行信道预约的方法是( D )
      A. 发送确认帧  B. 采用二进制指数退避  C. 使用多个MAC地址  D. 交换RTS与CTS帧
     分析: CSMA/CA协议使用RTS和CTS帧来预约信道,它们都携带有通信需要持续的时间。
         另外,除RTS和CTS帧外,数据帧也能携带通信需要持续的时间,这就是802.11的虚拟载波监听。

6.4.1 总结

  802.11无线局域网在MAC层使用CSMA/CA协议,以尽量减小碰撞发送的概率。不能使用CSMA/CD协议的原因是在无线局域网中无法实现碰撞检测。在使用CSMA/CA协议的同时,还使用停止-等待协议来实现可靠传输。
  为了尽可能地避免各种可能的碰撞,CSMA/CA协议采用了一种不同于CSMA/CD协议的退避算法。当要发送帧的站点检测到信道从忙态转为空闲时,都要执行退避算法。
  802.11标准规定,所有的站在完成发送后,必须再等待一段帧间间隔时间才能发送下一帧。帧间间隔的长短取决于该站要发送的帧的优先级。
  在802.11无线局域网的MAC帧首部中有一 个持续期字段,用来填入在本帧结束后还要占用信道多久时间,其他站点通过该字段可实现虚拟载波监听。
  802.11标准允许要发送数据的站点对信道进行预约,即在发送数据帧之前先发送请求发送RTS帧。在收到响应允许发送CTS帧后,就可发送数据帧。

上一篇:计算机网络(三)—— 数据链路层(1):数据链路层概述


下一篇:CSMA/CA多路复用、载波监听、冲突避免