Dzming.Li

数据链路层

3.5 介质访问控制

3.5.1 信道划分

多路复用问题研究的是如何把一个信道分配给多个人。这个问题适用于集线器或者无线网络情况。

多路访问可以划分为3种类

在电磁波中,不同的数据最终会叠加在一起。

3.5.1.1 频分多路复用

FDM,Frequency Division Multiplexing:多个人分别用不同的频率。往往是把本来相同的频率通过调频实现,在模拟通信中,频分多路复用是非常方便的。但是频分多路复用会引起各路信号间的串绕。非线性的传染可以用带通滤波器消除,但线性和就没那么好办的,因此对线性的要求高。

3.5.1.2 时分多路复用

TDM,T代表Time. 把时域划为多个等长的时隙。每路占用不同的实隙,在时域上不重叠。

时分多路复用可以分为同步STDM和异步ATDM两种。同步时分多路复用把第一个时隙给第一个信号,第二个时隙给第二个信号。以此类推。不过这样当每一路信号没有东西发送的时候它也依然会占用着时隙。

在异步时分多路复用的情况下,我们会把数据交给复用器。复用器内部有缓存区,然后按需挨个时隙发包。

不过同步多路复用因为知道每个时隙对应谁,所以不需要在传输中包含来源信息,但是异步多路复用就需要了。

3.5.1.3 波分多路复用

WDM,实际是一种频分多路复用。只是在光纤通讯中光的频率太高,用波长替代频率讨论了。

光纤的远距离传播中往往采用波分多路技术和光纤放大器来实现超大容量传输。

还有DWDM 这里的D是 Dense,能够在一根光纤中复用100路以上的的光波信号。

3.5.1.4 码分多路复用

码分多路复用的核心是利用正交性,这对于学过傅里叶级数的并不陌生。

每发送一个比特,我们都把它转换成一个码片。

又称码分多址,Code Division Multiple Access. 当然,其实时间和

码分多用的优势涉及非常复杂的技术细节,不必了解。考纲只需要知道概念和基础原理会做题就行。

3.5.2 随机访问

我们需要知道,无论是ALOHA还是CSMA,都只是对一类协议的描述,而不是某种具体的协议,或者说,本质上只是一类介质访问控制策略的思想方法

3.5.2.1 ALOHA协议

ALOHA是夏威夷岛上的人彼此打招呼的时候用的词。而这个协议在1970年由夏威夷大学首次发明。

ALOHA协议最早是为了在不同的终端连接夏威夷岛上的打字机。终端有这样的特征:是突发的数据段,在绝大多数时间内它都是静默的。这和电话这种持久的数据流不太一样。如果使用分时系统那么就会效率特别低。

ALOHA协议的帧是定长的,大家使用同一载波竞争接入信道,也就是说只要有两方的无线电波在时间段上有一点重叠,信息就会被破坏。

ALOHA协议啥都不管,先直接发送,发送完了等一会儿来确认信息有没有被收到,等多久呢,等消息到远端然后返回的时间,如果没收到,就说明信息被破坏了。那么说明有人在跟你有无线电波的重叠。那么我们就随机退避任意的时间重发。

在随机接入协议中,一个节时隙 ALOH点以全速发送,如果碰撞了就重发。为了避免所有设备都立即随机重发,所以会以随机速度重发。

3.5.2.2 时隙ALOHA协议

时隙 ALOHA 的思路是,减少碰撞区间。既然纯 ALOHA 中的碰撞来自数据帧在时间上的任意重叠,那我们能不能通过限制发送的起始时间,让数据帧只能完全重叠或者完全不重叠? 也就是划分时隙。

不过时隙 ALOHA并不能让人完全满意,我们认为ALOHA协议的根本问题是不管信道是否空闲都发送,这大大增加了冲突的可能。而CSMA让我们在发消息之前先监听有没有人.

3.5.2.3 CSMA协议

CSMA协议可以分为以下三种:

  • 非坚持CSMA::如果信道空闲,就直接发,如果信道时间忙,等待一段时间重新侦听
  • 1坚持CSMA:与非坚持的区别是,如果信道忙,会一直侦听到能发出去为止
  • P-坚持CSMA: 先划分时隙,如果信道闲了,以概率p立刻在时隙开始发送,以概率1-p在下一个时隙重新进行此过程;如果忙就等待一个时隙

    值得注意的是,如果单单是CSMA并不知道自己是否碰撞了没有,它的碰撞可能要依赖ACK和超时重传。

3.5.2.4 CSMA/CD 协议

CD 意为 collision detection 是说碰撞检测,它在发完了之后能够凭据物理手段,特别是有线信道中的电压等等明显知道自己碰撞没有。如果碰撞了就立刻停止别发了,都等待一段时间。

在以太网中有时我们还会发送强化干扰信号,这是为了让碰撞更明显,帮助别人更容易依赖物理手段检测到。

CSMA/CD是以太网采用的协议

3.5.2.5 CSMA/CA 协议

CSMA/CA是无线局域网采用的协议。在无线情况下,检测碰撞是很困难的,因为信号的自干扰,还关于隐藏站点问题:假设A和B发送的信息在AP处碰撞,但是A可能观察不到B的无线电波,所以它始终没法获得关于全局的信息,等等,所以我们需要另一种方法。

然后我们这样想,虽然A没法观察到B,但或许AP能够帮助我们把消息告诉A呢?这个概念就是RTS和CTS。在尝试给别人发送消息之前,我们总是先发送一个RTS。

RTS和CTS都是控制帧,RTS意味着Request to send,CTS则是Clear to send,假设A和B都需要给AP发消息,那么AP允许了B发送,但是CTS也会传给A,叫A不要跟着再争了。

值得注意的是,普通的数据帧通常是比较长的,更容易冲突,而RTS和CTS的帧是很短的,即便冲突了,只要随机避退就行,也不会特别浪费。

CTS还包含了一个时间段,这个时间段称为NAV,Network Access Vector,意思是说我们这段信息会独占多久,让即使出现很小的空闲别人也别强发,会造成冲突。

而抢发中其中一种格外常见的情况是信息需要回复。我们不希望打断这一消息,于是制定了一个优先级机制。这时候我们的核心思想是:如果某个站点正在回复上一帧,那么它应该比其他准备发起新通信的站点更早获得发送机会。因此有些帧的帧间间隔比较短是SIFS,有些比较长是DIFS。事实上我们会知道现在的Wifi系统会有更多更复杂的优先级,但我们只要知道SIFS和DIFS就行了。SIFS和S代表Short,DIFS的D代表Distributed, IFS是Inter-Frame Space,帧间间隔。这个帧间间隔的长度。我们收到CTS的时候,只需要等待SIFS,但是我们发RTS,却要等待DIFS。

3.5.3 轮询访问:令牌传递协议