软件学报  2021, Vol. 32 Issue (8): 2439-2456   PDF    
一种基于功率调控的WiFi Direct节能优化机制
郭镇北 , 李福亮 , 梁博成 , 张小瑞 , 孙磊     
东北大学 计算机科学与工程学院, 辽宁 沈阳 110819
摘要: WiFi Direct(WFD)是安卓系统广泛支持的Device-to-Device(D2D)通信技术.相比于蓝牙,WFD在传输速率和连接距离上更具优势;同时,WFD能够比WiFi热点更快速地创建连接.因此被广泛应用于构建D2D通信网络,用以支持边缘计算、流量卸载、移动众包等研究.但是WFD同时带来了更高的能耗,而能耗仍然是电池受限的嵌入式设备所关注的主要问题.现有的研究关注WFD的性能测量和组网技术,很少有对其能耗的研究.提出了一种基于功率调控的WFD节能机制.该机制对WFD默认节能算法进行了补充和优化.首先,搭建了一个基于WFD的D2D通信组,并对WFD默认节能机制进行了测量分析,测量结果表明,组主的消耗始终要高于组员的消耗.然后,详细阐述了所提出的WFD节能机制.该机制能够降低设备的传输能耗,并通过切换设角色来平衡组主的能耗.最后,仿真实验结果表明,该机制降低了11.86%的能耗,同时只损失了2%的吞吐量.
关键词: 安卓    嵌入式    WiFi Direct    节能    功率调控    
Energy-saving Optimization Mechanism for WiFi Direct Based on Power Control
GUO Zhen-Bei , LI Fu-Liang , LIANG Bo-Cheng , ZHANG Xiao-Rui , SUN Lei     
School of Computer Science and Engineering, Northeastern University, Shenyang 110819, China
Abstract: WiFi Direct (WFD) supported by Android has been widely used in device-to-device (D2D) communications. Compared with Bluetooth, WFD has advantages in data transmission rate and connection distance. At the same time, WFD can quickly create a connection than WiFi HotSpot. Therefore, it is widely used to form D2D communication networks and support edge computing, traffic offloading, mobile crowdsourcing, and other studies. However, it brings high energy consumption simultaneously, which is still a major concern for battery-constrained devices. Existing studies pay more attention to measuring and optimizing the performance of WFD-based networks, while few studies focus on the energy consumption. In this study, an energy-saving mechanism for the WFD based on power control is proposed, which makes a supplement to the default energy-saving mechanism of WFD. First of all, this study constructs a WFD-based communication group and a measurement analysis of the default energy-saving mechanism. Measurement results show that the energy consumption of the group owner is always higher than that of the group member. Then, the proposed energy-saving mechanism is described in detail, which can reduce the transmission consumption of devices and balance the energy consumption of the group owner by switching the role of the devices. At last, the proposed mechanism is evaluated with simulation experiments, and results show that the proposed mechanism can reduce 11.86% energy consumption with a throughput loss of 2%.
Key words: Andorid    embedded    WiFi Direct    energy-saving    power control    

WiFi Direct也被称为WiFi Peer-to-Peer(P2P), 是WiFi Alliance提出的一项Device-to-Device的连接解决方案, 用来补充WiFi Hotspot在本地点对点传输的不足.所有经过WFD验证的设备(如安卓手机、打印机等)都可以直接使用WFD连接, 并分享各种多媒体资源、应用等[1].随着硬件、软件的发展, 如今的多媒体资源或应用程序的大小可以轻松达到几GB(GigaByte)或者几十GB.对于智能手机来说, 当人们想与附近的人共享这些资源时, 使用运营商流量进行分享的代价太高.常用的D2D通信方式, 如使用蓝牙传输, 它的速度太慢.这些问题使得本地设备之间急需寻找一个高速、成本低廉的本地通信方式来进行资源分享.WFD基于IEEE 802.11标准, 因此在D2D通信中能够保证较低的时延以及较高数据传输速率.通过WFD构建D2D通信, 可以有效地解决上述问题.与蓝牙相比[2, 3], WFD的传输速率要远远高于蓝牙, 最高可达250Mb/s, 蓝牙只有3Mb/s.但是蓝牙的能耗要远远低于WFD, 而能耗依然是使用电池供能的设备所关注的主要问题.

与传统的Wi-Fi热点相比, WFD具有自己独特的特性[1].

●   首先, 它定义了3种不同的方式去构成一个P2P通信组, 且每一个方式所需要的步骤以及时间都不相同.在一个基于WFD的P2P通信组中, 包含了两种不同的设备角色: 组主(group owner, 简称GO)以及组员(group member, 简称GM).组主可以直接向任意组员发送数据, 但是组员之间无法相互通信, 需要组主的转发.

●   其次, 随着网卡的虚拟化技术的发展, WFD在进行本地D2D通信的同时, 也可以连接到WLAN或者蜂窝网络.

●   最后, WFD自带了两种不同的节能机制: Opportunistic Power Save(OPS)和Notice of Absence(NoA).在OPS中, 组主只有在所有组员进入到休眠模式之后才能切换到休眠模式.需要注意的是, 组主没有权限去驱使任何一个组员进入到休眠模式.OPS是一种被动节能的方式, 即: 在当前网络中没有数据传输, 所有组员都处于休眠模式时, 组主才能够启用OPS.与OPS刚好相反, NoA是一个主动的节能方式, 组主能够向组员广播一个缺席时间段(absence periods).在这个缺席时间段中, 组主开启节能模式, 不进行任何的数据传输操作, 并关闭信道.此外, 在NoA中, 只要组主进入到缺席时间段, 组员不能够主动地去唤醒组主.对于这两种节能方式, 当它们启用时, 组主都不进行数据传输操作, 即, WFD没有能够在数据传输时进行节能的节能机制.目前, 对于WFD的研究工作中, 大部分研究都集中在WFD的通信性能以及多组通信实现上.只有少数的研究工作试图优化原有的两种节能机制, 但是它们并没有考虑在WFD通信组中不同角色(组主和组员)的能耗情况.

本文提出一种基于功率调控的WiFi Direct节能优化机制, 其包括两个部分, 分别是功率调控(power control)和切换(switching): 功率调控能够优化整个网络的能耗, 是整个节能优化机制的基础; 而切换能够平衡不同角色之间的能量消耗.此外, 每个WFD通信组的组大小(含有的设备数)能够极大地影响当前的通信性能.因此, 本文在不同的组大小下验证提出的节能机制, 其性能指标包括能耗和吞吐量.本文的主要贡献如下:

(1) 本文在安卓设备上对WFD通信组中的组主和组员进行了能耗测试(第2节中介绍), 发现了组主的消耗要高于组员的情况.因此, 本文设计了相应的切换机制来平衡组主的能耗.

(2) 本文证明了组主的选举是一个NP-Hard问题, 并用纳什平衡去解决.此外, 由于网络是动态的, 本文也设置了不同的控制参数来调控提出的节能机制.本文在实验结果中展示了节能机制不同参数下的吞吐量以及能耗.与没有启用节能机制相比, 本文提出的节能机制能够在获得11.86%节能效果的同时, 只有2%的吞吐量损失.

本文第1节对WFD的其他相关的工作进行介绍.在第2节中, 本文在智能手机上构建基于WFD的通信组, 并展示相关的电量消耗测试结果.第3节对提出的节能机制进行详细的介绍, 包括功率调控、切换以及涉及到的相应公式、算法等.第4节中对节能机制进行仿真验证以及实验结果分析.最后, 在第5节中对全文进行总结, 并对未来的工作进行展望.

