2.3 数据链路层
在通信网络中,通信的对等实体之间的数据传输通道称为数据链路(Data Link),它包含了物理链路和必要的传输控制规范。由于无线信道的特点,使得无线链路不像有线链路那样稳定,无线信道常常存在电磁干扰等诸多不稳定因素,使无线物理信道的通信质量难以保证。数据链路协议最主要的功能是通过该层协议的作用,在一条不太可靠的通信链路上实现可靠的数据传输。数据链路控制协议是在物理层之上,加上必要的规程来控制节点间的数据传输,实现数据块或数据帧的可靠传输。数据链路控制协议主要包含MAC层协议和数据链路层(Data Link Layer,DLL)协议。
2.3.1 MAC概述
MAC层位于物理层之上,负责把物理层的“0”“1”比特流组建成帧,并通过帧尾部的错误校验信息进行错误校验;提供对共享介质的访问方法,包括以太网的带冲突检测的载波监听多路访问(CSMA/CD)、令牌环(Token Ring)、光纤分布式数据接口(FDDI)等。
在无线传感器网络中,MAC协议决定无线信道的使用方式,在传感器节点之间分配有限的无线通信资源,用来构建传感器网络系统的底层基础结构。MAC协议处于传感器网络协议的底层部分,对传感器网络的性能有较大影响,是保证无线传感器网络高效通信的关键网络协议之一。
在设计无线传感器网络的MAC协议时,需要着重考虑以下几个方面。
(1)节省能量
由于无线传感器网络应用的特殊性,要求传感器节点的价格低、功耗小,这必然导致其携带的处理器能力比较弱,存储器容量比较小。因此,MAC协议必须利用好有限的计算和存储资源,完成诸多协同任务。
(2)可扩展性
由于传感器节点数目、节点分布密度等在传感器网络生存过程中不断变化,节点位置也可能移动,还存在新节点加入网络等问题,使得无线传感器网络的拓扑结构具有动态性,MAC协议应具有可扩展性,以适应这种动态变化的拓扑结构。
(3)网络效率
网络效率包括网络的公平性、实时性、网络吞吐量以及带宽利用率等。
(4)算法复杂度
MAC协议要具备上述特点,众多节点协同完成应用任务,必然会增加算法的复杂度。由于传感器节点计算能力和存储能力受限,MAC协议应能根据应用需要,在复杂度和上述性能之间取得折中。
(5)与其他层协议的协同
无线传感器网络应用的特殊性对各层协议都提出了一些共同的要求,如能量效率、可扩展性、网络效率等,研究MAC协议与其他层协议的协同问题,通过跨层设计获得系统整体的性能优化。
MAC协议设计所面临的问题如下。
(1)空闲监听
因为节点不知道邻居节点的数据何时到来,所以必须始终保持自己的射频部分处于接收模式,形成空闲监听,这样就造成了不必要的能量损耗。
(2)冲突(碰撞)
如果两个节点同时发送,并相互产生干扰,则它们的传输都将失败,发送包被丢弃,此时用于发送这些数据包所消耗的能量就会被浪费掉。
(3)控制开销
为了保证可靠传输,协议将使用一些控制分组。
(4)串扰(串音)
由于无线信道为共享介质,因此节点也可能会接收到不是到达自己的数据包,然后再将其丢弃,此时,也会造成能量的耗费。
由于无线传感器网络是针对应用的网络,不同的应用侧重于不同的网络性能,因此映射到MAC协议上就会有不同的设计偏重。根据当前主流的分类方式,可将MAC层协议分为基于竞争的MAC协议、基于时分复用的MAC协议和其他类型的MAC协议。
2.3.2 基于竞争的MAC协议
基于竞争的MAC协议访问无线信道的方式是按需随机访问信道,其基本思想是当节点需要发送数据时,通过竞争方式使用信道,若竞争成功则开始发送数据,若产生数据碰撞,就按照一定的重发策略开始数据重发流程。
基于竞争的MAC协议有以下优点:
1)由于是根据需要分配信道,所以这种协议能较好地满足节点数量和网络负载的变化。
2)能较好地适应网络拓扑的变化。
3)不需要复杂的时间同步或集中控制调度算法。
典型的基于竞争的MAC协议有ALOHA协议、CSMA/CD协议、IEEE 802.11 MAC协议。
1.ALOHA协议
ALOHA协议是随机访问或者竞争发送协议。随机访问意味着无法预计其发送的时刻;竞争发送是指所有发送都可以自由竞争信道的使用权。ALOHA协议或称ALOHA技术、ALOHA网,是世界上最早的无线电计算机通信网,它是1968年美国夏威夷大学的一项研究计划的名字,由该校Norman Amramson等人为他们的地面无线分组网而设计。
ALOHA协议的思想很简单,只要用户有数据要发送,就尽管让他们发送。当然,这样会产生冲突从而造成帧的破坏,但由于广播信道具有反馈性,因此发送方可以在发送数据的过程中进行冲突检测,将接收到的数据与缓冲区的数据进行比较,就可以知道数据帧是否遭到破坏。同样的道理,其他用户也是按照此过程工作,如果发送方知道数据帧遭到破坏(即检测到冲突),那么它可以等待一段随机长的时间后重发该帧。
由于在有数据发送时,节点并不首先进行监听工作,因此ALOHA协议具有比较短的信道接入时延和传输时延,在网络低负载的情况下,该协议具有较好的实时性;然而,当网络的负载增大时,节点间的数据冲突次数也会随之增多,反过来降低网络的数据吞吐率,增加数据的传输延迟。
2.CSMA/CD协议
CSMA/CD(Carrier Sense Multiple Access/Collision Detection,带冲突检测的载波监听多路访问)是IEEE 802.3使用的一种介质访问控制方法。
基本原理是:每个节点都共享网络传输信道,在发送数据之前,会检测信道是否空闲,如果空闲则发送,否则就等待;在发出信息后,对冲突进行检测,当发现冲突时,取消发送。
冲突检测的方法很多,通常以硬件技术实现。一种方法是比较接收到的信号的电压大小,只要接收到的信号的电压摆动值超过某一阈值,就认为发生了冲突;另一种方法是在发送帧的同时进行接收,将收到的信号逐比特地与发送的信号相比较,如果有不符合的,就说明出现了冲突。
CSMA/CD是对传统CSMA算法的进一步完善,因其增加了冲突检测机制,检测到冲突时可以停止无意义的数据发送,因而减少了信道带宽的浪费。
3.IEEE 802.11 MAC协议
IEEE 802.11 MAC协议有分布式协调功能(Distributed Coordination Function,DCF)和点协调功能(Point Coordination Function,PCF)两种访问控制方式,其中DCF方式是IEEE 802.11 MAC协议的基本访问控制方式。由于在无线信道中难以检测到信号的碰撞,因而只能采用随机退避的方式来减小数据碰撞的概率。在DCF工作方式下,节点监听到无线信道忙后,采用CSMA/CA机制和随机退避机制,实现无线信道的共享。另外,所有定向通信都采用立即主动确认(ACK)机制,如果没有收到ACK帧,则发送方会重传数据。而PCF工作方式是基于优先级的无竞争访问,是一种可选的控制方式,它通过访问接入点(Access Point,AP)协调节点的数据收发,通过轮询方式查询当前哪些节点有数据发送的请求,并在必要时给予数据发送权。
IEEE 802.11 MAC协议规定了三种基本的帧间间隔(Inter-Frame Spacing,IFS),用来区分无线信道的优先级。三种帧间间隔如下。
1)SIFS(Short IFS):最短帧间间隔。使用SIFS的帧优先级最高,用于需要立即响应的服务,如ACK帧、CTS帧和控制帧等。
2)PIFS(PCF IFS):PCF方式下节点使用的帧间间隔,用以获得在无竞争访问周期启动时访问信道的优先权。
3)DIFS(DCF IFS):DCF方式下节点使用的帧间间隔,用以发送数据帧和管理帧。
上述各帧间间隔的关系:DIFS>PIFS>SIFS。
根据CSMA/CA协议,当一个节点要传输一个分组时,它首先监听信道状态,如果信道空闲,而且经过一个帧间间隔DIFS后,信道仍然空闲,则立即开始发送信息;如果信道忙,则一直监听直到信道的空闲时间超过DIFS;当信道最终空闲下来时,节点进一步使用二进制退避算法(Binary Back off Algorithm),进入退避状态来避免发生冲突。
随机退避时间按下面的公式计算:
退避时间=Random()×aSlottime
式中,Random()是竞争窗[0,CW]内平均分布的伪随机整数;CW是整数随机数,其值处于标准规定的aCWmax和aCWmin之间;aSlottime是一个时隙时间,包括发射启动时间、介质传播时延和检测信道的响应时间等。
节点在进入退避状态时,会启动一个退避计时器,当计时达到退避时间后,结束退避状态。在退避状态下,只有当检测到信道空闲时才进行计时;如果信道忙,退避计时器中止计时,直到检测到信道空闲时间大于DIFS后才继续计时。当多个节点推迟且进入随机退避时,利用随机函数选择最小退避时间的节点作为竞争优胜者。
IEEE 802.11 MAC协议中通过立即主动确认机制和预留机制来提高性能。在主动确认机制中,当目标节点收到一个发给它的有效数据帧时,必须向源节点发送一个应答帧ACK,确认数据已被正确接收到。为了保证目标节点在发送ACK过程中不与其他节点发生冲突,目标节点使用SIFS帧间隔。主动确认机制只能用于有明确目标地址的帧,不能用于组播报文和广播报文的传输。为减少节点间使用共享无线信道的冲突概率,预留机制要求源节点和目标节点在发送数据帧之前交换简短的控制帧,即发送请求帧RTS和清除帧CTS。从RTS(或CTS)帧开始到ACK帧结束的这段时间,信道将一直被这次数据交换过程占用;RTS帧和CTS帧中包含有关这段时间长度的信息。每个节点维护一个定时器,记录网络分配向量NAV,指示信道被占用的剩余时间,一旦收到RTS帧或CTS帧,所有节点都必须更新它们的NAV值,只有在NAV减到零时,节点才可以发送信息。通过此种方式,RTS帧和CTS帧为节点的数据传输预留了无线信道。
2.3.3 基于时分复用的MAC协议
时分复用(Time Division Multiple Access,TDMA)是实现信道分配的简单成熟的机制,蓝牙网络采用了基于TDMA的MAC协议。在传感器网络中采用TDMA机制,就是为每个节点分配独立的用于数据发送或接收的时隙,而节点在其他空闲时隙内转入睡眠状态。
TDMA机制的一些特点非常适合无线传感器网络节省能量的要求:TDMA机制没有竞争机制的碰撞重传问题;数据传输时不需要过多的控制信息;节点在空闲时隙能够及时进入睡眠状态。TDMA机制需要节点之间达到比较严格的时间同步,时间同步是传感器网络的基本要求,多数传感器网络都使用了监听/睡眠的能量唤醒机制,利用时间同步来实现节点状态的自动转换;节点之间为了完成任务需要协同工作,这同样不可避免地需要时间同步。TDMA在网络扩展性方面存在不足:很难调整时间帧的长度和时隙的分配;对传感器节点的移动、失效等动态拓扑结构的适应性较差;对节点发送数据量的变化也不敏感。
2.3.4 其他类型的MAC协议
基于TDMA的MAC协议虽然有很多优点,但网络扩展性差,需要节点间达到严格的时间同步,对于能量和计算能力都有限的传感器节点而言实现比较困难。而通过FDMA或者CDMA与TDMA相结合的方法,为每对节点分配互不干扰的信道实现信息传输,可以避免共享信道的碰撞问题,增强了协议的扩展性。
1.SMACS/EAR协议
Sohrabi等人提出的SMACS/EAR(Self-organizing MAC/Eavesdrop and Register)是具有监听/注册能力的无线传感器网络自组织MAC协议,是结合TDMA和FDMA的基于固定信道分配的分布式MAC协议,用于建立对等的网络结构。SMACS协议主要用于静止的节点之间建立连接,而对于静止节点与运动节点之间的通信,则需要通过EAR协议进行管理。基本思想是,为每一对邻居节点分配一个特有频率进行数据传输,不同节点对间的频率互不干扰,从而避免同时传输的数据之间产生碰撞。
SMACS协议假设节点静止,节点在启动时广播一个“邀请”消息,通知附近节点与本节点建立连接,接收到“邀请”消息的邻居节点与发出“邀请”消息的节点交换信息,在两者之间分配一对时隙,供两者以后通信。EAR协议用于少量运动节点与静止节点之间进行通信,运动节点监听固定节点发出的“邀请”消息,根据消息的信号强度、节点ID号等信息决定是否建立连接,如果运动节点认为需要建立连接,则与对方交换信息,分配一对时隙和通信频率。
SMACS/EAR不需要所有节点的帧同步,可以避免复杂的高能耗同步操作,但不能完全避免碰撞,多个节点在协商过程中,可能同时发出“邀请”消息或应答消息,从而出现冲突。在可扩展性方面,SMACS/EAR协议可以为变化慢的移动节点提供持续的服务,但并不适用于拓扑结构变化较快的无线传感器网络。由于协议要求两节点间使用不同的频率通信,固定节点还需要为移动节点预留可以通信的频率,因此网络需要有充足的带宽以保证每对节点间建立可能的连接。由于无法事先预计并且很难动态调整每个节点需要建立的通信链路数,因此整个网络的带宽利用率不高。
2.S-MAC协议
S-MAC(Sensor MAC)协议是Wei等人在IEEE 802.11协议的基础上,针对无线传感器网络的能量有效性而提出的专用于节能的MAC协议。S-MAC协议设计的主要目标是减少能量消耗,提供良好的可扩展性,主要采用以下三方面的措施来减少能耗。
(1)周期性监听和休眠
每个节点周期性地转入休眠状态,周期长度是固定的,节点的监听活动时间也是固定的。节点苏醒后进行监听,判断是否需要通信,为了便于通信,相邻节点之间应该尽量维持调度周期同步,从而形成虚拟的同步簇;同时每个节点需要维护一个调度表,保存所有相邻节点的调度情况,在向相邻节点发送数据时唤醒自己。每个节点定期广播自己的调度,使新接入节点可以与已有的相邻节点保持同步。如果一个节点处于两个不同调度区域的重合部分,则会接收到两种不同的调度,节点应该选择先收到的调度周期。
(2)消息分割和突发传输
考虑到无线传感器网络的数据融合和无线信道的易出错等特点,将一个长消息分割成几个短消息,利用RTS/CTS机制一次预约发送整个长消息的时间,然后突发性地发送由长消息分割的多个短消息。发送的每个短消息都需要一个应答ACK,如果发送方对某一个短消息的应答没有收到,则立刻重传该短消息。
(3)避免接收不必要消息
采用类似于IEEE 802.11的虚拟物理载波监听和RTS/CTS握手机制,使不收发信息的节点及时进入睡眠状态。
S-MAC协议同IEEE 802.11相比,具有明显的节能效果,但是由于睡眠方式的引入,节点不一定能及时传递数据,从而使网络的时延增加、吞吐量下降;而且S-MAC采用固定周期的监听/睡眠方式,不能很好地适应网络业务负载的变化。针对S-MAC协议的不足,研究者又进一步提出了自适应睡眠的S-MAC协议。在保留消息传递、虚拟同步簇等方式的基础上,引入自适应睡眠机制:如果节点在进入睡眠之前,监听到邻居节点的传输,则根据监听到的RTS或CTS消息,判断此次传输所需要的时间;然后在相应的时间后醒来一小段时间(称为自适应监听间隔),如果这时发现自己恰好是此次传输的下一跳节点,则邻居节点的此次传输就可以立即进行,而不必等待;如果节点在自适应监听间隔时间内,没有监听到任何消息,即不是当前传输的下一跳节点,则该节点立即返回睡眠状态,直到调度表中的监听时间到来。
自适应睡眠的S-MAC在性能上优于S-MAC,特别是在多跳网络中,可以大大减小数据传递的时延。S-MAC和自适应睡眠的S-MAC协议的可扩展性都较好,能适应网络拓扑结构的动态变化,缺点是协议的实现较复杂,需要占用节点大量的存储空间,这对资源受限的传感器节点,显得尤为突出。
3.T-MAC协议
T-MAC(Timeout MAC)协议,实际上是S-MAC协议的一种改进。S-MAC协议的周期长度受限于延迟要求和缓存大小,而监听时间主要依赖于消息速率。因此,为了保证消息的可靠传输,节点的周期活动时间必须适应最高的通信负载,从而造成网络负载较小时,节点空闲监听时间的相对增加。该协议在保持周期监听长度不变的情况下,可以根据通信流量动态调整节点的活动时间,用突发方式发送消息,减少空闲监听时间。主要特点是引入了一个TA(Time Active)时隙,若TA时隙之间没有任何事件发生,则活动结束进入睡眠状态。