陈 霄,伍晓峰,郑 路,崔 翔
(广州体育职业技术学院,广东 广州 510650)
M2M通信是物联网(Internet-of-Things, IoT)的重要部分,其允许设备在无人参与情况下完成通信。将未注册的工业、科学的医疗带宽用于无线M2M设备的通信是提高带宽利用率的有效方式。然而,这些频谱已被现存网络使用,其中多数是被WiFi使用。目前,WiFi已在多数家庭、商业单位中普及。因此,在这些区域内部署M2M设备会产生干扰,导致碰撞以及数据包丢失。然而,据观察,WiFi网络在某些段时间内并没有被充分使用[1],换而言之,原本WiFi网络所占用的带宽资源并没有充分利用,即在一段时间内,这些资源是空闲的,将这些空闲频带的时间,称为WiFi的空白空间。这些空白空间为M2M和WiFi通信的共存提供了可能。
目前,研究人员对M2M和WiFi通信的共存进行了较深入的研究。文献[2-3]分析了将WiFi空白空间提供给机会的M2M通信的性能,分析显示:即使在WiFi重流量环境下,仍有足够的空白空间。文献[4]提出向WiFi流量业务发送CTS消息,进而完成传感节点间的数据交互。然而,此方案要求M2M设备具有发送WiFi CTS包的能力,这必然增加了这些设备的成本。
此外,文献[5]采用由接入点AP发送CTS包,进而使得ZigBee通信能够使用信道。CTS阻碍WiFi节点约32ms,这就允许ZigBee节点在这个间隔内通信。如此CTS包每隔200ms重复一次。长时间预留WiFi信道,增加了WiFi网络传输数据包时延。
为此,本文提出面向WiFi空闲频带的机会性MAC接入的M2M通信策略(WiFi-M2M)。不再将M2M设备作为WiFi的竞争者,而是利用WiFi流量的空闲频带给M2M通信。WiFi-M2M协议通过修改CTS帧,将修改后的CTS帧标记为mCTS。同时,将预留mCTS时间足够短,进而降低WiFi包到达时延。
M2M通信模型由一个AP点、n个M2M节点和m个WiFi节点构成。当存在未使用的带宽时,AP就通知M2M节点。然后,这些M2M节点就竞争接入信道,获胜的M2M节点(记为S_M2M 节点)就在它所分配的时隙内向AP传输数据。WIFI-M2M协议结构如图1所示。图中的CTS、RFS分别表示取消发送帧(Clear-to-Send)、请求时隙(Request-for-slot)帧。
图1 WIFI-M2M协议的操作流程
当AP观察到在它的MAC层队列中无需要传输的数据包时,它就准备将让M2M节点暂时占用带宽。为了不与WiFi节点发生冲突,AP再等待时间Tω。待Tω结束后,若仍没有需要传输的数据包,就决定由M2M节点接入信道。
为此,AP就传输送mCTS帧,其目的在于为M2M节点通信保留信道。若没有M2M设备需要传输数据,则AP仍就将空闲信道交给WiFi传输。
当WiFi节点接收到mCTS帧,它们就推迟数据包传输,推迟时间为mCTS帧的通信时长。换而言之,当监听到mCTS帧,说明已启动M2M通信阶段。
一个mCTS帧包含M2M通信周期的时长Tmax、竞争时隙数L、竞争概率p。一个M2M通信周期由五步构成:
第一步:预警阶段:M2M节点从AP接收mCTS帧,并获取L和p值。
第二步:竞争阶段:M2M节点通过发送请求时隙(Request-for-slot,RFS)帧竞争信道,并从L个时隙内选择一个时隙传输RFS帧。
第三步:认识阶段:通过发送时隙认识(Slot Notification, SN)数据包,AP公布M2M节点的竞争结果。SN数据包包含了竞争成功的节点(S_M2M 节点),以及给S_M2M 节点所分配的数据传输的时隙。
第四步:数据传输状态:S_M2M 节点就依据AP分配的时隙传输数据包。
第五步:确认状态:一旦AP接收到数据包,AP就向S_M2M 节点回复确认包BlkACK。
如图1所示,AP发现无数据包传输,就等待Tω时间后,发送mCTS帧。然后,M2M节点(M1、M2、M3、M4)就通过发送RFS消息竞争接入信道。从图1可知,M2、M4节点碰撞,而M1与M3两节点竞争成功。随后,AP通过发送SN消息,公布竞争结果。当M1与M3节点收到SN消息后,就从SN消息中提取AP所分配各自己的时隙。然后,再在此时隙内传输数据。最后,当AP接收到数据包后,它就发送确认包BlkACK。
完成了一个M2M通信周期后,WiFi节点就重新接入信道,占用带宽。
在预警阶段,AP通知所有M2M节点,启动M2M周期。这一过程由AP发送mCTS消息触发M2M周期的开始。mCTS的结构如图2所示,其中S_M2M字段表示竞争成功的M2M节点。
图2 mCTS的结构图
mCTS消息以帧控制字段开始,随后,包括时长字段。时长字段包含M2M通信周期的时延Tmax。这个字段,就通知WiFi节点更新网络分配矢量,致使它们在此Tmax内不接入信道。
一旦接收到mCTS消息,M2M节点就在竞争阶段内竞争接入信道。此状态划分为等长的L个时隙,每个时隙长称为RFS时长(RFSD)。接收了mCTS消息后,M2M节点等待SIFS时间(最短的接入空间),再竞争接入信道。
需要传输数据的M2M节点就从L个时隙中随机选择一个时隙,且概率为p,向AP发送RFS消息。一旦AP成功接收RFS消息,AP就将M2M节点加入成功竞争者清单(即此M2M节点成功接入信道),并给它们分配数据时隙。如果发生碰撞,AP就记录,并调整允许发送数据M2M节点数。
在竞争阶段中,如果一旦接收到RFS消息,AP就将竞争成功的节点清单载入时隙认知SN消息中。图3显示了SN帧结构,其中FCS表示帧检验序列。SN消息与IEEE 802.11 BLK-ACK数据包格式相似,BLK-ACK数据包中有负载字段。此负载字段包含了成功M2M节点清单。Duration 字段就更新为M2M通信周期的剩余时间值。
图3 SN帧的结构图
若无M2M节点发送数据包,则认为RFS竞争不成功,此时,AP就发送SN-ACK数据包,并且Duration 字段设置为零。
若因M2M节点间碰撞导致的竞争失败,则AP发送另一个mCTS数据包,且更新Tmax、L和p值,进而调整剩下的Duration值。此SN数据包的控制字段与IEEE 802.11 CTS 数据包相似,并且它允许M2M节点可在下一个周期内接入信道。
在数据传输阶段,已竞争成功的节点将在它所分配的时隙传输数据。数据时隙间有保护时间,且每个时隙有固定的长度。一旦AP接收到数据包,AP就发送BlkACK包。
AP向M2M节点所发送的mCTS消息包含了L和p值,这些值应该谨慎选择,进而最大化信道利用率。当数据传输阶段中所有可能的数据时隙都被占用,此时的信道利用率最大。反过来,这就要求有一定的M2M节点数能够成功接入信道。
首先,假定AP在最初具有ND个数据时隙,ND的定义如式(1)所示:
(1)
其中TC、TSN、TACK和TD分别表示竞争时隙、时隙认知包、确认和数据时隙的时长。
然后,选择L、p,致使在竞争阶段至少存在ND个成功的M2M节点。假定在竞争阶段,有L个时隙、n个活动的M2M节点,则可分配数据时隙的期望值E[S][6]:
(2)
对于给定L值,对式(2)进行微分,并令其等于零,便可获取p的最优值p*:
p*=L/n
(3)
即在最优情况下,p=L/n,则E[S]=Le-1。由于保证E[S]等于可获取的数据时隙ND,即L=eND。将L值代入式(1),可得:
(4)
因此,AP最初利用式(4)估计ND,且竞争阶段由L=eND时隙组成,且概率p=eND/n。即所估计的L、p值如式(5)所示:
(5)
注意到式(5)还存在参数n。为此,AP利用文献[7]所述的算法估计活动M2M节点数。
用NS3仿真器软件建立仿真平台。考虑一个AP接入点、m=5个WiFi节点,n个M2M节点。实验中考虑三类场景:1)Scenario One,n=4,每个M2M节点每秒产生55个数据包,且每个数据包大小为85字节;2)Scenario Second,n=4,每个M2M节点每秒产生222个数据包;3)Scenario Three,n=100,每个M2M节点每秒产生3.45个数据包。
此外,TW=2CWmin,其中CWmin为WiFi中退僻机制的最小竞争窗口。同时,WiFi节点产生流量过程服从Batch Markovian Arrival Process (BMAP)过程[8]。在实验中,WiFi流量到达率从1.4~12.4 Mbps变化。
首先分析WiFi数据包的平均传输时延,如图4所示。
图4 WiFi数据包的平均传输时延
从图4可知,在WiFi网络平台上实施M2M节点的机会通信,增加了WiFi数据包的平均传输时延。但是从图4可知,增加的时延较少,并且随WiFi流量到达率的增加而增加的时延逐渐缩短。例如,当WiFi流量到达率为12.4 Mbps时,没有实施M2M节点通信,即只有WiFi节点通信时的传输时延约为5.1 ms,而在同种情况下Scenario Three的传输时延约为6.3 ms,增加了约1.2 ms。
图5分析了M2M通信占用WiFi空闲带宽的情况。图5分别显示三种情况下的传输mCTS数据包、M2M通信周期数。回忆WIFI-M2M协议规则,一旦有空闲带宽,AP就发送mCTS包,就启动一个M2M节点通信周期。换而言之,传输mCTS包数大于等于M2M周期数。若M2M周期数等于传输mCTS包数,表明空闲的频带全部被M2M节点使用,利用率最高。
图5 WiFi空闲频带使用率
从图5可知,在场景1和场景3中,M2M的通信周期数小于传输mCTS包数,这就说明有部分空闲的频带并没有被使用。而场景2中,M2M的通信周期数等于传输mCTS包数,这就说明M2M节点充分利用了空闲的带宽。注意了,当M2M节点没有数据要传输时,AP就在竞争阶段后,立即传输空的SN数据包,使得WiFi节点能够重新占用信道,这有利用于减少WiFi数据包的时延,并提高信道资源。
图6 每秒传输的M2M数据包数
图6显示了每秒成功接收的M2M数据包数。从图6可知,当网络未饱和时(场景1和场景3),传输的数据包为常数,而在饱和流量下(场景2),M2M传输的数量最初随WiFi流量的增加而增加,而后逐渐下降。原因在于:在低WiFi流量时,空闲的频带数量少,但占用时间长[2]。而当WiFi流量增加后,WiFi网络的空闲时期被频繁到过的WiFi数据包占用,这就降低了占用空闲频带的时间,但是增加空闲频带的数量。最终,就允许更多的M2M节点通信,从而提高了M2M节点传输的数据包数。但是,当WiFi流量的增加会导致更长的忙碌时长,因此,这就降低平均时长和空闲频带的数量。例如,当WiFi流量达到12.4 Mbps,每秒内允许100M2M节点传输数据包。
针对M2M的数据传输问题,提出面向WiFi空闲频带的机会性MAC接入的M2M通信策略。该策略充分利用WiFi的空闲频带, 利用此空闲频带完成M2M的通信。通过传输RFS包,接入信道,一旦接入信道,再利用所分配的时候传输数据。实验数据,也验证所提出的策略的有效性,提高了数据包传输率。后期,将优化算法,提高竞争接入效率,降低传输时延。这将是后期的工作方向。