1 相关工作

部分研究工作主要涉及WFD的传输性能、特征的研究上[4-8].Camps-Mur等人[4]对WFD定义的各种属性进行了全面的概述, 包括架构、通信组形成方式、节能机制、安全等.Sun等人[5]提出了一种降低WFD设备发现延时的有效方案.Feng等人[6]分析了WFD信道中的丢包情况, 并设计了相应的补偿机制.而对于WFD网络丢包行为的早期性能检测, 则由Khan等人[7]完成.由于WFD是点对点的传输技术, 针对组主同时面对多个传输请求时的情况, Mao等人[8]采用时间片轮转机制来保证组主在多目标传输期间的公平性.

大多数研究工作集中在如何有效地构建一个基于WFD的网络, 以及优化基于WFD网络的性能.由于WFD的较大的覆盖范围, 能够支持一定数量的设备构建本地网络[9-19].Turkes等人[3]使用WFD和蓝牙搭建了一个机会Ad-hoc网络.在机会Ad-hoc网络中, 设备可以传输轻量级的数据, 如位置信息、轻量级的广告等.Nadir等人[9]使用WFD构建了一个本地的多跳网络, 并与使用WiFi热点和LTE连接时的性能进行比较.实验结果显示, 相比于其他两种, 基于WFD的本地多跳网络能够有效地进行数据上传和下载.Conti等人[10]调查了WFD组网时的灵活性, 并进一步讨论基于WFD的机会网络.他们使用蓝牙的Service Set Identifier(SSID)以及WFD的Universally Unique Identifier(UUID)作为轻量级数据的传输载体.Alami等人[11]则借助WFD形成多跳的D2D网络, 他们将WFD设备视作一个热点, 连接云端的设备可将云端的内容通过这些热点快速地传输到其他设备. Fuai等人[12]探索了基于WFD标准实现多跳Ad-hoc网络的不同策略.在LTE-Advanced系统中, 其中一个重要的研究问题是如何有效地利用无线频谱资源, LTE-Direct与WFD都是该问题有效的解决方式[13, 14].针对这两种D2D技术, Condoluci等人[13]对两者进行了详细的性能对比.与此同时, Gong等人[14]论证了基于WFD的LTE协同视频流技术的可行性.WFD本身并不支持多组通信, 然而已经有部分研究使用WFD去实现多组通信.Casetti等人[15]使用WFD实现了多组通信, 并以此构建了一个基于内容的网络.在此基础上, 他们分析了不同组的成员之间的路由性能.Sadio等人[16]利用WFD在车辆网络中构建多跳通信来满足高交通密度特征环境下的资源分配问题, 并采用OpenFlow来进行管理.Engelhart等人[17]在真实的安卓设备上实现了WFD的多组通信, 他们给出了使用的架构以及在该架构下的多组通信性能.WFD拥有3种不同的成组方式[1], 在不同的设备进行交互时, 会留下彼此的设备信息, 可利用这些缓存的设备信息加快WFD通信组的形成[18, 19].Demir等人[18]利用设备使用WFD时缓存的设备信息, 加快了构建WFD通信组的过程.并且使得在组主设备产生故障时, 能够自动且快速地重新配置WFD通信组.类似的自动重配置方法同样被Faulkenberry等人[19]使用.他们的实验结果都表明, 通过利用这些缓存的设备信息, 能够快速地重新配置WFD通信组, 从而减少了数据包的丢失, 提高了吞吐量.

少数工作涉及到了WFD的能耗研究, 并且这些研究工作的主要工作原理是避免低电量设备传输数据, 或者其他使用WFD的高能耗行为[20-24].Camps-Mur等人[20]考虑在WFD通信组中, 组主可以使用3G网络, 然后组主通过WFD向其他组员分享下载的内容.在此过程中, 探究WFD原有的节能机制的性能.然而在文献[20]中, 作者只考虑了一个WFD通信组的情况, 即只考虑了组内点对点传输, 没有考虑组外多跳传输的情况.Laha等人[21]为WFD设计了一种新的基于分布式集群的路由协议来节约WFD设备的电量消耗, 该协议能够感知设备的剩余电量, 生成一个网络层面的伪通信组, 并通过将流量导向电量充足的设备来平衡所有设备的电量消耗.文献[22]通过增加WFD设备休眠的占比时间达到节能目的; 文献[23]通过优化WFD发现其他设备所经历的时长来节约能耗; 而文献[24]通过对特定环境中收发数据包的统计, 生成一个隐马尔可夫模型, 并通过该模型来决定WFD设备休眠的时长来节约设备能量.在文献[22-24]中, 都为WFD设计了有效的能耗机制, 但是它们都是在原有的节能机制上进行改进, 而原有的机制只能在没有数据传输时生效.

不同于上述研究, Usman等人[25]为WFD提出了一个新的节能机制.该机制通过使用Friis传播损失模型来控制设备的发射功率, 从而达到节能的目的.但是作者并没有考虑WFD通信组中不同角色的能耗问题: 当一个设备担任过久的组主时, 它的能耗消耗要高于组员.当组主的能量耗尽, 当前WFD就会被迫解散, 这对当前多跳网络的拓扑结构、数据传输等有着极大的影响.同时, 在文献[25]中, WFD通信组的设备组成是固定的, 即WFD通信组是不变的.然而, 由于设备具有移动性, 设备可能会因此脱离组主的连接范围; 或者因为过远的传输距离, 吞吐量下降以及发射功率增加导致能耗上升等问题.因此, 需要一个有效的切换机制来处理这些问题.在本文中, 使用对数距离路径损失模型(log-distance path loss model)[26, 27]来控制设备的发射功率(该模型能够更有效地模拟室内的无线信号传播损失情况), 使得设备即使在数据传输期间也能够有效地进行功耗控制.此外, 本文通过设计同组之间实时的动态切换来平衡组主和组员之间的能量消耗, 防止个别设备一直担任组主造成过高的能耗.与此同时, 本文也设计了组与组的成员之间的切换机制, 用于保证每个组的组主与它们的组员都保持较近的距离, 避免组员过远从而脱离组主的连接范围; 或者因为距离过远, 发射功率上升造成能耗增加.

2 WiFi Direct电量消耗测试

在本节中, 本文在智能手机(Xiaomi Note4X)上对WFD的电量消耗情况进行了一系列的测试, 并将测试分为了两部分.

●   在第1部分中, 记录了WFD在不同状态(空闲和工作)下的电流变化情况.本文从Android中专门记录电流的内核文件获取相应的电流大小, 通过记录其电流变化情况从而判断其能耗情况.

●   在第2部分中, 构建不同组大小的通信组, 并在不同的传输速率下传输一定时间以后, 分析设备之间的电量消耗情况.

使用的实验设备在实验过程中分为两个状态——空闲状态和工作状态, 如图 1所示.

Fig. 1 Different working states of the smartphone 图 1 智能手机的不同工作状态

●   智能手机所处的空闲状态分成两种: 第1种是仅仅打开WFD, 智能手机之间没有连接, 没有任何操作; 第2种是智能手机之间仅仅通过WFD连接, 智能手机之间没有传输数据, 它们之间并不做任何操作.

●   其次, 在本文定义的智能手机工作状态中, 包括设备使用WFD进行扫描(默认扫描即能够同时扫描2.4GHz和5GHz下的设备)以及通过WFD传输或者接收数据.在测量传输过程中的电流大小时, 其数据传输是持续不断的, 直到测试结束.

