2024年1月19日发(作者:)
毕业设计(论文)
中文题目 安卓系统下关于WiFi-Direct的研究
英文题目:A Study of WiFi-Direct
on Android System
学 院:
专 业:
学生姓名:
学 号:
指导教师:
理学院
理科试验班
龚强
10274003
陈一帅
2014
年 6 月 3 日
北京交通大学毕业设计(论文)任务书
题 目:安卓系统下WiFi-Direct的应用研究
适合专业: 通信工程专业
指导教师(签名): 提交日期: 年 月 日
学院:理学院 专业: 理科试验班 学生姓名: 龚强 学号: 10274003
毕业设计(论文)基本内容和要求:
技术原理:
- 研究WiFi-Direct技术原理,了解WiFi-Direct技术和wifi-adhoc, wifi-tethering技术的本质区别,理解为什么工业界会提出WiFi-Direct技术。
-
行业现状:
-
-
调研WiFi-Direct技术目前的操作系统,设备支持情况。
研究安卓系统下WiFi-Direct的现状;
系统设计:
- 编程实现安卓中的WiFi-Direct应用,实现两个手机终端之间通过WiFi-Direct通信;
- 使用数据库编程实现groupowner对于peer的管理;在多个设备组成一个group的情况下编程实现手机两两之间通信;
- 使用eclipse编程实现apk。
了解WiFi-Direct节点通信协议过程
1
北京交通大学毕业设计(论文)任务书
毕业设计(论文)重点研究的问题:
使用数据库来实现group对于peers的管理,使得peers之间能互相通信;
编写程序使得用户界面清晰明了,生成一个使用的apk程序,使得在wifi的环境下手机之间快速分享资源。
毕业设计(论文)应完成的工作:
论文书写格式规范;
查阅各种中外文献,加深对WiFi-Direct技术原理和行业现状的了解;
理解WiFi-Direct在安卓平台下的局限,应用编程技术加以改进;
使用eclipse编程软件编程整合实现apk应用程序;
用户界面做到简单,大气而且人性化,便于用户使用。
2
北京交通大学毕业设计(论文)任务书
参考资料推荐:
1.
2.
WiFi_P2P_Technical_Specification_v1.2;
泰凯文. 基于Wi-Fi Direct的音视频共享系统的研究与实现[D].北京邮电大学,2013.
3. Lombera, I.M.; Moser, L.E.; Melliar-Smith, P.M.; Yung-Ting Chuang, "Peer
management for iTrust over Wi-Fi Direct," Wireless Personal Multimedia
Communications (WPMC), 2013 16th International Symposium on , vol., no.,
pp.1,5, 24-27 June 2013
4. Conti, M.; Delmastro, F.; Minutiello, G.; Paris, R., "Experimenting opportunistic
networks with WiFi Direct," Wireless Days (WD), 2013 IFIP , vol., no., pp.1,6, 13-15 Nov. 2013
5. Camps-Mur, D.; Garcia-Saavedra, A.; Serrano, P., "Device-to-device
communications with Wi-Fi Direct: overview and experimentation,"Wireless
Communications, IEEE , vol.20, no.3, pp.96,104, June 2013
其他要说明的问题:
3
北京交通大学毕业设计(论文)开题报告
题 目: 安卓系统下关于WiFi Direct的应用研究
学院: 理学院 专业: 理科试验班 学生姓名: 龚强
学号: 10274003
文献综述:
1 WiFi Direct技术介绍
2010年10月,Wi-Fi Alliance(Wi-Fi联盟)发布Wi-Fi
Direct白皮书,白皮书中介绍了这种技术的基本信息、特点和功能。该技术允许无线网络中的设备无需通过无线路由器即可相互连接,特别是,与蓝牙技术类似,允许无线设备以点对点形式互连,而且在传输速度与传输距离方面比蓝牙有大幅提升。
按照定义,Wi-Fi Certified Wi-Fi Direct设备是支持对等连接的设备,这种设备既支持基础设施网络,也支持P2P连接。Wi-Fi Direct设备能够作为典型的站点(STA)加入基础设施网络,而且必须支持Wi-Fi Protected Setup加入者功能。
Wi-Fi Direct设备通过组建小组(以一对一或一对多的拓扑形式)来建立连接,小组的工作形式与基础设施BSS类似。由一部Wi-Fi Direct设备负责整个小组,包括控制哪部设备加入、小组何时启动和终止等。这种设备对于传统客户设备而言就是一部接入点,能够提供基础设施接入点所提供的部分服务。
最初,Wi-Fi Alliance®联盟将这一新标准原名为“Wi-Fi peer-to-peer”,而最终定名为WiFi Direct,面向各种Wi-Fi设备,如电脑、手机、电脑外设、家电等等。符合该1
北京交通大学毕业设计(论文)开题报告
标准的设备无需热点和路由器,就可以方便的和其他设备实现直接连接,传输数据或共享应用。Wi-Fi Direct可以支持一对一直连,也可以实现多台设备同时连接,并且Wi-Fi Direct标准将会支持所有的Wi-Fi设备,从11a/b/g至11n,不同标准的Wi-Fi设备之间也可以直接互联。
2 国内外的研究情况:
2.1 WiFi Direct应用现状
针对WiFi Direct规范,WiFi-alliance中的几大公司分别提出了不同的解决方案:Intel公司提出了my WiFi技术;TI提出使用IVA-HD加速器作为编码器的WiFi display技术;Broadcom提出了集合WiFi与H.264编码技术的5G WiFi
display 技术方案。类似技术还有苹果公司的Airplay
mirroring。
2.2 WiFi Direct与蓝牙技术的比较
说到直连技术,就不能不提到蓝牙。在之前很长一段时间,蓝牙技术是无线设备间直连的事实标准。在WiFi Direct规范出现之前,蓝牙技术被认为是最适合无线个人区域网的技术。但在WiFi Direct出现之后,这种情况变得复杂起来。
蓝牙4.0和WiFi Direct都是为了在无线设备之间快速传输图片,文件和其他数据实现的。现在的智能手机、平板电脑、笔记本电脑等设备,大都配有蓝牙和WiFi接口,这两种技术并行发展还是一枝独秀,现在下结论还为时尚早。WiFi
2
北京交通大学毕业设计(论文)开题报告
Direct在传输速率以及传输距离远胜于蓝牙4.0,同时在兼容性上也比蓝牙4.0出色。但是蓝牙在耳机等领域耕耘多年,WiFi Direct想插足绝非易事。但是WiFi Direct在视频、远距离传输上的优势也让蓝牙望尘莫及。此外,原有设备上对蓝牙和WiFi的支持已经固定,两种技术都没有给用户提出一种过渡到对方的方案,而连接方式尚不足成为更新设备的理由,给两种技术留下了很大的成长空间。
3 WiFi Direct技术细节
3.1 Wi-Fi Direct标准的应用场合
Wi-Fi Direct标准的原名是Wi-Fi peer to peer,即P2P版本的Wi-Fi,又称为Wi-Fi对等技术。符合Wi-Fi Direct标准的设备叫做Wi-Fi对等设备。Wi-Fi Direct标准旨在让符合Wi-Fi Direct标准的设备在无需连入Wi-Fi热点的情况下,简单方便地与其他Wi-Fi设备建立直接连接,传输数据或共享应用。目前市面上大量应用的传统Wi-Fi设备如电脑,手机等等都不能主动发起,但是大部分可以被Wi-Fi Direct设备邀请建立点对点的连接。
Wi-Fi对等技术充分利用了传统Wi-Fi技术的优势:包括性能、安全性、易用性和普及性,并增加了优化消费者使用方式的特点:消费者在使用时无需接入路由设备。现在,用户无需先接入Wi-Fi热点就可直接连接Wi-Fi设备了。举个例子,使用这种技术,Android手机等移动设备可以与笔记本电3
北京交通大学毕业设计(论文)开题报告
脑直接相连,无论此时是否存在可用的Wi-Fi热点;Android手机用户可以看到提供不同服务的Wi-Fi设备清单,根据自身需要选择提供相应功能(如打印功能)的设备进行Wi-Fi P2P连接,实现打印文件的目的。
3.2 Wi-Fi Direct的功能特性
获得Wi-Fi Direct认证的设备扩大了 Wi-Fi技术的覆盖范围。一方面,Wi-Fi Direct设备之间可以建立P2P的连接;另一方面,Wi-Fi Direct设备可以兼容传统的Wi-Fi设备,向传统设备发出邀请从而建立P2P的连接,连接效果与网线连接无异。Wi-Fi Direct与Wi-Fi技术相比,在如下方面做了改进:
1)随时随地建立连接:Wi-Fi Direct设备间或Wi-Fi
Direct与传统Wi-Fi设备可以随时随地建立P2P连接,无需考虑连入Wi-Fi热点或WLAN。
2)服务可见:Wi-Fi Direct设备在用户建立连接前帮助用户确认存在哪些可用设备以及该设备所提供的服务,用户根据自身的需要与提供相应服务的设备建立连接。
3)安全与易用性:Wi-Fi Direct 采用 WPS (Wi-Fi Protected
Setup, Wi-Fi保护设置)机制提供更安全的加密方式,同时简化了设备间建立安全连接的过程。连接方式包括两种:PBC
(Push Button Configuration)模式和 PIN (Personal Identity
4
北京交通大学毕业设计(论文)开题报告
Number,个人认证码)模式。目前市面上大部分的Wi-Fi
Direct设备上都装有WPS按钮,WPS按钮的作用是建立Wi-Fi Direct设备间的安全连接。用户只需同时按下两台设备上的WPS按钮即可建立Wi-Fi Direct设备间的P2P连接,这种方式称之为PBC模式。
P1N模式同样适用于两台Wi-Fi Direct设备建立P2P连接,也适用于Wi-Fi Direct设备与Wi-Fi设备间建立P2P连接。用户在自己设备上通过输入要连接设备的PIN完成验证,通常情况下PIN码会显示在设备上。
4)节能特性:理论上能够将设备的电池使用时间延长15%到40%。
3.3 Wi-Fi Direct关键机制
所有的Wi-Fi Direct设备必须能够负责整个小组,同时能够协调哪台设备能够成为小组管理者,甚至一定要具备设备发现和电源管理的机制,同时还能够提供可选功能,例如:服务发现,邀请机制。表1-1即为Wi-Fi Direct所定义的关键机制。
表1-1 WiFi Direct的关键机制
关键机制
设备发现
服务发现
小组建立
5
强制
√
√
可选
√
北京交通大学毕业设计(论文)开题报告
邀请机制
客户发现
能源管理
--P2P-PS与WMM-PS
--缺席通知
--机会节能
3.3.1 设备发现
P2P-
√
√
√
√
√
√
设备发现用于确定其他WiFi Direct设备并建立连接。这种功能采用的扫描技术与发现基础设施接入点时使用的扫描技术类似。用户可以选择已经发现的设备进行连接。如果目标尚未加入小组,则将组建新的小组。如果目标已经加入小组,正在搜索的WiFi Direct设备将试图加入已存在的小组。WPS用于获取证书,并验证正在进行搜索的WiFi Direct。
设备发现组要包括2个阶段:Scan和Find阶段,如图1-1所示。
图1-1 设备发现
6
北京交通大学毕业设计(论文)开题报告
在Scan阶段,设备通过扫描所有支持的信道收集周围设备或网络的信息。
Scan阶段采用IEEE 802.11-2007中定义的扫描过程。在Scan阶段,设备依次向所有信道发出探测请求帧,同时在Scan阶段的设备应该响应探测请求帧。
Find阶段用于确保2个处在搜索状态的设备到达同一个信道,这时互相通信的前提条件。Find阶段包括两个状态:Listen和Search。处在Listen状态的设备应该只对含有P2P信息成分或者WPS信息成分的请求进行应答。
在Search状态的设备应该向每一个信道发送一个或多个探测请求,而处在此状态的设备是不能对任何请求进行响应的。
7
北京交通大学毕业设计(论文)开题报告
3.3.2 服务发现
服务发现是可选的特性,其目的在于获取发现的设备可以提供什么样的服务,如Bonjour、UPnP、Web服务等。如果设备1已经成功地发现了设备2,即设备发现阶段已经结束,那么设备1可以在任意时刻执行服务发现过程,如图2-3所示:同时,如果已经开始了服务发现,则关键机制中的小组建立过程必须要等到服务发现过程完毕才能开始工作。
图1-2服务发现
8
北京交通大学毕业设计(论文)开题报告
当设备1向设备2进行服务发现过程时,请求帧会询问设备2提供哪种服务类型,设备2会针对自身所提供的服务协议类型通过响应帧进行回答。服务协议类型如表1-2进行规定。
9
北京交通大学毕业设计(论文)开题报告
表1-2 服务协议类型
值
0
1
2
3
4-254
255
3.3.3 小组建立
在小组建立的过程当中,将决定哪台设备将成为小组管理者,成为小组管理者的设备将决定小组是永久性(多次重复使用)还是临时(设备间仅进行一次连接)的小组。
小组管理者的协商是一个三步帧交换过程,假如设备1要与设备2进行小组管理者的协商,设备1首先会向设备2发送小组管理者协商请求帧,请求帧包括Group Owner
Intent,这个值用来表示设备想成为小组管理者的意愿值(用xl表示);设备2收到设备1的请求帧(太多这种问题。。。)之后,会向设备1发送小组管理者协商响应帧,响应帧同样包括设备2成为小组管理者的意愿值(用x2表示),设备1会对>d和x2的数值大小进行比较,决定哪台设备将成为小组管理者,并向设备2发送协商结果。小组管理者的协商算法如图1-3所示。
图1-3 小组管理者协商算法
10
服务协议类型
所有的服务协议类型
Bonjour
UPnP
WS-Discovery
Reserved
Vendor Specific
北京交通大学毕业设计(论文)开题报告
在小组管理者协商之后,会进行小组的特征协商工作,小组管理者会制定小组的规范。首先确定小组是永久型还是临时型。接着设备间会进行WPS信息的交换,从而完成加密工作。图1-4描述了小组建立过程。
目前WPS常见的连线模式有2种,分别是PIN及PBC。
图1-4 小组建立过程
11
北京交通大学毕业设计(论文)开题报告
3.3.4 邀请机制
Wi-Fi Direct提供此机制目的是以邀请的方式使其他Wi-H Direct设备进入己经存在的小组。
> 客户发现
使用户针对某类特定的设备或设备类型进行连接。提供了对附近的Wi-Fi Direct设备分类的功能,方便快速找到所需的应用。
> 能源管理
能源管理功能并不是所有小组都有的,如果小组中存在传统的Wi-Fi设备,则不能使用能源管理功能。
能源管理机制目的在于降低小组各个设备角色的能源消耗,同时保持客户发现的功能。包括三种具体的节能机制:
(1) P2P-PS 与 P2P-WMM-PS:以标准的 Wi-Fi Power Save
和 WMM-Power Save规范为基础,帮助小组管理者实现节能的目标。
(2) 缺席通知:当小组成员离开时告知小组其他成员。
(3) 机会节能:允许小组管理者进入休眠状态。但为了保证关键机制设备发现的正常使用,仍会定期进入可用状态。
12
北京交通大学毕业设计(论文)开题报告
主要参考文献:
1. 泰凯文. 基于Wi-Fi Direct的音视频共享系统的研究与实现[D].北京邮电大学,2013.
2. Conti, M.; Delmastro, F.; Minutiello, G.; Paris, R., "Experimenting
opportunistic networks with WiFi Direct," Wireless Days (WD), 2013 IFIP ,
vol., no., pp.1,6, 13-15 Nov. 2013
3. Camps-Mur, D.; Garcia-Saavedra, A.; Serrano, P., "Device-to-device
communications with Wi-Fi Direct: overview and experimentation," Wireless
Communications, IEEE , vol.20, no.3, pp.96,104, June 2013
4. Asadi, A.; Mancuso, V., "WiFi Direct and LTE D2D in action," Wireless
Days (WD), 2013 IFIP , vol., no., pp.1,8, 13-15 Nov. 2013
5. Pyattaev, A.; Johnsson, K.; Andreev, S.; Koucheryavy, Y., "3GPP LTE
traffic offloading onto WiFi Direct," Wireless Communications and Networking
Conference Workshops (WCNCW), 2013 IEEE , vol., no., pp.135,140,
7-10 April 2013
6. Xiaoxiao Liu; Huang, J.S.; Zujue Chen, "The human positioning system based
on the WiFi Direct and Precision Time Protocol," Transportation,
Mechanical, and Electrical Engineering (TMEE), 2011 International
Conference on , vol., no., pp.1580,1584, 16-18 Dec. 2011
7. Zhuo Li; Qilian Liang; Xiuzhen Cheng; Znati, T., "Outage performance
evaluation over Rayleigh fading channels of WiFi Direct networks in Smart Grid
application,"Innovative Smart Grid Technologies - Asia (ISGT Asia), 2012
IEEE , vol., no., pp.1,5, 21-24 May 2012
8. Hayoung Yoon; JongWon Kim, "Collaborative streaming-based media content
sharing in WiFi-enabled home networks," Consumer Electronics, IEEE
13
北京交通大学毕业设计(论文)开题报告
Transactions on , vol.56, no.4, pp.2193,2200, November 2010
14
北京交通大学毕业设计(论文)开题报告
二、研究方案:
基本研究方法:WiFi Direct协议研究 数据库 JAVA编程
研究内容:应用JAVA编程以及数据库的应用实现WiFi
Direct中group owner对于peer的管理,使得能够实现一定范围内每个手机终端之间都能快速地分享消息以及资源。Group_owner在peer加入小组之后就会要求peer向Group_owner发送一个消息,然后Group_owner调用函数获取每一个peer的mac以及ip地址,并且将它们整合到数据库中,之后再将包含了所有连入这个group的peer的mac和ip的一个list分发给每一个peer,此时peer之间就可以依据某种通信方式进行连接。每当有新的peer加入进来的时候owner就会更新一次list,保证它的实时性。这样就能针对当前许多关于WiFi Direct应用只能同时实现2个终端通信的现状做出改进。
整体设计框架:
数据库的设计与编写
数据库嵌入socket通信
多人情况下mac/ip分发的调试
用户界面的设计
多人通信的调试
15
北京交通大学毕业设计(论文)开题报告
毕业设计(论文)进度安排:
序号
1
2
毕业设计(论文)各阶段内容
阅读相关文献,提出方案
开始编程,用数据库实现Owner对peer的管理
3
调试多人情况下的消息传输情况
4
调试多人情况下的资源分享情况
5
完善代码,设计用户界面
5.1-5.20
4.21-5.1
4.1-4.20
时间安排
3.1-3.10
3.11-3.31
备注
16
北京交通大学毕业设计(论文)开题报告
6
做好结题准备
5.21-6.10
指导教师意见:
填写说明:查阅资料是否全面,提出的研究方案和计划进度是否可行(方案还要再具体一点),还有什么需要注意和改进的方面,是否同意按学生提出的计划进行等。
指导教师签名: 审核日期: 年 月
17
摘要
WiFi-Direct是由WiFi 联盟推出的、基于WiFi、旨在提供手机间直接通信的新技术。由于WiFi比蓝牙、2G网络等有更大的带宽和信道容量,传输范围也更大,使得WiFi-Direct在机会式网络及D2D领域中有很大的潜力,在未来终端直连领域中有着不可忽视的作用。
本文首先介绍WiFi-Direct技术核心和Android系统对其的支持,包括节点扫描、D2D Group形成、节点通信过程的具体技术细节,然后介绍Android系统对WiFi-Direct的编程接口支持。在此基础上,对Android系统下WiFi-Direct技术的性能进行了评估,并实现了一个Android手机D2D通信中间件。具体贡献如下:
1) 对比蓝牙、基于WiFi热点手机直连技术,评估了Android系统下WiFi-Direct技术的性能,包括待机功耗、传输速度等。发现WiFi-Direct耗能比基于WiFi热点的应用技术耗能低,传输速度明显优于蓝牙。
2) 针对目前已有WiFi手机直连文件传输应用无法进行真正的D2D通信功能的问题(它们不能进行D2D的通信,而只能与Group Owner通信,然后由Group owner将一个节点发送的内容广播到所有节点),基于Android手机平台,设计、实现了一套D2D通信中间件。利用该中间件,加入D2D小组的手机节点能够进行D2D的通信。
3) 基于该中间件,我们实现了一个应用WiFi-Direct的手机文件互传的原型系统,测试验证了我们的中间件的有效。
最后,我们讨论了在上述探索过程中发现的WiFi-Direct的问题,展望了下一步的工作。
关键字: WiFi-Direct, 终端直连, 机会式网络
Abstract
WiFi-Direct is a new technology defined by the WiFi Alliance aimed at
enhancing direct communication between devices through WiFi. Because of
its faster speed and wider coverage than traditional wireless D2D
communication like bluetooth, it will have a great impact on Device-to-device
communication. Though it have lots of drawbacks like its unstableness, but its
strength on speed and coverage still give this new technology great potential in
opportunistic network and Device-to-device communication.
In this article, We have a brief introduction on its core technology
including device scanning, D2D group formation, communication process
between devices and the surpport of Android. Based on these technology
above, we evaluated the performance of WiFi-Direct compare to other D2D
technology and implemented a D2D middleware for WiFi-Direct. Specific
contribution are as follows:
1) Assessments on WiFi-Direct compared to bluetooth, WiFi hotspot
technology especially in power-saving and communication speed. We find that
WiFi-Direct have better performance in power-saving than WiFi hotspot
technology and faster speed than bluetooth, but its speed is slightly slower
than WiFi hotspot technology.
2) At present, revelevent apps on the market cannot be really D2D(All the
members have to go through the group owner while they transfer files, and the
group owner would broadcast those file to everymember in the group.) To
solve this problems, we implemented a D2D middleware based on Android for
WiFi-Direct. It enables real D2D communicaton among groups.
3) Base on the middleware above, we implemented a file transfer
application and proved its functionality.
In the end, we discussed some problems that still existing in WiFi-Direct
system. At last we did some prospects of the future work on WiFi-Direct.
Index Terms: WiFi-Direct, D2D, opportunistic network
目录
1:绪论 ......................................................................................................................... 1
1.1 背景 ......................................................................................................................... 1
1.2 问题 ......................................................................................................................... 2
1.3 本文的工作 ............................................................................................................. 3
1.4 论文的构成 ............................................................................................................. 3
2 WiFi-Direct核心技术 ................................................................................................. 4
2.1 拓扑结构 ............................................................................................................ 4
2.2 关键机制 ............................................................................................................. 5
2.2.1 WiFi-Direct的扫描过程 ............................................................................... 5
2.2.2 服务发现过程 .............................................................................................. 7
2.2.3 小组建立过程 .............................................................................................. 9
2.3 节点通信 ............................................................................................................. 9
3 Android 对Wi-Fi Direct的支持 ............................................................................... 11
3.1 简介 ................................................................................................................... 11
3.2 Android WiFi-Direct编程接口 .......................................................................... 11
3.2.1 类 ................................................................................................................ 11
3.2.2 接口 ............................................................................................................ 12
4 相似技术分析与WiFi-Direct性能对比 .................................................................. 12
4.1 无线Ad Hoc网络 ............................................................................................. 12
4.2 Bluetooth ........................................................................................................... 13
4.3 手机热点分享 ................................................................................................... 14
4.4 LTE D2D ............................................................................................................. 14
4.5 WiFi Direct与各种类似技术的细节比较 ........................................................ 15
4.5.1 与Ad Hoc的比较 ...................................................................................... 15
4.5.2 与蓝牙的比较 ............................................................................................ 16
4.5.3 与基于热点的手机互联技术的比较 ........................................................ 16
4.5.4 与LTE D2D技术的比较 ............................................................................ 17
4.6 WiFi-Direct性能评估 ........................................................................................ 17
4.6.1待机功耗 .................................................................................................... 17
4.6.2 WiFi-Direct与茄子快传和蓝牙的速度对比 ............................................. 18
5 无线D2D通信中间件 ............................................................................................. 19
5.1 需求 ................................................................................................................... 19
5.2设计 ................................................................................................................... 21
5.2.1 小组管理者形成各小组成员的MAC/IP映射表 ...................................... 21
5.2.2 MAC/IP映射表的分发 .............................................................................. 23
5.2.3小组成员形成自身映射表 ........................................................................ 23
5.3实现 ................................................................................................................... 24
5.3.1 主要模块 .................................................................................................... 24
5.3.2 模块功能 .................................................................................................... 24
6 原型系统实现 .......................................................................................................... 26
6.1介绍 ................................................................................................................... 26
6.2 测试 ................................................................................................................... 28
6.3 讨论 ....................................................................................................................... 34
6.3.1 多人小组建立时间的问题 ............................................................................ 34
6.3.2功耗问题 ........................................................................................................ 35
6.3.3 WiFi-Direct在D2D环境下应用时的干扰问题 ............................................ 36
7 结论 .......................................................................................................................... 36
8 参考文献 .................................................................................................................. 37
9 外文原文与翻译 ...................................................................................................... 38
9.1 外文原文 ........................................................................................................... 38
9.2 翻译 ................................................................................................................... 45
北京交通大学毕业设计(论文) 第 1 页
1:绪论
1.1 背景
随着多媒体技术的迅速发展,人们在视频,音乐等多媒体方面的需求越来越大。年轻人经常会聚集在一起观看图片、听歌或者欣赏视频,而通过无线来进行图片共享、即时聊天、视频共享就变得很符合人们的需求。
在日常的学术交流或者会议中,人们也经常要进行成果演示或者汇报工作,大致步骤是通过数据线将手提电脑与投影仪进行连接,将电脑上的内容投影到屏幕上。这种传统的方式受限于投影仪、幕布以及有线连接。如果能以无线的方式将笔记本甚至手机与投影仪连接起来,直接在幕布上进行展示,这样做既能对现有的设备进行合理的利用,节约不必要的而投入;同时摆脱了对线的依赖,极大地方便了用户的使用。
WiFi Direct的出现满足了人们在无线直连方面的需求。随着WiFi技术的发展,WiFi-Alliance成员又开发出了一种新的规范,称为Wi-Fi-Direct(又称为WiFi P2P技术),极大地拓展了用户对WiFi的使用。WiFi-Direct认证设备拥有了一种全新的功能:用户无需使用传统的WiFi基础设施网络就可以在WiFi客户端设备之间创建直接连接。获得WiFi联盟对等规范认证的设备将带有WiFi认证的WiFi-Direct认证标志。
今天,全球约10%的人口正在使用WiFi与他人进行连接。目前全1
北京交通大学毕业设计(论文) 第 2 页
球共有10亿多部WiFi设备正在投入使用,截止到2013年全球出厂的WiFi设备达到将近15亿部。WiFi技术被广泛应用于家庭、数码相机、电视、游戏设备以及手机等。
WiFi-Direct设备可以建立与现有的传统的WiFi设备的直接连接。通过此种方式,成千上万中传统通过WiFi认证的设备将具备直接连接功能。与此同时,智能手机中Android的市场占有率最近稳居第一,基本上所有的Android手机都包含WiFi模块,也提供了硬件支持。
1.2 问题
虽然WiFi Direct的软硬件底层技术已经普及,WiFi-Direct技术的应用却至今不愠不火。这是因为两方面的原因:
1)作为一项新技术,其无线底层的一些核心设计尚不完善,用户体验不佳;
2)Android提供的编程接口非常低级,没有提供D2D通信的高层应用接口。
在这两方面,国外已有一些研究者进行了一些测量和编程工作。但国内对此的研究还刚刚起步,研究和应用都存在很大的空白,这极大地阻碍了我国无线通信产业界的发展。特别是,在5G网络的研究中,D2D技术是一项非常核心的技术,而WiFi-Direct技术正是一项很有潜力的D2D底层无线技术。因此,对其的研究是十分必要和紧迫的。
2
北京交通大学毕业设计(论文) 第 3 页
1.3 本文的工作
针对上述问题,我们展开了对Android编程以及WiFi-Direct的全面钻研,并认真地在Android平台上进行了研究和开发工作。我们阅读了大量WiFi-Direct相关论文,掌握了WiFi-Direct研究的最新发展趋势。然后,编程实践,在Android平台下,利用Android WiFi Direct应用编程接口,设计实现了一个WiFi-Direct的应用层MAC/IP地址同步机制,并通过JAVA编程实现该机制,解决了WiFi-Direct在应用层D2D通信的根本问题。主要工作为:
1)调查研究WiFi-Direct的底层协议和核心算法,包括节点扫描、D2D Group形成、节点通信过程,对其底层设计进行了研究。研究评估了Android系统目前对WiFi-Direct的编程接口支持。
2)设计实验,评估了Android系统下WiFi-Direct技术相对于蓝牙、WiFi热点手机直连技术的各项性能,包括功耗、传输速度等,证明WiFi-Direct功耗比基于WiFi热点的技术功耗降低1/3左右,而传输速度比蓝牙快9倍。
3)调研发现了目前市面上常见的Android手机直连文件传输应用的重大缺陷,即:不能进行组内D2D之间的通信。接着,基于Android
Wi-Fi Direct底层编程接口,设计、实现了一个手机D2D通信的中间件(Middleware)。利用该中间件,节点加入D2D小组后,能够直接通信。最后,基于该中间件,我们实现了一个手机文件互传的原型系统,并利用该系统,验证了我们中间件的有效。
1.4 论文的构成
第一章为绪论,主要介绍当前的背景,以及需求;
3
北京交通大学毕业设计(论文) 第 4 页
第二章介绍了WiFi-Direct的技术特点,关键机制,通信模块;
第三章介绍了Android系统对于WiFi-Direct的支持;
第四章介绍了与WiFi-Direct类似的无线D2D技术,并且拿WiFi-Direct与其做了性能上的比较;
第五章介绍了WiFi-Direct组内通信时存在的问题,设计了一套解决该问题的中间件;
第六章介绍了Android中WiFi-Direct的原型系统,并将中间件嵌入其中,测试了中间件的性能。接着讨论了WiFi-Direct仍然存在的一些问题;
第七章为对本文做出了结论;
第八章为参考文献;
第九章为外文原文翻译。
2 WiFi-Direct核心技术
2.1 拓扑结构
WiFi-Direct终端之间建立连接都是以小组的形式来实现的。小组建立的拓扑结构包含两种即点对点的形式以及一对多的形式,而每一个小组中只能有一个小组的管理者。每当有设备要加入小组或者小组终结的情况都是由小组管理者来控制的。而小组当中的非管理者成员被称为客户端,它们统一由小组管理者来管理。
图2.3-1为WiFi-Direct的示例拓扑图
4
北京交通大学毕业设计(论文) 第 5 页
图2.1-1 WiFi-Direct的拓扑结构
2.2 关键机制
2.2.1 WiFi-Direct的扫描过程
WiFi-Direct的设备发现过程可以找到附近能够连接的设备。WiFi-Direct的设备发现过程主要有2个阶段:Scan和Find。设备发现使用的是请求帧和请求返回帧要进行设备间的信息交换。设备只有在如下几种状态下才能响应请求帧:
(1) 设备是小组管理者;
(2) 设备处在Listen状态;
(3) 设备已与一个路由的接入点在发来请求帧的信道相连,此时设备5
北京交通大学毕业设计(论文) 第 6 页
就会回应不能成为小组成员;
当WiFi-Direct设备加入一个组之后只有小组管理者会继续发送信标帧。
Listen状态:
当WiFi-Direct设备没有在任何一个组里面的时候,它们就会停留在Listen的状态来使得它们变得可发现。在该状态下时,设备会停留在某一个信道上等待其他机器发来请求帧,而这个信道是从信道1、6、11中选出来的。如果刚开始选择了某一个信道来进行设备发现,那么这个作为Listen的信道会持续该状态直到设备发现过程结束。
Scan状态
Scan状态下使用的是定义在IEEE Std 802.11-2007中的扫描过程。该扫描过程会发现周围的设备或者小组,然后选择最佳的一个信道来进行小组的建立。在Scan状态下设备通过收集周围设备在所有支持信道的信息来进行扫描。处于Scan状态下的设备不会回应请求帧。
Find状态
Find状态是为了是的2台同时处于search状态的设备到达同一个信道上后方便它们相互之间的通信。系统会让设备分别在Listen状态和发送请求帧状态之间来回循环,以使得2台设备能够有一台在Listen的状态,而另外一台设备则处于发送请求帧的状态。这样它们就能在1、6、11其中的一个信道上相遇,为之后的建立连接做好准备。
下图2.2.1-1是扫描的过程
6
北京交通大学毕业设计(论文) 第 7 页
图2.2.1-1 WiFi-Direct的扫描过程
2.2.2 服务发现过程
服务发现过程是设备之间在发现对方的设备之后通过选择性的帧交换来进行的,服务发现过程的目的是获取对方设备能提供哪些服务,如Bonjour、UPnP、Web服务等。如果设备1已经成功地发现了设备2,那么设备1可以在任何时刻执行服务发现过程,如图1-2所示:而之后的小组建立过程是在服务发现过程进行完之后才进行的。
7
北京交通大学毕业设计(论文) 第 8 页
图2.2.2-1 WiFi-Direct的服务发现过程
8
北京交通大学毕业设计(论文) 第 9 页
2.2.3 小组建立过程
在小组建立的过程中,将决定进行连接的两台设备哪台是小组管理者,而且成为小组管理者的设备还将决定小组是永久型还是临时的小组。
小组管理者的协商要进行3步帧的交换过程。设备1会先向设备2发送一个管理者协商请求帧,请求帧包括的就是小组管理者意愿值,小组管理者的形成过程如图1-3所示。
图2.2.3-1 WiFi-Direct的小组协商过程
2.3 节点通信
WiFi-Direct的通信模块分为上层应用层、中间信息处理层以及下层传输层,以下是这三层通信模块的具体介绍:
1)上层应用层,设计为人机接口功能,为用户操作的各项功能提供承托平台,包含用户管理模块、消息管理模块、通知管理模块和文件管理模块。该层以简洁流畅的人机界面设计呈现给用户,便于用户快速调9
北京交通大学毕业设计(论文) 第 10 页
用所需功能,使用应用。
2)中间信息处理层,设计为信息处理功能,用于对传输信息进行诸如加密解密、CRC校验、数据压缩处理等功能。同时,该层还包含自定义的通信协议和网络发现服务协议的封装和解析还原功能。
3)下层传输层,设计为应用的信息传输功能,包含网络发现服务模块和传输管理等模块。通过合理选择TCP、UDP传输方案,将各种上层协议封装好的数据信息传输小组内其他设备,同时对接收的数据信息通过观察者模式告知上层应用框架,分发消息。底层硬件管理层,设计为Wi-Fi Direct管理功能,用于向wpa_supplicant进程发送相应命令,调用Wi-Fi Direct的各项功能,监听Wi-Fi Direct驱动通过wpa_supplicant发出的各种事件,再通过Android Intent广播机制告知上层框架。因此,操作Android系统底层Wi-Fi Direct功能的底层硬件管理模块是很关键的部分。
底层硬件管理层主要用于对本地Wi-Fi Direct硬件的调用和通信,是整个系统的核心也是上层部分功能实现的底层硬件基础,用于加载、激活底层Wi-Fi Direct硬件驱动,按需求操作Wi-Fi Direct各项功能,以及接收底层Wi-Fi Direct驱动的传出事件并通知上层应用执行相应处理。Android操作系统对Wi-Fi Direct功能的硬件驱动支持出现在Android 4.0及后续版本,由于Android系统为了维持API的稳定性以及对硬件访问权限的控制,Wi-Fi Direct的激活和关闭方式不同于传统的Wi-Fi操作,必须通过发送Action为_WIRELESS_SETTINGS的Intent,打开Wi-Fi设置界面启动或关闭Wi-Fi Direct功能,对于系统的独立性和便捷性、及用户体验都有极大的影响。为了能够实现直接激活和关闭Wi-Fi Direct底层硬件功能,本层采用Java反射机制,直接解析Android应用程序框架层中的wifip2pManager类,访问相应功能API。
10
北京交通大学毕业设计(论文) 第 11 页
3 Android 对Wi-Fi Direct的支持
3.1 简介
Android 4.1以上的系统对WiFi-Direct都有很好的支持,而且其他4.1一下的系统只需要升级到4.1以上也能享用WiFi-Direct这个功能,因为在硬件上没有额外的要求。它更多的是一种软件上的技术,这样就能满足不同的品牌的手机终端之间都能够通过WiFi-Direct很好地进行通信。
3.2 Android WiFi-Direct编程接口
3.2.1 类
Android为WiFi Direct提供了相应的类和接口,最主要的类有:
1. WifiP2pManager,这个类主要提供了管理设备连接的应用接口;
2. WifiP2pInfo这个类,主要提供的是关于Wi-Fi p2p 小组内的连接信息;
3. WifiP2pDevice这个类代表的是Wi-Fi p2p的具体设备;
4. WifiP2pDeviceList代表的是Wi-Fi p2p中的设备列表;
5.
WifiGroup代表的是Wi-Fi p2p中的小组。
11
北京交通大学毕业设计(论文) 第 12 页
3.2.2 接口
Android中为WiFi-Direct提供了许多接口,包括
1. Listener能实现对设备连接、取消连接、创建小组,移除小组、发现设备等的监听。
2. tionInfoListener能实现对当前连接情况的信息的监听,
3. nfoListener能实现对当面小组信息的监听。
除此之外安卓的API还提供了对于WiFi-Direct的意图进行处理,每当WiFi-Direct的连接情况发生改变或者用户扫描了附近的设备或者WiFi-Direct的功能被开启或者设备的具体信息发生改变如名字等意图的情况出现是,我们都能通过注册RECEIVER来对于这些情况做出应对。
4 相似技术分析与WiFi-Direct性能对比
4.1 无线Ad Hoc网络
Ad Hoc无线网络又称移动自组网、多跳网络或对等网,最初起源于20世纪70年代的美国军事研究领域,是一种特殊的在不借助中心管理的情况下,可以在有限范围内实现多个移动终端的临时互联,它为局域网内的移动通信网络提供了一种灵活的互联方式。Ad Hoc无线网络组网灵活、快捷、不受有线网络的影响,可广泛应用于军事通信、发生地震或水灾后的营救等无法或不便预先敷设网络设施的场合,具有广阔的发展12
北京交通大学毕业设计(论文) 第 13 页
前景。
Ad Hoc无线网络具有自身的特殊性,在组件实际使用的无线网络时,必须充分考虑网络的应用规模和扩展性,以及应用的可靠程度及实时性的要求,选择合适的网络拓扑结构。另外,由于Ad Hoc网络自身结构的特殊性,设计和组建网络时应充分考虑Ad Hoc无线网络的特点,有助于我们最大程度地发挥整个网络的工作性能。
WiFi Ad Hoc网络方面存在大量的研究。WiFi联盟曾经也对它寄予了厚望。可是,因为WiFi Ad Hoc网络设计的技术、协议过分复杂,而实际生活中对其的需求并不大,所以至今未得到主流手机操作系统的支持,限制了它的普及和发展。
4.2 Bluetooth
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。在2012年最新提出的蓝牙4.0将传统蓝牙技术、高速技术、低耗能技术集为一体。蓝牙4.0标准中对蓝牙进行了巨大的改进,较之以前的版本蓝牙4.0变得更加省电,成本更低,延迟更短,距离更远。功耗几乎降低了90%。蓝牙技术变得越来越成熟,在家庭娱乐、安全保障、物联网、医疗等领域有着成熟的应用。
13
北京交通大学毕业设计(论文) 第 14 页
蓝牙是一种大家耳熟能详的手机D2D通信协议,可是,蓝牙设计的重心在降低功耗上,在速率上要求不高。即使是4.0版本,其最高速度也仅24Mbps,而WiFi direct技术,随着WiFi技术的版本演进,有着不断增加的速度。比如目前得到广泛普及的802.11n WiFi技术,就具有数百兆Bit/s的传输速度。
4.3 手机热点分享
目前,以快牙为代表的各种手机文件互传的应用,都是基于手机热点分享,其实质一个手机作为热点,然后其他的手机加入到这个网络当中来,然后手机之间通过WiFi在这个网络中互相传递信息。该方案的好处是兼容性强,不支持WiFi Direct的手机也能实现手机文件互传和局域网内的信息交流和资源分享,但有着以下缺点:
1)手机只能通过用户手工扫描的方法,发现并加入附近热点,不能像蓝牙似的,扫描出周围的所有节点,然后建立点对点的通信。
2)即使有多台设备同时加入一个热点,目前的程序也存在如下重大限制,即:这些设备之间依旧不能互相通信,相反,任意一台终端只能先发送文件到作为热点的节点,然后由该热点节点对文件进行转发,让组内的所有成员都收到这个文件。因此,我们称之为:不具备D2D的真正通信功能。
4.4 LTE D2D
D2D(Device-to-Device)通信是由3GPP组织提出的一种在通信系统的控制下,允许LTE终端之间在没有基础网络设施的情况下,利用小区资源直接进行通信的新技术。它能够提升通信系统的频谱效率,在一定程度上解决无线通信系统频谱资源匮乏的问题。与此同时,它还可以14
北京交通大学毕业设计(论文) 第 15 页
有效降低终端发射功率,减小电池消耗,延长手机续航时间。
随着无线通信系统的不断演进,移动通信系统的频谱资源已逐渐满足不了无线通信的发展需求。为减小带宽供给和带宽需求之间的差异,如何有效地利用已有带宽成为现阶段亟待解决的问题。
在3GPP提出的LTE-A研究项目中,需要在LTE的基础上提供新的技术来满足IMT-Advanced的要求,提供更高的数据速率和系统容量。IMT- Advanced将提供高达100MHz的带宽来实现高速率传输,但这些带宽并不是连续的,采用载波聚合技术可以同时利用几段非连续频谱达到提高传输速率的目的。这些不断演进的系统允许利用D2D通信来提高频谱利用率,此外,D2D还带来多方面的好处:提高通信速率、减低蜂窝小区基站的负载、减少电池消耗、提高无线网络的QoS、提高网络基础设施的鲁棒性、提供一定区域内点对点数据传输服务。
LTE D2D的一大特点是:网络援助/指导的D2D,即无线网络能够在邻居发现,节点互联等各个阶段,介入节点之间的D2D通信过程。与此相对应的是:类似蓝牙,WiFi Direct是节点之间自组织的一个过程,不需要网络的干预,由此减少了对网络的依赖,简化了应用编程接口。
4.5 WiFi Direct与各种类似技术的细节比较
4.5.1 与Ad Hoc的比较
在Ad Hoc的网络中,终端如果已经连接到Ad Hoc的网络中了,那么它就不能同时保持对外部的因特网的连接,而WiFi-Direct在协议上的处理使得手机在通过WiFi-Direct进行点对点的通信的时候还能保持对互15
北京交通大学毕业设计(论文) 第 16 页
联网的连接,同时,Ad Hoc的功能在这种机会式的D2D连接或通信的应用场景下显得过于复杂,同时功耗也比较大。在目前终端的条件下难以得到大规模的应用,Ad Hoc的一整套体系在实际的D2D的应用中显得过于累赘。
4.5.2 与蓝牙的比较
WiFi-Direct与蓝牙二者有一脉相承的感觉,虽然它们在技术上有着很大的差别,但是它们的在扫描、匹配、连接、终端控制、文件传输等方面都有着十分相似的地方。但WiFi-Direct相对于蓝牙支持更大的范围以及更快的发送速率,这样WiFi-Direct的应用前景就显得更加的广泛,WiFi-Direct的理论最大速度为250Mbps,是蓝牙理论速度的十倍,在以后智能终端的电池发展变化达到一定的程度的时候,WiFi-Direct在设备终端间的视频通信或者应用这一个领域必定具有独一无二的优势。而且WiFi-Direct对于现在的智能终端都有良好的支持。
4.5.3 与基于热点的手机互联技术的比较
WiFi-Direct与利用手机建立热点来进行资源传输的功能看起来很相似,但是二者在一些层面有着本质的区别。WiFi-Direct的协议就是专门针对P2P这个概念而提出的,我们能通过这个它来实现附近设备的扫描、连接、加入小组等功能。那么在未来我们就能应用WiFi-Direct去实现类似蓝牙在设备控制,终端互联等功能。然而利用热点功能来进行资源传输的应用比如快牙,他们之间只能扫描到对方建立的无线局域网,无法清晰地区分附近的每一台具体的设备。假如要扫描到附近的所有设16
北京交通大学毕业设计(论文) 第 17 页
备,那么每台设备都建立一个热点,功耗是很大的。另一方面就算手机之间利用快牙等应用加入了一个群组,他们之间的资源分享都是通过建立热点的手机来进行分发,这个时候假如小组中的一个成员上传了一个资源到该小组中,那么这个资源会被建立热点的手机分发到每一个成员的手机中,很有可能有的小组成员并不需要该资源,但也被动地接收了,这就会造成资源的浪费,而WiFi-Direct由于能扫描到附近的所有设备,那么他们加入了一个小组之后,每一台设备都能有清晰的标识,组员之间仍能在组内实现仅限于2人之间的互传。更重要的是由于WiFi-Direct协议中定义了扫描、配对、连接等功能,使得WiFi-Direct未来能在终端间的设备控制方面能够大展身手,而不仅仅局限于文件传输。
4.5.4 与LTE D2D技术的比较
LTE-D2D是近年来提出的新技术,这个概念旨在通过终端之间的直连通信来提高网络系统中的频谱利用率以及传输效率。而WiFi-Direct能够利用它传输距离以及传输速度的优势在以后的4G或者5G的D2D领域得到广泛的应用。 因此,两者在技术架构上存在明显不同,在应用上是互补的关系。
4.6 WiFi-Direct性能评估
4.6.1待机功耗
我们选用一台华为智能机在相同的情况下测试WiFi-Direct与茄子快传(一款我们测试后发现性能优良的、基于WiFi热点的、非常流行的手机直连文件传输应用)的耗电差别。
17
北京交通大学毕业设计(论文) 第 18 页
我们对比手机分别使用WiFi-Direct处于待机状态以及茄子快传建立热点之后待机状态的耗电情况。我们分别测试了5组、每组10分钟的耗电的数据,发现这2个应用的组耗电情况存在差异,其每10分钟耗电对比结果如下图4.6.1-1所示:
图4.6.1-1 快传与WiFi-Direct每10分钟耗电对比
由上图可知,使用茄子快传是的每10分钟耗电约为3%;而使用WiFi-Direct时的每10分钟耗电只有2%,所以WiFi-Direct比茄子快传省电1/3。
4.6.2 WiFi-Direct与茄子快传和蓝牙的速度对比
由于现在市面上配备有蓝牙4.0的智能手机很少,所以我们基于我们手机的蓝牙3.0功能进行测试。
测试的是这三种方式在传输同一段视频的时间对比,选用的是一个13M的视频文件,测试得到的结果如下图4.6.2-1:
18
北京交通大学毕业设计(论文) 第 19 页
图4.6.2-1 茄子快传、WiFi-Direct、蓝牙的速度对比
由上图可知在传输13M大小的文件时,蓝牙的耗时在90秒左右,而WiFi-Direct的耗时在10秒左右,茄子快传的耗时在5秒左右,这说明WiFi-Diret与茄子快传的速度分别是蓝牙的9倍和18倍,证明了它们相对应蓝牙在速率上的优势。这里我们发现WiFi-Direct在速度上略逊于茄子快传。经过初步分析后我们发现这可能跟茄子快传采用特殊的应用层传输机制有很大的关系,我们后续将继续这方面的研究,改进WiFi-Direct的传输速度。
5 无线D2D通信中间件
5.1 需求
19
北京交通大学毕业设计(论文) 第 20 页
我们调研了目前市面上常见的Android手机直连文件传输应用,发现它们的一个重大缺陷,即:不能进行D2D之间的通信,而只能由手机与被选举为AP或Group Owner通信,然后由AP或Group Owner将收到的内容广播到所有节点。
我们首先以WiFi Direct为背景对此问题进行说明。WiFi-Direct在安卓系统的4.1以上的版本是支持的,但是在应用时我们发现安卓系统提供的API在非小组管理者的成员的功能上以及数据的路由上有严重的缺失,即:小组成员的MAC地址和IP地址之间没有直接联系。具体来说,每当设备终端启动WiFi-Direct的功能或应用的时候,每个终端都会广播自己的MAC标识、名称等。在手机进行WiFi-Direct的扫描之后会看到附近的许多具有该功能的设备,而且它们的MAC地址互相之间能被看到,但是在建立完连接,形成小组之后小组管理者的IP地址时每一个成员都知道的,而且安卓提供的API也有相应的调用语句来得到小组管理者的IP地址,但是其他小组成员的IP地址我们无法互相知道,那么很多时候小组成员之间相互不知道对方的IP地址,那么当他们需要互相传输文件的时候就被迫的通过小组管理者来进行传输。而且在我们在JAVA语言的函数中只能得到关于WiFi适配器的信息,而不能得到关于WiFi-Direct的适配器的信息,底层的LINUX内核也无法提供任何的帮助,Unix的地址解析协议也只是短期性地进行更新,也没法提供可靠的帮助。
尽管客户端的IP地址是由小组管理者通过DHCP过程进行分配的,但是android的API里面并没有提供这样的接口让我们来获得在WiFi-Direct的小组内给个组员的IP。那么由于这种缺陷使得小组范围内只有客户端能给小组管理者发送数据,而小组管理者却并不知道各个组员的IP,而其他的组员更加没法得到对方的IP。由于WiFi-Direct在应用层的这种缺陷,所以在接下来我们将提出一种机制使得加入WiFi-Direct小组20
北京交通大学毕业设计(论文) 第 21 页
的成员之间都能知道互相的IP地址,这个IP地址指的是加入小组后小组管理者为每一台机器提供的IP地址。
上述问题在快传等基于WiFi热点的手机文件互联应用中同样存在。具体表现为手机间不能进行D2D之间的通信,而只能由手机与被选举为AP通信,然后由AP将收到的内容广播到所有节点。我们尚未联系到这些应用的开发者,向其咨询为何其不支持该项功能。
5.2设计
5.2.1 小组管理者形成各小组成员的MAC/IP映射表
每当WiFi-Direct设备进行扫描的时候,都能扫描到附近设备的名字,MAC地址等,这个时候我们在程序中建立一个数据库,然后在数据库中建立一个包含mac/ip地址的一个表。当设备扫描完成的时候,我们就将它扫描到的设备的MAC地址存储到数据库里面,只是这个时候IP地址的那一列为空,因为此时设备之间仅仅进行了扫描还没有进行连接,小组管理者还没有进行DHCP的操作,所以此时IP为空。
接下来每当有设备进行连接的时候都会选出一个小组管理者,由于这个小组管理者接下来会充当类似AP的角色,所以它的IP地址的后三位为001,所以我们只需在建立连接后让非小组管理者的成员先提取出自己的MAC地址,然后发送到192.168.49.1,也就是小组管理者。然而在调试过程中我们会发现,这个非小组管理者的成员提取出来的MAC地址与小组管理者扫描到的该成员的MAC地址并不一致。因为当一台手机设备比如小组管理者既要与WLAN相连,又要在WiFi-Direct中充当角色的时候,它就需要2个MAC实体,而这两个MAC实体并不要求是物理实体,也可以使2个虚拟MAC的单一物理层实体。所以由于这21
北京交通大学毕业设计(论文) 第 22 页
个原因,本人在调试的时候会发现,我们利用JAVA的API得到的MAC会与设备之间扫描到的MAC可能会有1位地址时不一样的,比如在调试过程中用到的某台手机在WLAN的时候使用的MAC为:00:66:4b:11:e3:08,但是我们发现在WiFi-Direct设备扫描得到的该手机的MAC为00:66:4b:11:e3:09,最后的08变成了09。但是这种变化的规律在不同的安卓手机之间是不一样的,比如在调试的过程中用到的NEXUS
4手机的MAC是在倒数第4位发生了变化,而用到的三星手机是在MAC地址的顺数第二位发生了变化,所以这个并不具有一致的规律型。但是我们要形成一个WiFi-Direct环境下的MAC/IP的映射表,那么就必须使得设备从JAVA的API得到的MAC地址与扫描到的MAC地址进行匹配。所以接下来我们要介绍一种字符串匹配的算法——levenshtein。
Levenshtein距离又称为编辑距离,指的是一个字符串变化到另一个字符串所需要的最少编辑次数。比如从字符串“abc”变化到“abd”需要的次数为1 ,那么它们的编辑距离就是1,从字符串“a”变化到“abc”需要的次数为2,那么它们的编辑距离就是2。所以对于上面的MAC地址进行匹配的时候,由于他们最多只有一位会发生变化,所以当小组中的成员向小组管理者发送自己的MAC地址的时候,小组管理者会进行如下的操作
1:得到小组成员发来的MAC地址;
2:从该数据流提取出发来MAC地址的小组成员的IP地址;
3:将该MAC与小组管理者扫描到的MAC地址进行一一匹配,一旦发现又匹配得到的编辑距离小于等于1那么就更新匹配得到的MAC地址对应的IP地址;
所以进行完上面的操作之后我们就能对每一个加入该小组的成员的MAC和IP地址进行匹配和存储。
22
北京交通大学毕业设计(论文) 第 23 页
5.2.2 MAC/IP映射表的分发
当小组管理者更新了它的MA/IP映射表之后就得告诉其他的成员当前小组中小组成员的IP地址更新情况,这个时候我们将创建一个JSON的对象,将小组管理者中的MAC/IP的表中的数据取出来,放到这个JSON对象里面,然后小组管理者就能已字符串的形式将这些更新好的MAC/IP的数据发送出去。在这个发送的过程中有一些药注意的地方是,小组管理者只会将更新了的数据发送给连接进来的成员,而那些IP地址仍然为空的成员则不会存在于这个JSON的对象中。然后我们通过数据库语言得到目前小组管理者组内的所有组员的IP地址,然后调用发送函数依次为每一个组员发送由小组管理者数据库中数据组成的JSONLIST。
5.2.3小组成员形成自身映射表
小组成员收到小组管理者发来的JSON的数据之后,它们就从这些数据中将对象一个一个地提取出来,然后进行自己的数据库的更新,在更新的过程中,小组成员首先会做的事情是观察自己的数据库中有没有发过来的这个MAC地址,如果没有则表示该成员并没有扫描到该MAC地址的设备,那么它就不会进行更新,而当小组管理者发过来的MAC地址与小组成员本身的列表中的MAC能匹配的话,小组成员就会对这个MAC地址的设备进行IP地址的更新。这样每当有一个新的成员加入到某个小组的时候,小组管理者就能更新该成员的IP地址,然后分发给每一个成员之后就能进行使得每一个成员都能实时的更新出当前小组中每一台设备的MAC与IP地址。之后各个成员之间进行通信就只需使用TCP当中的Socket编程即可,不论是传送什么类型的文件都能顺利地进23


发布评论