本文同时记录了手机没有任何连接和操作时的电流大小作为一个对比.需要注意的是, WFD能够工作在2.4GHz和5GHz下.本文记录其在不同频率下的电流变化.为了直观地比较各状态下的电流大小, 本文选取每个状态下电流大小的平均值, 并且按照从高到低排列, 其结果见表 1.

Table 1 Average current in each state of Wi-Fi Direct 表 1 WiFi Direct各状态的平均电流

表 1中可以清楚地看到: WFD的所有状态的电流都高于手机空闲时的状态, WFD处于5GHz下的电流要高于2.4GHz.但是需要注意的是: 当WFD处于非工作状态时, 它们的电流会存在不同程度的波动.这是由于WFD在原有的休眠机制下, 从休眠中周期性地唤醒并提升功率去感知周围的其他设备.或者由于其他设备发来的探测包, 而被动的唤醒引起的电流增长.以处于2.4GHz下的空闲状态为例, 如图 2所示.

Fig. 2 Average current of WFD connected idle 图 2 WFD连接闲置时的平均电流

图 2中可以看到, 频繁的波动导致了WFD在非工作状态下的电流要高于手机空闲状态时.若将上述WFD非工作状态下唤醒带来的电流波动去掉, 那么WFD非工作状态下的电流仅仅略高于手机空闲时的状态, 即WFD原有的节能机制能够高效地工作.但是当WFD处于工作状态时, 其电流大小猛增.尤其数据传输开始以后, 在5GHz时能达到300.91%;在2.4GHz发送时, 增量也达到了131%.由于WFD原有的节能机制只能在无数据传输时启用, 所以需要一个针对数据传输时的节能机制, 能够在数据传输时尽量降低其功率, 在保证传输速率的同时, 达到节能目的.

在第2部分测试中, 本文使用Iperf(一个标准的网络性能测试工具)来辅助进行测量.在WFD处于2.4GHz的情况下(5GHz下的实验结果表示的趋势一致), 成立不同组大小(3~5台设备)的WFD.使用Iperf在不同的传输速率下(1Mb/s~10Mb/s)持续传输3h, 然后查看所有设备的耗电量.其中, 耗电量的计算方式是通过获取安卓内核文件中所记录的电量消耗等级, 然后与电池的总量相乘.其实验结果如图 3所示.

Fig. 3 Power consumption of WiFi Direct 图 3 WiFi Direct的电池消耗

图 3(a)图 3(b)中, 本文将组大小设为3, 即每个WFD通信组拥有3个设备.从图中可以清楚地看到: 无论是在不同的传输速率或者总传输时间下, 组主的消耗在任何情况都要高于组员的消耗.在图 3(c)中, 本文比较了不同组大小下组主的消耗情况.可以看出: 当组大小越大时, 组主的消耗越大.需要注意到的一点是: 当速度超过7Mbit/s时, 部分组员会存在速度受限, 甚至掉线的情况, 导致了组主电量消耗变低.从图 3中可得出: 组主的消耗在任何情况下都要高于组员; 并且组员越多, 组主的消耗越大.

根据上述两个实验, 可将实验室结果总结如下.

1) 通过对不同状态的WFD进行能耗测试, 并通过电流大小反馈能耗等级.WFD在空闲时的能耗极低, 得益于其原有的节能机制.但处于工作状态下, 耗电量大大增加.因此, WFD需要一个可以在数据传输时使用的节能优化机制, 并作为原有节能机制的补充.

2) 通过在不同组大小下的能耗测试, 组主的能耗始终高于组员; 且组大小越大, 组主的消耗越高.因此需要一个切换机制来平衡不同角色之间的能耗, 尽量避免一个设备担任过久的组主而造成极高的消耗.

根据上述两点, 本文提出的节能机制可以分为两个部分: 首先是采用发射功率调控, 减少WFD工作时的能量消耗; 其次, 采用切换机制以平衡组主的能量消耗, 避免担任组主的设备一直处于高消耗的状态.同时, 也通过动态的切换保证组主和组员保持较近的距离, 降低发射功率从而降低消耗.

3 WiFi Direct节能优化机制

在这一节中, 首先介绍本文使用的系统模型; 随后介绍提出的WiFi Direct节能优化机制; 最后介绍使用的调度算法.其中, 节能优化机制包括两个部分, 分别是功率调控以及切换机制.

3.1 系统模型

WFD的多组通信模型[12]图 4所示.

Fig. 4 Network model 图 4 网络模型

在该多组通信模型中, WFD通信组中的组主充当网关负责自己组与其他组的数据交换.此外, 每个组的组主除了在自己的组担任组主之外, 它也在别的组充当一个组员, 此时的组主相当于一个网关负责两个组之间的数据交换.如第2组的组主在第1组内充当一个组员, 而第1组的组主则在第10组内充当组员.需要注意的是: 这里有一个特殊的组主, 即第9组的组主, 它是唯一一个没有在其他组内担任组员的组主.本文使用NS-3模拟器去进行仿真实验.共使用50个节点去模拟一个基于WFD的自组织网络, 使用的节点数目足够去模拟一些现实生活的例子, 例如聚会、会议和一些小型的公共场所等.图 4中显示的是组大小为5的情况, WFD通信组的组大小范围是2~15个[3].在进行仿真实验时, 会对不同组大小的WFD通信组进行性能测试.WFD建立在IEEE 802.11协议的基础上, 采用半双工模型工作.由于采用了避免冲突的载波感知多址(carrier sense multiple access with collision avoidance, 简称CSMA/CA)的工作机制, 因此存在一个间隔时间段Inter-Frame Space(IFS)来避免冲突.因此, 一个组中进行通信的设备越多, 设备等待的时间就越多.更多的等待时间延长了设备工作的时间, 不断地监听信道导致了更多的能源消耗.此外, 由于这段时间内没有数据进行传输, 同时也导致了更低的吞吐量.其次, 由于带宽是有限的, 在一个组中越多的设备将导致分配的带宽更小, 甚至有些设备由于竞争带宽的失败而失去连接.最后, 设备的处理能力是有限的.当组主设备在运行时, 组越大, 负载越大, 对性能的影响也越大.这些说明了组大小是直接影响整体性能的关键参数.因此, 本文会通过分析不同组大小的网络性能, 选择最佳的组大小.

3.2 功率调控

本文使用对数距离路径损耗模型来计算设备之间的发射功率.对数距离路径损耗模型是室内传播模型常用的经验模型, 其计算公式如下.

$L = {L_0} + 10n{\log _{10}}\left( {\frac{d}{{{d_0}}}} \right)$ (1)

其中, L是传播过程中的路径损耗; L0是在参考距离d0下的路径损耗, 通常使用Friis路径损耗模型进行计算; d0是参考距离, 单位是m; n是衰减参数, 通常依赖于周围环境和建筑物的类型; d是设备之间的实际距离, 单位是m.

在使用式(1)之前, 本文需要先计算L0.使用到的Friis自由空间传播模型公式如式(2)所示.

${P_r} = \frac{{{P_t}{G_t}{G_r}{\lambda ^2}}}{{{{(4\pi d)}^2}}}$ (2)

其中, Pt是发送功率, Pr是接收功率, Gt是发送增益, Gr是接收增益, λ是波长, d是设备之间的通信距离.根据路径损耗与PrPt的关系, 有:

${l_0}({\rm{dBm}}) = 10{\log _{10}}\left( {\frac{{{P_t}}}{{{P_r}}}} \right)$ (3)

将式(3)代入式(2), 就有:

${L_0}({\rm{dBm}}) = 10{\log _{10}}\left( {\frac{{{{(4d\pi )}^2}}}{{{G_t}{G_r}{\lambda ^2}}}} \right)$ (4)

将式(4)中的距离d设置为参考距离d0, 即得到L0.在本文中, 本文将发送增益Gt设置为1dB, 接收增益Gr设置为-10dB.这些值是智能手机中典型的Wi-Fi天线的设置[28].在NS-3模拟器中使用802.11g协议, 工作在2.4GHz以下, 因此λ的值设置为0.125m, 参考距离设置为1m.把以上的数值带入式(4), 即可得到=30.05dBm.这个损耗将作为参考损耗被用在对数距离路径损耗模型的计算中.将L0带入到式(1)中, 得到:

$L = 30.5 + 10n{\log _{10}}\left( {\frac{d}{{{d_0}}}} \right)$ (5)

其接收功率Pr、发送功率Pt与路径上的传播损耗关系如式(6)所示.

$ {P_t} = {P_r} + L $ (6)

本文将接收功率设置为-75dBm[25], 这是一个最低的功率值, 保证了无线设备之间有一个良好的连接.然后将衰减参数n和参考距离d0分别设置为3和1, 这是NS-3中得默认值.最后将这些参数以及式(5)带入到式(6)就能得到最终的功率计算公式:

${P_t} = 44.95 + 30{\text{lo}}{{\text{g}}_{10}}d $ (7)

通过式(7)就可以计算任意距离d下的路径损耗.在式(7)下, 其发射功率和距离的关系如图 5所示.

Fig. 5 Distance and TxPower 图 5 距离与发射功率

3.3 切换机制

在切换机制中包含了组主与组员之间的切换机制和组间不同组员的切换机制: 前者是为了平衡组主的能量消耗; 而后者是让组员通过切换到一个更近的组主, 减少发射功率从而降低能量消耗.

A. 组主切换机制

在第2节的WiFi Direct电量消耗的第2个测试中, 实验结果显示, 组主的消耗一直高于组员, 并且设备的数量越多, 组主的消耗就越大.所以担任组主的设备在担任一定时间以后需要进行切换, 尽量降低该设备的消耗.文献[20]对设备的能耗和网络的效率进行了研究, 提出了每10min进行一次设备切换, 这个时间段被证实是平衡能耗和效率的最佳值.因此在本文中, 组主每10min切换一次, 其过程如图 6所示.

Fig. 6 Switching process of group owner 图 6 组主切换过程

组主切换触发, 每组的组员进行能耗排名, 从能耗消耗最低的组员开始选择.如果该组员愿意成为组主, 那么该组员将成为新的组主; 如果该组员不愿意充当组主以避免消耗过多的能耗, 则自动选择下一个组员进行判断; 如果所有组员设备都不愿意充当组主, 那么原有的组主将继续担任组主.当所有新组主被选出以后, 广播给其他所有的非组主设备, 其他设备根据距离通过抢占的方式, 加入距离自己最近的组主.

在确定新组主时, 如图 6所示, 组员可能愿意成为新组主, 也可能不愿意.这涉及到博弈.此外, 每个组员都有独立的选择, 且组员的选择会影响最终的结果.因此, 新组主的选择过程是一个NP-Hard问题.

问题1. 在组主切换过程中, 新组主的选择是一个NP-Hard问题.

证明, 假设拥有N个容量为C的盒子, M个大小为s的小球, 且s < C.求在不超过盒子容量C的前提下, 每个盒子中可以装多少个小球的所有组合.该问题显然是一个NP-Hard问题.在组主切换过程中, 假设拥有N个组员设备的为C的WFD通信组.其中, M个设备愿意成为组主, s个设备不愿成为组主, M+s=C.求所有情况下所有愿意成为组主的组员的集合.这同样也是一个NP-Hard问题.

在本文中, 将采用纳什平衡(Nash equilibrium, 简称NS)来解决上述的NP-Hard问题.假设设备总数为N, 有设备的意愿策略组an={a1, a2, …, an}∪N, an的初值为1, 且表示为

$ {a}_{n}=\left\{ \begin{array}{l}1, \rm{ }愿意成为宿主 \\ 0, \rm{ }不愿意成为宿主 \end{array} \right.$ (8)

意愿策略组即设备是否想成为组主的意愿值集合.每个组员都有两个意愿决策值进行选择, 且每个组员的意愿决策值都初始化为1.当组主切换发生之后, 所有的组员节点按照能耗水平进行排名, 从能耗最低的设备开始进行判断.如果此时an的值为1, 则当前设备愿意成为组主, 且an的值设为0;如果此时an的值为0, 该设备不愿成为组主, 将此时an的值设为1, 并跳过当前的设备.在最坏的情况下, 设备都不愿意成为组主, 即an的值都是0.但是通过纳什平衡, 它们的值被设置为1.在下一次的组主切换中, 它们都希望成为新的组主.通过纳什平衡设置两个意愿决策值, 寻找到了NP-Hard的局部解来解决问题1.

B. 组主切换机制

组员切换中, 没有10min的限制, 组员的切换是实时的.组员通过切换到一个较近的组主, 更近的通信距离有效地降低了组主和组员的发射功率, 从而降低了功率消耗.然而, 如果组员感知到更近的组主就进行切换, 频繁的切换会极大地影响网络性能.此外, 因为每个组主所连接的设备数量有限, 这种行为也会导致其他设备不得不选择更远的设备, 导致更高的能耗.

图 7所示, 在切换之后, 组员12、组员6和组主1距离较近, 加入了组主1, 从而导致组员2和组员4不得不选择较远的组主.因此, 在本文中提出了一个切换概率Pswitch来控制组主节点是否切换到另外一个可用的网络.Pswitch有4个参数, 如式(9)所示.

${P_{{\rm{switch}}}} = \frac{d}{{{d_0}}}\frac{1}{{{N^\alpha }}}$ (9)
Fig. 7 Uncontrolled switching 图 7 无控制的切换

其中, d是两个节点之间的实际距离, d0是最大切换距离, N是当前组的设备数量, α是指数控制因子.在本文中, 所有的节点分布在半径为100m的圆形区域内, 因此将d0设置为100m.当两个节点的距离大于100m后, 当前节点应当切换选择到一个更近的可用网络, 此时概率Pswitch公式如下:

${P_{{\rm{switch}}}} = \left\{ {\begin{array}{*{20}{l}} {\frac{d}{{100}}\frac{1}{{{N^\alpha }}}, d \leqslant 100} \\ {1,\ \ \ \ \ \ \ \ {\rm{ Otherwise}}} \end{array}} \right.$ (10)

本文在仿真实验中采用不同的指数控制因子α, 并根据能耗以及吞吐量选择最佳的指数控制因子α.

3.4 调度算法

本文中一共使用了4种调度算法, 其中, 第1种算法(算法1)负责调度其他3种算法.第1种算法初始化以后, 循环激活提出的节能机制, 如算法1所示.

算法1. 循环激活节能机制.

输入: GONodeSet; GMNodeSet; Runtime.

初始化: TempTimeRunTime;

    delayTime←1;

    CurrentTimeGetSeconds(·);

    nodeArraynew Node[·].

BEGIN

1.  IF CurrentTime-TempTime≥600 then

2.    NetConfiguration(GONodeSet, GMNodeset);

3.    TempTimeCurrentTime;

4.  else

5.    for i=0 to the length of GONodeSet do

6.      for j=0 to each group members in GMNode do

7.        nodeArray[j]←GMNodeSet[i][j];

8.        NodeSwitch(GONodeSet[i], GMNodeSet[i][j]);

9.      end for

10.         SetNewPower(GONodeSet[i], GMNodeSet[i][j]);

11.         reset nodeArray;

12.    end for

13. end if

14. Schedule(delayTime, loopInRuntime, this);

15. return 0;

END

在算法1中, 使用loopInRuntime作为算法1的函数名.它拥有3个参数——GONodeSetGMNodeSetRunTime: GONodeSet是组主节点的集合; GMNodeSet是一个二维数组, 第1列是组主节点, 后面跟的是这些组主节点一一对应的组员节点, 这两个同样是全局变量; RunTime代表已经运行的时间.在NS-3模拟器中, 使用GetSeconds(·)函数去获取当前的时间, 并赋予给CurrentTime进行判断哪一部分需要去调用.在算法开始阶段, 将RunTime的时间初始化给TempTime.如果是第1次运行, 那么RunTime的时间为0;如果不是第1次, 那么它会继承上一次的运行时间.如果CurrentTimeTempTime的差值大于600s(每10min切换一次), 就调用NetConfiguration(算法4), 并将CurrentTime的时间赋予给TempTime作为新时间点, 用于下次调用时RunTime的初始化; 如果差值小于600s, 则调用每个组的组主和他们的组员节点到NodeSwitch中(算法3)去决定是否进行组员切换.nodeArray是一个临时数组, 用来存储一个组主的所有组员节点, 它用来调用SetNewPower(算法2). Schedule是一个调度函数, 有3个参数.它根据第1个参数的时间延迟调度第2个参数, 第2个参数在本文中是算法1本身.第3个参数this代表了算法1的3个参数: GONodeSet, GMNodeSetTempTime.GONodeSetGMNodeSet会被更新, 然后, TempTime会在下一个loopInRuntime中作为RunTime.

第2种算法, 根据距离设置发射功率, 如算法2所示.

算法2. 根据距离设置发射功率.

输入: GONode; nodeArray.

初始化: tempPower←0;

    finalPower←0;

    distance←0.

BEGIN

1.  for i=0 to the length of nodeArray do

2.    distanceCalculateDistance(GONode, nodeArray[i]);

3.    tempPowerCalculatePower(distance);

4.    nodeArray[i].SetPower(tempPower);

5.    if tempPower > finalPower then

6.      finalPowertempPower;

7.    end if

8.  end for

9.    GONode.SetPower(finalPower);

10. return 0;

END

在算法2中, 使用SetNewPower作为算法2的函数名, 它有两个参数: GONodenodeArray.GONode是一个组主节点, 而nodeArray是该组主节点的组员集合.它们用来计算当前的组主与组员的距离, 并设置相应的发射功率.函数CalculateDistance用来计算两个节点的距离, 然后, CalculatePower根据CalculateDistance的结果计算相应的发射功率, 其计算公式使用的是式(7).在算法开始时, 初始化3个变量: tempPower, finalPowerdistance.依次计算nodeArray的每个组员与组主的距离, 结果为distance.并计算相应的发射功率, 计算出的发射功率为tempPower, 赋予对应的组员, 使用SetPower函数.此时, 将tempPowerfinalPower比较: 如果tempPower较大, 则将tempPower的值赋予给finalPower.当所有组员的功率设置完毕以后, 此时finalPower是组员中最大的发射功率, 将finalPower赋予给组主节点.

第3种算法, 控制组员节点切换, 如算法3所示.

算法3. 控制组员节点切换.

输入: GONode; GMNode.

初始化: distance←0;

    Switching←False;

    TempGONodeArraynew Node[·].

BEGIN

1.  distanceCalculateDistance(GONode, GMNode);

2.  SwitchingJudgeSwitch(distance);

3.  if Switching=True then

4.    current GMNode quit the group size;

5.    update the GMNodeSet and group size;

6.  for any switchable group for current GMNode do

7.    TempGONodeArraycandidate GO node;

8.  end for

9.  Choosing the nearest GO from GONodeArray;

10.  update the GMNodeSet and group size;

11. end if

12. return 0;

END

在算法3中, 使用NodeSwitch作为算法3的函数名.他拥有两个参数: GONodeGMNode.GONode是一个组主节点, GMNode是一个它的组员节点.他们被算法1和算法4调度.算法3是用来控制组员节点是否切换到其他更近的可用网络, 属于组员切换.在算法开始时, 初始化3个变量: 距离distance初始化为0, 切换标志Switching设置初始化为False, 初始化临时的组主数组TempGONodeArray.首先, 通过函数CalculateDistance计算组主和组员的距离, 将结果赋予distance; 然后, 将distance带入JudgeSwitch, 该函数是用来判断节点是否进行切换, 其计算公式是式(10).函数JudegeSwitch的结果赋给切换变量Switching, 如果Switching的值是True, 则代表当前的组员节点需要进行切换, 离开当前组, 并且更新当前组主的组员节点数组以及当前的组大小.需要注意的是, 每个组的组大小也是作为一个全局变量.随后离开的节点搜索任何可以切换的组主, 并将其加入到TempGONodeArray中, 随后选择一个最近的组主加入.在切换完成以后, 随即更新整个GMNodeSet和每个组的组大小.虽然组员在第4步的时候就宣布离开了组主, 但为了尽量降低硬切换导致的断开对整个网络性能的极大影响, 组员实际上还是留在组中进行数据交换, 当前的声明只是为了给其他想切换的组员提供切换的空间.当其他组员加入后, 当前的宣布离开的组员才会真正地离开, 或者等整个切换机制即第9步完成以后, 真正地离开当前组.

第4种算法, 组主切换如算法4所示.

算法4. 组主切换.

输入: GONodeSet; GMNodeSet.

初始化: TempGONodeSetGONodeSet.

BEGIN

1.  reset GONodeSet;

2.  rank the consumption of GMNodeSet;

3.  for i=0 to the length of TempGONodeSet do

4.    Choosing the node from GMNodeSet[i][·];

5.    if GMNodeSet[i][·] wants to be GO then

6.      update GONodeSet, GMNodeSet and group size;

7.      continue;

8.    else

9.      choosing next node;

10.    end if;

11. end for

12. for i=0 to the length of GONodeSet do

13.    for i=0 to each group members in GMNodeSet do

14.      NodeSwitch(GONodeSet[i], GMNodeSet[i][j]);

15.    end for

16. end for

17. return 0;

END

在算法4中, 使用NetConfiguration作为算法4的函数名.它拥有两个参数: GONodeSetGMNodeSet.算法4每10min被调用一次.当被调用以后, 为每一组选择下一任组主, 该算法是作为组主切换.当被调用时, 初始化一个临时的组主数组TempGONodeSet, 并把目前的组主序列GONodeSet赋予TempGONodeSet.随后, 算法重置GONodeSet的序列为空, 然后开始将每组的组员消耗开始进行排列.从TempGONodeSet的第1个组主开始, 首先从各自的组员中选择消耗最低的组员.如果选择的组员想成为新组主, 开始更新组主、组员列表以及组大小, 随后从当前组的循环跳出, 开始下一个组的循环.如果当前被选择的组员不愿意作为新组主, 则选择下一个成员.当所有的新组主被选择完毕以后, 从新组主的第1个组主开始, 剩下的组员中选择是否加入当前组主, 每次选择完成以后, 都需要更新所有的数组以及组大小.

4 实验 4.1 实验设置

在实验过程中, 为了清楚地观察到不同组大小下的性能差异, 节点被直接按照组大小分为若干个组, 在实验过程中, 可能会出现不同组大小的现象.例如, 当组大小为6时, 有8个组大小为6的组, 有一个组大小为2的组.因此, 进行性能评价时, 本文按照当前网络的平均组大小进行评价.运行实验时, 将运行两个实验, 分别是: a. 禁用节能机制; 和b. 启用节能机制.其中, 禁用节能机制中将会作为对照组.除了禁用节能机制外, 两个实验中, 除了发射功率, 其他设置完全一样.对于提出的节能机制, 每10min进行一次组主切换, 组员切换和功率调控则实时控制.在节能机制禁用时, 其发射功率被设置为20dBm, 这是正常用户使用时的默认值[25].当节能机制启用并且组主切换发生时, 其发射功率也会被设置为20dBm.当组主选择完成以后, 算法2就会计算新的发射功率.在实验过程中, 共50个节点, 其中, 每两个节点随机组成一组数据发送/接收搭档.一个节点持续向另外一个节点发送数据, 该过程持续1h.所有节点的接收功率将会被设置为-75dBm, 这是设备之间保持一个良好连接的最低保障.

4.2 实验评价

实验结果如图 8所示.所有节点的默认发射功率被设置为20dBm[25], 20dBm是设备正常发射时使用的功率.当禁用节能机制时, 在实验过程中, 设备的发射功率保持默认值不变, 并持续到实验结束(运行1h).因此, 此时整个网络的能耗通过计算为55.56dB.在组主切换期间, 组主的发射功率也会保持为默认发射功率, 以确保覆盖足够多的设备.

Fig. 8 Experimental results 图 8 实验结果

不同组大小的能量消耗如图 8(a)所示, 可以看到: 当切换指数因子α=0时, 整个网络的能量消耗是最低的; 并且整个网络的能量随着指数α的增加而增加, 两者呈现一个正比的关系.出现这种现象的原因是: 根据本文所提出的切换机制, α越小, 组员切换得就越频繁, 频繁的切换就导致了组主和组员始终保持一个较小的距离, 从而拥有一个较低的发射功率, 降低了整个网络的消耗; 与此相对的是α越大, 切换概率越低, WFD通信组就越稳定.由于设备具有移动性, 当组主、组员距离增加时, 消耗增加.当组大小为5且α为0时, 整个网络达到最低的能量消耗, 为41.70dB.相比于禁用节能机制, 获得了23.32%的能量增益.整个网络在组大小为2且α=2时, 获得了最大的能量消耗, 为45.14dB, 此时也获得了11.02%的能量增益.从图 8(a)中可以发现, 小规模的组通常比大规模的组拥有一个更高的能量消耗.例如, 组大小为2, 3时, 要明显高于组大小为9, 10等大规模的组.这是由于本文采用的网络模型(如图 4所示)在小规模组中, 大部分的节点充当组主(AP), 而少量的节点充当组员.如图 9所示, 网络中一共有9个设备, 组大小为2的情况时, 只有一个组员, 其余的设备都作为组主存在; 在组大小为5的情况时, 组主数量明显减少, 组员数量大量地增加.由于组主负责数据的跨组传输, 不断地跨组通信、转发数据导致能量消耗较高.且组主为了保证所有的组员拥有一个良好的连接, 都处于大功率的状态(由于移动性, 组员和组主的距离可能会随着移动方向的不同逐渐增加).因此在小规模组的情况下, 庞大的组主数量导致了更高的能量消耗.随着组大小的增加, 组主数量的减少, 充当组员的节点数量增多, 组内数据发送比例增加.因此, 整个网络的能量消耗开始降低.

Fig. 9 Devices in different group sizes 图 9 不同组大小的设备情况

组主和组员的平均发射功率如图 8(b)所示, 对于所有的指数因子α, 他们得到的结果都展示了相同的趋势.因此, 本文中选择参数因子等于1/3的情况作为实例.图 8(b)中展示了不同角色之间的平均发射功率, 以及组主和组员两个角色与所有节点的平均发射功率的对比.从整体上来看: 组主的发射功率要比组员的发射功率要高, 并且它也随着组大小的增加而增加.这意味着在整个过程中, 组主的能量消耗一直高于组员的能量消耗, 并且组大小越大, 能量消耗越高.这一点与在真机实验中得到的结论一致.

图 8(c)表明了本文所提出的节能机制能够有效地平衡组主的效率, 降低了组主的消耗.本文提出的节能机制的另外一个目的是平衡组主的能量消耗.在这一部分中, 本文选择了组大小为12, 且参数因子为1/3时作为示例.这个例子同时也代表了在大规模组中拥有高切换灵活性的例子.图 8(c)中记录了3个节点的发射功率, 它们都是作为组主节点.组主切换每10min(600s)发生一次, 因此, 它们的平均发射功率大于或者等于所有组主的平均发射功率.在第1次组主切换发生以后, 它们不再担任组主, 它们的平均发射功率开始下降, 并且与组员的平均发射功率处于相同的水平上.需要注意的是: 曾经担任组主2的节点2, 此时仍然具有很高的发射功率.这是因为它不再担任组主后, 此时也离新的组主较远, 并且暂时没有任何较近的可切换的网络供它切换, 因此它保持一个较高的发射功率.在2 400s之后, 它的发射功率也开始下降, 意味着它的能量消耗也开始下降.

整个网络获得的吞吐量如图 8(d)所示.在图 8(d)中, 吞吐量分为两个部分: 第1个部分是禁用节能机制时获得的吞吐量; 第2个部分则是启用节能机制, 在不同的指数因子α下获得的吞吐量情况.从整体上来看, 禁用节能机制时获得的吞吐量都高于启用节能机制时获得的吞吐量.禁止节能机制并且组大小为2时, 获得最高的吞吐量为48.58Mb/s.当启用节能机制时, 吞吐量随着指数因子α值的增加而增加, 两者呈一个正比的关系.造成这个现象的原因是: 由于本文提出的切换公式中, α的值越大, 网络的切换概率就越低, 因此网络就可以保持一个长时间稳定的传输, 获得较高的吞吐量.当节能机制启用时, 本文在组大小为2且α=1时获得最高的吞吐量, 为47.61Mb/s.与此同时, 整个网络的能量消耗为44.82dB.意味着本文提出的节能机制能在获得11.86%的能量增益的同时, 获得大约2%的吞吐量损失.除此之外, 同样在组大小为2的情况下, 在α=0时获得最佳的节能效果, 为44.4dB.此时的吞吐量为45.92Mb/s, 获得14.35%的能量增益, 但是伴随着5.48%的吞吐量损失.从图 8(d)中可以看出, 吞吐量随着组大小的增加而快速降低.当组大小很小时, 一个组里面的设备碰撞概率就大大降低, 并且在小规模的WFD通信组内, 有很多节点担任组主角色来负责数据的处理和转发.然而随着组大小的增大, 组主随着组员的数量的增加而急剧减少.例如, 在组大小为2时, 有49个组主; 当组大小为3时, 有18个组主; 当组大小为5时, 只有10个组主.组大小越大, 组主数量越少, 这意味着只发送数据的节点数量增加, 越来越少的节点负责数据的处理和转发.由于一个节点的处理能力有限, 当大量的数据涌入时, 会造成网络的拥挤和吞吐量的下降.并且在大规模的组里面, 碰撞的概率大大增加, 就会增加更多的IFS时间去避免碰撞, 也会造成吞吐量的下降.当组大小大于8时, 吞吐量有轻微的上涨.这是由于相比于前面几个组, 当组大小大于8时, 组主和组员的比例差距明显.组内通信的增加, 组间通信的减少.

4.3 指数因子

组大小和指数因子α共同决定了切换的灵活性.越小的组大小和切换指数因子α, 切换的概率越大, 网络的灵活性就越强; 与之相反, 越大的组大小和切换指数因子α则会导致切换的概率越小, 网络就越稳定.然而, 频繁的切换会影响整个网络的吞吐量, 但长时间的稳定传输又会造成过高的能量消耗.因此, 在吞吐量和能量消耗之间需要做出一个权衡的选择.当面对实际情况时, 应当选择一个合适的指数因子α来权衡吞吐量和能量消耗.

在本文中提出一个简单的评价标准用来选择一个适合的α, 其评价公式如式(11)所示.

$\left( {1 - \frac{{TxPower}}{{20{\rm{dBm}}}}} \right) \times a + \left( {\frac{T}{{{T_{{\rm{disable}}}}}}} \right) \times b$ (11)

在式(11)中, 将评价公式分为ab两个部分, ab代表了不同的侧重比例; a代表能量增益的分数, 而b则代表获得的吞吐量分数, 其中, a+b=100.通过ab的不同比例下的分数来获得合适的指数因子α.在a部分中, TxPower代表了当节能机制启用时, 所有节点的平均发射功率.发射功率越小, 获得的能量增益越高, 则分数越高.在b部分中, T代表了在启用节能机制时获得的吞吐量, 而Tdisable则代表了禁用节能机制时获得的吞吐量.启用节能机制时获得的吞吐量的值越大, 代表了损失的吞吐量越低, 则获得的分数越高.当只考虑节能效果时, α的值应该设置为0.此时的组员切换效率最高, 能量增益效果最好.当只考虑吞吐量时, α的值应该设置为2.此时整个网络的稳定性最高, 获得的吞吐量最高, 但是能量消耗最高.除去这两种极端的情况, 本文考虑了3种比例: 侧重于节能(70:30)、平衡(50:50)、侧重于吞吐量(30:70).不同比例下的不同指数因子下的情况如图 10所示.

Fig. 10 Experiment results at different ratio for different α 图 10 不同比例下的不同指数因子α的实验结果

图 10中, 虽然组大小为2时拥有最高的吞吐量, 但是根据评价公式, 它并没有最高的性能分数.图中的结果意味着: 当涉及到轻量级数据传输的场景中, WFD通信组的组大小设置拥有更多的选项.当侧重于节能效果时, 指数因子α的值通常都偏小, 大部分的组在α小于等于2/3时取得较高的分数.而当处于平衡状态时, 组大小偏小时, 则指数因子α的取值较大; 组大小偏大时, 指数因子α的取值较小.当偏重于吞吐量时, 大部分组的取值都大于1, 少部分的组的取值较小.组与组之间的最佳指数因子都不尽相同, 并且在部分组中以及不同的侧重下, 其最佳值也不一样.因此, 面对实际的情况时, 应该根据实际的需求选择一个合适的指数因子.

4.4 实验总结

在这一节中, 本文在NS-3模拟器中对提出的节能机制进行仿真, 并和没有启用节能机制时的实验数据进行对比.此外, 本文也讨论了不同组大小时的性能, 并设置了不同的指数因子α.最后, 提出了一个公式用以评价不同的指数因子α.其实验结果总结如下.

1) 提出的节能机制能够在数据传输时, 有效地降低能耗.能够在获得11.86%的能耗增益的同时, 只损失2%的吞吐量(组大小为2, 且α=1).

2) 从图 8(b)中的实验结果可知, 组主的功耗要高于组员.这与真机WFD测试的结论一致.两者相互验证.

3) 从图 8(c)中的实验结果可知, 提出的节能机制能够有效地平衡组主的功耗.

4) 在指数评价中, 本文设置了不同的侧重(应用场景), 用以测试不同指数因子的性能表现.在同一侧重下, 规模越小的组, 最佳的指数因子越大; 规模越大的组, 最佳的指数因子最小.这是由于越小的组越希望稳定, 而较大的组则希望更频繁的切换; 其次, 不同组、不同侧重下的最佳指数因子都不相同.这说明当该机制实际应用时, 应该根据当前的网络环境、能耗和吞吐量期望等情况进行权衡, 以找到最适合的指数因子.同时, 也反映了通过设置不同的指数因子, 提出的节能机制有很强的适应性.

5 总结

WFD能够带来高速的数据传输速率, 但是也带来了高能耗的问题.此外, 本文在安卓上对WFD通信组进行了一系列的能耗测试, 结果显示, 组主的能耗要高于组员.针对上述的问题, 本文提出一种基于功率调控的WFD节能优化机制, 用于降低设备使用WFD传输数据的能量消耗; 同时, 加入切换机制平衡组主的能耗.提出的节能机制也能够作为WFD原有的节能机制的补充.本文探索不同的参数组合, 选择合适的组大小和参数α来优化能耗和吞吐量.仿真结果表明, 该机制能够优化整个网络能耗, 并能有效平衡组主的能耗.

在未来的工作中, 可以利用无线充电技术[29, 30]对所提出的机制进行改进, 提高D2D设备的使用时间.此外, 本文计划在智能终端上推行及评估建议的节能机制.

参考文献
[1]
Alliance W. Wi-Fi peer-to-peer (P2P) technical specification v1.7. 2016. https://www.wi-fi.org/file/wifi-peer-to-peerp2p-technical-specification-v17
[2]
SIG B. Bluetooth 5: Go faster, go further. 2016. https://www.bluetooth.com/bluetooth-technology/bluetooth5/bluetooth5-paper
[3]
Turkes O, Scholten H, Havinga PJM. Opportunistic beacon networks: Information dissemination via wireless network identifiers. In: Proc. of the 2016 IEEE Int'l Conf. on Pervasive Computing and Communication Workshops (PerCom Workshops). Sydney, 2016. 1-6. [doi: 10.1109/PERCOMW.2016.7457153]
[4]
Camps-Mur D, Garcia-Saavedra A, Serrano P. Device-to-Device communications with Wi-Fi Direct: Overview and experimentation. IEEE Wireless Communications, 2013, 20(3): 96-104. [doi:10.1109/MWC.2013.6549288]
[5]
Sun W, Yang C, Jin S, Choi S. Listen channel randomization for faster Wi-Fi direct device discovery. In: Proc. of the IEEE INFOCOM 201635th Annual IEEE Int'l Conf. on Computer Communications, San Francisco, 2016. 1-9. [doi: 10.1109/INFOCOM.2016.7524342]
[6]
Feng J, Liu Z, Ji Y. Wireless channel loss analysis-A case study using WiFi-Direct. In: Proc. of the 2014 Int'l Wireles Communications and Mobile Computing Conf. (IWCMC). Nicosia, 2014. 244-249. [doi: 10.1109/IWCMC.2014.6906364]
[7]
Khan GZ, Park E, Gonzalez R. Performance analysis of early packet loss detection in WiFi Direct 802.11 networks. In: Proc. of the 2017 IEEE 13th Int'l Conf. on Wireless and Mobile Computing, Networking and Communications (WiMob). Rome, 2017. 1-7. [doi: 10.1109/WiMOB.2017.8115818]
[8]
Mao ZF, Ma J, Jiang YM, Yao B. Performance evaluation of WiFi Direct for data dissemination in mobile social networks. In: Proc. of the 2017 IEEE Symp. on Computers and Communications (ISCC). Heraklion, 2017. 1213-1218. [doi: 10.1109/ISCC.2017.8024690]
[9]
Adam N, Tapparello C, Heinzelman W. Performance evaluation of WiFi Direct multi hop ad-hoc networks. In: Proc. of the 2020 Int'l Conf. on Computing, Networking and Communications (ICNC). Big Island, 2020. 661-666. [doi: 10.1109/ICNC47757.2020.9049743]
[10]
Conti M, Delmastro F, Minutiello G, Paris R. Experimenting opportunistic networks with WiFi Direct. In: Proc. of the 2013 IFIP Wireless Days (WD). Valencia, 2013. 1-6. [doi: 10.1109/WD.2013.6686501]
[11]
El Alami M, Benamar N, Younis M, Shahin AA. A framework for hotspot support using Wi-Fi Direct based device-to-device links. In: Proc. of the 201713th Int'l Wireless Communications and Mobile Computing Conf. (IWCMC). Valencia, 2017. 552-557. [doi: 10.1109/IWCMC.2017.7986345]
[12]
Funai C, Tapparello C, Heinzelman W. Enabling multi-hop ad hoc networks through WiFi Direct multi-group networking. In: Proc. of the 2017 Int'l Conf. on Computing, Networking and Communications (ICNC). Santa Clara, 2017. 491-497. [doi: 10.1109/ICCNC.2017.7876178]
[13]
Condoluci M, Militano L, Orsino A, Alonso-Zarate J, Araniti G. LTE-Direct vs. WiFi-Direct for machine-type communications over LTE-A systems. In: Proc. of the 2015 IEEE 26th Annual Int'l Symp. on Personal, Indoor, and Mobile Radio Communications (PIMRC). Hong Kong, 2015. 2298-2302. [doi: 10.1109/PIMRC.2015.7343681]
[14]
Gong Q, Guo Y, Chen Y, Liu Y, Xie F. Design and evaluation of a WiFi-Direct based LTE cooperative videostreaming system. In: Proc. of the 2016 IEEE Global Communications Conf. (GLOBECOM). Washington, 2016. 1-6. [doi: 10.1109/GLOCOM.2016.7841729]
[15]
Casetti C, Chiasserini CF, Pelle LC, Valle CD, Duan Y, Giaccone P. Content-centric routing in Wi-Fi direct multi-group networks. In: Proc. of the 2015 IEEE 16th Int'l Symp. on A World of Wireless, Mobile and Multimedia Networks (WoWMoM). Boston, 2015. 1-9. [doi: 10.1109/WoWMoM.2015.7158136]
[16]
Sadio O, Ngom I, Lishou C. Controlling WiFi Direct group formation for non-critical applications in C-V2X network. IEEE Access, 2020, 8: 79947-79957. [doi:10.1109/ACCESS.2020.2990671]
[17]
Engelhart A, Haddad Y, Mishali Y. AssistDirect: A framework for multi-hop mobile ad-hoc networking. In: Proc. of the 2017 IEEE Int'l Conf. on Microwaves, Antennas, Communications and Electronic Systems (COMCAS). Tel-Aviv, 2017. 1-5. [doi: 10.1109/COMCAS.2017.8244815]
[18]
Demir U, Faulkenberry A, Tapparello C, Heinzelman W. Reducing delay in group reformation in WiFi Direct networks through redundancy. In: Proc. of the 2018 IEEE Global Communications Conf. (GLOBECOM). Abu Dhabi, 2018. 1-7. [doi: 10.1109/GLOCOM.2018.8647233]
[19]
Faulkenberry A, Demir U, Tapparello C, Heinzelman W. Evaluating methods for enabling continuous operation in dynamic WiFi Direct networks. In: Proc. of the 2020 Int'l Conf. on Computing, Networking and Communications (ICNC). Big Island, 2020. 228-234. [doi: 10.1109/ICNC47757.2020.9049798]
[20]
Camps-Mur D, Perez-Costa X, Sallent-Ribes S. Designing energy efficient access points with Wi-Fi Direct. Computer Networks, 2011, 55(13): 2838-2855.
[21]
Laha A, Cao X, Shen W, Tian X, Cheng Y. An energy efficient routing protocol for device-to-device based multihop smartphone networks. In: Proc. of the 2015 IEEE Int'l Conf. on Communications (ICC). London, 2015. 5448-5453. [doi: 10.1109/ICC.2015.7249190]
[22]
Lim KW, Jung WS, Kim H, Han J, Ko Y. Enhanced power management for Wi-Fi Direct. In: Proc. of the 2013 IEEE Wireless Communications and Networking Conf. (WCNC). Shanghai, 2013. 123-128. [doi: 10.1109/WCNC.2013.6554550]
[23]
Usman M, Asghar MR, Ansari IS, Qaraqe M, Granelli F. An energy consumption model for WiFi Direct based D2D communications. In: Proc. of the 2018 IEEE Global Communications Conf. (GLOBECOM). Abu Dhabi, 2018. 1-6. [doi: 10.1109/GLOCOM.2018.8647905]
[24]
Naik S, D'Souza M. Efficient power saving method for WiFi Direct devices in IoT based on Hidden Markov model. In: Proc. of the 201911th Int'l Conf. on Communication Systems & Networks (COMSNETS). Bengaluru, 2019. 565-567. [doi: 10.1109/COMSNETS.2019.8711299]
[25]
Usman M, Asghar MR, Ansari IS, Granelli F, Qaraqe K. Towards energy efficient multi-hop D2D networks using WiFi direct. In: Proc. of the 2017 IEEE Global Communications Conf. (GLOBECOM 2017). Singapore, 2017. 1-7. [doi: 10.1109/GLOCOM.2017.8254045]
[26]
Hidayab M, Ali AH, Abas Azmi KB. Wifi signal propagation at 2.4GHz. In: Proc. of the 2009 Asia Pacific Microwave Conf. Singapore, 2009. 528-531. [doi: 10.1109/APMC.2009.5384182]
[27]
Lassabe F, Canalda P, Chatonnay P, Spies F, Baala O. A friis-based calibrated model for WiFi terminals positioning. In: Proc. of the 6th IEEE Int'l Symp. on a World of Wireless Mobile and Multimedia Networks. Taormina-Giardini Naxos, 2005. 382-387. [doi: 10.1109/WOWMOM.2005.2]
[28]
Trifunovic S, Picu A, Hossmann T, Hummel KA. Adaptive role switching for fair and efficient battery usage indevice-to-device communication. ACM Sigmobile Mobile Computing & Communications Review, 2014, 18(1): 25-36.
[29]
Dai H, Ma H, Liu AX, Chen G. Radiation constrained scheduling of wireless charging tasks. IEEE/ACM Trans. on Networking, 2018, 26(1): 314-327. [doi:10.1109/TNET.2017.2786463]
[30]
Li L, Dai H, Chen G, Zheng J, Zhao Y, Zeng P. Radiation constrained fair wireless charging. In: Proc. of the 201714th Annual IEEE Int'l Conf. on Sensing, Communication, and Networking (SECON). San Diego, 2017. 1-9. [doi: 10.1109/SAHCN.2017.7964902]