基于Ad-hoc的Android手机多媒体通信开发与实现

2017-03-18 06:33朱丽平邓慧茹焦雄伟赵小兵
电视技术 2017年2期

朱丽平,邓慧茹,焦雄伟,赵小兵

(中央民族大学 信息工程学院,北京 100081)

基于Ad-hoc的Android手机多媒体通信开发与实现

朱丽平,邓慧茹,焦雄伟,赵小兵

(中央民族大学 信息工程学院,北京 100081)

为了评估基于Android手机的Ad-hoc多媒体通信在实际应用中的效果,基于Android OS 2.3.6开发了一套Ad-hoc自组织网络通信软件,能够实现无基站环境下手机之间通过多跳传输文本、图片以及语音数据。给出了软件整体功能用例图和关键通信模块的类图和流程图,对单跳和多跳传输时消息的正确接收率和耗电量进行了测试。结果表明,等数据量的不同类型消息在同等距离内的正确接收率差别不明显,文字的正确接收率最稳定,数据量较小时消息的多跳传输正确接收率比数据量大时高。发送端和接收端工作2小时11分耗电量分别占电池总电量的29%和24%。关键词: Ad-hoc网络;Android手机;多媒体通信

近年来,由于移动终端的实时便捷以及移动通信网络的覆盖,人们在生活中可以随时随地通信、上网。但是移动通信网络是有中心的,必须具备一定的网络环境如基站的支持才能实施。当处于边远山区、原始森林或者地下作业等情况下,没有移动通信网络基础设施,需要构建自组织的无线通信网络——Ad-hoc网络。Ad-hoc网络[1]又称为多跳网、无基础设施网或自组织网。这种网络不需要固定的网络基础设施,每个节点都是可移动的,动态地与其他节点保持联系,每个节点既是终端,也可以作为路由器转发报文。

Ad-hoc网络作为时下无线通信网络的热点,国内外学者对其体系结构、路由协议、安全性以及MAC协议等做了分析研究,并根据其特点将其与实际结合应用到生产生活领域中,例如医疗救护[2]、工业生产[3]、智能家居[4]、车载游戏[5]以及移动教育[6]等。文献[7]中提出了利用Ad-hoc网络实现智能手机间语音通信的设计思想,但是没有将思想付诸于实践。文献[8]中阐述了Ad-hoc网络在Android系统上的应用及文字通信功能的实现,消息的表现形式单一。在基于Android的Ad-hoc通信软件开发方面,将Android设备的WiFi模块配置为Ad-hoc模式可以实现基于WiFi的无中心点对点通信。文献[9]介绍了不同Android版本开启Ad-hoc功能的方法,在Ad-hoc无线网络IP地址设置方面采用了IPv6技术。众多研究实现了基于WiFi技术的Android设备Ad-hoc点对点通信[10-11]。文献[12]将Ad-hoc点对点无线通信网络与基于Internet的社会网络相结合,可以实现Internet用户与Ad-hoc用户之间的资源共享。文献[13]以Android模拟器为实现平台,采用了AODV路由协议,但其java源码非标准化。文献[12]按照RFC 3561国际标准规范对AODV的java源码进行了标准化,并将其移植到Android手机中实现了多跳文本通信。文献[14]介绍了基于WiFi Direct技术的Android手机Ad-hoc通信系统的实现,从论文中未能看出该系统在多跳路由建立与组网的验证和测试结果。本文在文献[14]研究工作的基础上进一步在Android手机上实现了集多民族语言文字、图片以及即时语音一体的多媒体通信,并在不同环境下对Ad-hoc多媒体通信的单跳和多跳性能进行了测试。

1 软件设计

1.1 总体结构设计

软件采用自底向上的分层结构设计,其总体框架如图1所示,共分为3层,底层为Ad-hoc库层,中间层为数据传输层,最上层为表示层。

图1 软件总体框架图

1)Ad-hoc库层

本文的工作重心为IPTV网络测试仪中以太网控制器的设计与实现,具体包含:MII/GMII接口时序仿真;10/100/1 000 Mbit/s以太网控制器算法设计与实现。Ad-hoc库层处于软件的最底层,该层分为Ad-hoc路由协议和数据传输协议两部分。其中路由协议负责建立Ad-hoc网络,数据传输协议的功能是为上层传送数据提供接口。

2)数据传输层

数据传输层介于Ad-hoc功能底层和应用层之间,向下调用Ad-hoc功能库的方法,向上通知表示层更新图形界面。具体而言,就是通过路由协议向已连接的目标节点发送数据,监听是否有消息到达,并根据接收消息的类型决定是否通知表示层更新界面。

3)表示层

表示层即软件的图形界面,包括聊天会话界面和联系人界面,会话界面显示发送和接收到的消息内容,联系人界面显示当前设备可达设备的IP。

1.2 软件功能设计

软件主要具备联系人功能和聊天功能。软件整体功能用例图如图2所示。

1)联系人功能

用户通过自动查找周围可连接设备,获得其IP,然后将这些IP加入到路由表中作为联系人。当原来可以连接的设备不可达时,删除该台设备,并更新路由表。

2)聊天功能

用户可以向联系人发送消息,也可以接收来自联系人的消息进行聊天。消息类型包括文本、图片和语音。文本可以是英、汉、藏、维、朝等多种民族语言文字、数字和字符,发送不同语言文字需要先嵌入相应的输入法。图片来自于本机拍摄和保存的图像,用户选择本机中已经存在的图片发送给联系人。发送语音消息时,需要先录制声音片段,然后将录制好的声音处理后发送,另一端接收到语音消息时,要先将数据解包处理后播放。语音消息聊天框图如图3所示。

图2 软件整体功能用例图

图3 语音消息聊天框图

2 多媒体通信功能的开发与实现

为了便于操作,设备IP地址前3位固定为:192.168.88,最后1位作为用户标识符。

Ad-hoc多媒体通信软件主要功能为聊天,分为发送和接收两部分。用户输入目标设备编号,该编号自动添加为IP地址的最后一位,组成完整的目的IP地址。启动连接按钮,设备连接成功,可以在路由表中查看可连接的IP地址。

2.1 Ad-hoc库

手机处于Ad-hoc模式中,非WiFi正常模式,会使电池消耗的很快,考虑到这一因素,本软件采用Ad-hoc的AODV(Ad hoc On-demand Distance Vector Routing,AODV)路由协议,快速准确地获取到达目标节点的路由。AODV路由协议是一种按需距离矢量路由协议[15-16]。节点向其他节点发送数据包,如果没有到达目的节点的路由,则该节点需以多播的形式发出PPEQ(路由请求)。邻居节点接收到RREQ,判断目的节点是否是自身,如果是则向源节点发送RREP(路由应答);如果不是,则查找是否有到达目的节点的路由,如果有则向源节点发送RREP,否则向其他节点转发RREQ。AODV路由协议通过定期广播hello报文维护路由,如果发现一条连接断开,导致出现不可达节点,则节点发送RERR(路由错误)通知这些不可达节点更新路由。AODV路由协议实现分为4部分,其类图如图4所示。其中Node类表示网络中节点,Sender类发送消息,Receiver类接收消息,RouteTableManager管理路由表。

由于本文中数据类型是文字、语音、图片这些普通类型的数据,即使丢失一两个数据包,也不会对接收结果产生太大影响,所以传输协议使用UDP协议。UDP是ISO参考模型中一种无连接的传输层协议,提供面向操作的简单非可靠信息传送服务[17],资源消耗小,传输速度快。

图4 AODV路由协议实现类图(截图)

2.2 发送

消息内容以字节数组方式存储,与Ad-hoc数据类型、消息发送的序列号以及消息类型组成字节数组。Ad-hoc功能库定义了7种数据类型,分别是路由创建失败(ROUTE_ESTABLISHMENT_FAILURE)、数据接收(DATA_RECEIVED)、数据发送成功(DATA_SENT_SUCCESS)、无效路由(ROUTE_INVALID)、路由创建(ROUTE_CREATED)、无效目的地址(INVALID_DESTINATION_ADDRESS)和数据大小超过最大(DATA_SIZE_EXCEEDES_MAX)。消息内容分3种,分别是文字、图片和语音。其中语音消息需要发送前创建MediaRecorder对象设置声音来源、音频文件格式以及音频文件的保存位置录制音频文件,然后调用文件输入流FileInputStream将录制好的音频文件读入字节数组作为消息内容,图片消息同语音消息一样,调用文件输入流将选择发送的本地图片读入字节数组。

初始化Ad-hoc数据类型为ROUTE_CREATED,点击发送按钮调用Ad-hoc库中Node类的sendData方法向目的节点发送消息。在Node类中实例化Sender,调用其queueUserMessageFromNode方法,将节点需要发送的消息加入到消息队列UserMessageFromNod中,然后在Sender中创建UdpSender,使用UDP协议向目的IP传送数据。数据传输流程图如图5所示。

图5 数据传输流程图

多次向同一目标节点发送消息时,为了使接收到的消息能够按发送的顺序排列,源节点需要为消息定义一个序列号,每次发送消息时都会为使用getNextSequenceNumber() 方法为下一条消息设置序列号。

2.3 接收

ReceiveMassage类实现Observer接口,负责监听节点是否有消息到达,类图如图6所示。当接收到消息时,ReceiveMassage会实例化一个MessageToObserver对象,获得其数据类型type并判断,当接收到的数据类型是DATA_RECEIVED时,证明消息接收成功,然后ReceiveMassage类调用getContainedData方法获得消息并处理,通知应用层更新聊天界面。

图6 ReceiveMassage类图

接收到的消息以字节数组形式存储,判断消息是文字、图片或者语音中的哪一类。截取接收到的字节数组的前10个字节,用String类中的split方法截取数组的第3个元素,判断其值,如果是“word”则在聊天界面上显示文字;如果是“imag”,则将字节数组的第10位后面的字节重新写入另外一个数组,然后使用文件输出流FileOutputStream将新的数组写入图片文件中,并在界面中显示该图片;如果是“voice”,则将字节数组的第10位后面的字节重新写入另外一个数组,然后将新的数组写入后缀为.amr的音频文件中,并在界面中显示该语音信息调用MediaPlayer 对象的start()方法播放信息。消息接收流程图如图7所示。

图7 消息接收流程图

3 运行测试

WiFi(基于IEEE 802.11b标准的无线局域网)具有多个工作模式,通常情况使用的是AP模式,也就是作为WiFi热点,其他用户以无线的方式接入构建LAN或WAN。Ad-hoc模式是WiFi的一种工作模式,但是原生的Android系统并不支持该模式[12],因此本文对Android系统中有关WiFi的文件进行了修改。首先确保手机获得root权限,然后在关闭WiFi的情况下修改/system/etc/wifi/tiwlan.ini文件,打开WiFiAdhoc,在/system/etc/wifi/wpa_supplicant.conf文件中新增一个Ad-hoc节点,最后删除/data/misc/wifi/wap_supplicant.conf文件。

本文使用Android 2.3.6版本MOTOROLA defy(ME526)手机分别测试了在不同距离、不同环境、不同类型消息的传输效率,用消息正确接收率表示传输效率。距离测试采用Leica DISTO D3a测距仪。

3.1 单跳测试

取2部上述手机,在图8a所示楼内由一部手机向另一部手机发送1 000条消息,测试消息的正确接收率。发送的消息包括文本、声音和图片。图8b给出了3种消息的数据量大小相同情况下(均为10 kbyte),两部手机分别相距10 m、20 m、30 m、40 m和50 m时的单跳测试结果。图8c给出了同一距离(40 m)情况下,数据量大小分别为5 kbyte、10 kbyte和20 kbyte时的单跳测试结果。

图8 楼内单跳测试结果

图8b表明,等数据量的不同类型消息在同等距离内的正确接收率差别不明显,文字的接收率相对于其他两种消息类型更加稳定。图8c显示当消息携带的数据量增大时消息的正确接收率会呈现下降趋势。通常情况下,按数据量从小到大对消息类型排序依次是文字<语音<图片,所以消息的正确接收率也会根据消息类型变化。在林荫道以及操场进行同样的测试也可得出类似的结论。

3.2 多跳测试

取5部手机IP分别设置为192.168.88.1、192.168.88.2、192.168.883、192.168.88.4、192.168.88.5依次命名为A、B、C、D、E。在室内使用A手机向其他4部手机分别发送1 000次消息,其中C、D、E手机通过多跳接收到消息,消息传输路径如图9所示。为了测试接收到的消息是经过多跳传输的,在实验中A手机需要屏蔽掉C、D、E手机;B手机屏蔽掉D、E手机;C手机屏蔽掉A、E手机,以确保其接收到的消息是通过B手转发,而非A手机直接发送;D手机屏蔽掉A、B手机;E手机屏蔽掉A、B、C手机。测试所用的文本、声音和图片数据量大小分别为12 kbyte,2.8 kbyte和29 kbyte。

图9 多跳消息传输路径

虽然由于无线信道的时变性,使得每次测试结果都不完全相同。但多次测试结果都表明,当A手机不能直接向C、D、E手机发送数据时,可以通过中间手机多跳转发。图10显示的是某一次的测试结果。显然,数据量较小时消息的多跳传输正确接收率比数据量大时高。与现有的基于中心控制的广域4G移动网络相比,Ad-hoc网络采用了完全不同的通信模式,移动终端之间通过自组织形成局域网,无需控制中心,通过终端之间的协同实现多跳传输。在发生自然灾害基础设施毁坏时,如果能够将手机切换为Ad-hoc多跳工作模式,则可以方便在人们之间广播救助信息,与业余无线电通信设备的使用相结合,还可以实现与外界的信息交流。

图10 多跳测试结果

3.3 手机耗电量测试

手机电池容量为1 650 mAh,实验开始2小时11分后,发送端手机运行该软件耗电量为478.5 mAh,耗电量占电池容量的29%,接收端手机在该软件上的耗电量为396 mAh,占电池容量的24%。从测试结果来看,尽管在功率受限情况下,Ad-hoc多跳通信模式在小数据量或文本传输方面仍具有较高的准确性,可用于群组成员之间环境感知信息如位置信息、各种手机传感器信息等的传递,也可以作为自然灾害发生时传递呼救信息的一种应急通信方式。国内外众多5G研究者都将Ad-hoc模式列为未来网络的需求之一,中国IMT-2020网络工作组提出了低功耗大连接场景的需求[18],这是传统4G移动网络难以企及,而Ad-hoc网络可望大有作为的应用领域。

4 结束语

Ad-hoc多媒体通信软件克服了传统移动通信网络需要一定网络基础设施的弊端,使用该软件可以在没有移动通信网络信号或者信号被屏蔽的地方实现文字、图片以及语音通信,有较高的实用性。目前软件还有很多地方需要改进和提高,比如可以增加视频功能、定位功能等,成为一个比较全面的通信工具软件,另外,修改了手机配置文件后的Ad-hoc网络并不稳定。同时软件在安全性上也有一些缺陷,Ad-hoc网络采用的是开放的无线信道,容易被窃听和拦截,今后需要继续研究Ad-hoc网络的加密和解密算法。

[1] BORGONOVO F, CAPONE A, CESANA M, et al. ADHOC: a new, flexible and reliable MAC architecture for ad-hoc networks[C]Proc. //2003 IEEE Wireless Communications and Networking Conference. New Orleans, Louisiana, USA:IEEE, 2003:965-970.

[2] 康乐,江国泰,王新红.Adhoc网络及其在医疗救护领域的应用[C]// 2005年上海市生物医学工程学会学术年会论文集.上海:中国学术期刊(光盘版)电子杂志社有限公司,2005.

[3] 戴琦琦.AdHoc网络在工业环境中的应用研究[D].广州:华南理工大学,2013.

[4] 周亦敏,朱李辉.Ad hoc网络在智能家居中的应用研究[J].通信技术,2008,41(12):271-273.

[5] TONGUZ O K, BOBAN M. Multiplayer games over vehicular ad hoc networks: a new application[J]. Ad Hoc networks,2010,8(5):531-543.

[6] MOHAMMED A,TANWEER A.Design an M-learning framework for smart learning in Ad Hoc network of Android devices [C]//2015 International Conference on Intelligent Information Hiding and Multimedia Signal Processing (IIH-MSP). Adelaide, Australia: IEEE,2015:1-5.

[7] 林秋鹏.基于Ad Hoc网络的智能手机语音通信系统设计[J].电脑知识与技术,2012,8(1):81-83.

[8] JRADI R K, REEDTZ L S. Ad-hoc network on Android[J]. Technical university of Denmark Kgs Lyngby, 2010(1):245.

[9] LIN W Y, HSUEH K-P, PA P-S. The development of emergency communication APP using ad hoc network with IPv6[C]//The Eleventh International Conference on Intelligent Information Hiding and Multimedia Signal Processing. Adelaide, Australia:IEEE,2015:41-44.

[10] 孟祥龙,刘敬浩.一种基于Android 平台的Ad hoc通信系统的实现[J].信息技术,2015(9):95-97.

[11] ALAM T, ALJOHANI M. Design and implementation of an ad hoc network among android smart devices[C]//2015 International Conference on Green Computing and Internet of Things (ICGCIoT). Greater Noida, India:IEEE,2015:1322-1327.

[12] ZHANG D Q, XIONG H Y, VASILAKOS A V. BASA: building mobile ad-hoc social networks on top of android[J]. IEEE network, 2014,28(1): 4-9.

[13] 李芳.基于Android 的多跳无线网络通信软件的设计与实现[D].武汉:华中科技大学,2010.

[14] 陈明.基于Android的Ad-hoc网络多跳通信的研究与实现[D]. 北京:中央民族大学,2015.

[15] 王丹.Ad hoc网络移动模型研究[D].西安:西安电子科技大学,2009.

[16] 刘元安,唐碧华,胡月梅.Ad hoc网络中的路由算法[J]. 北京邮电大学学报,2004,27(2):1-7.

[17] 赵飞,叶震.UDP协议与TCP协议的对比分析与可靠性改进[J].计算机技术与发展,2006, 16(9):219-221.

[18] 王胡成,徐晖,程志密,等.5G 网络技术研究现状和发展趋势[J].电信科学,2015(9):1-7.

朱丽平(1970— ),女,硕士生导师,主要研究方向为移动互联网应用;

邓慧茹(1994— ),女,硕士生,主研Android软件开发与应用;

焦雄伟(1994— ),本科生,主研通信网测试;

赵小兵(1967— ),女,博士生导师,主要研究方向为自然语言处理及网络应用。

责任编辑:闫雯雯

Ad-hoc network-based multimedia communication development and implementation with Android smartphone

ZHU Li ping, DENG Huiru, JIAO Xiongwei, ZHAO Xiaobing

(InformationEngineeringCollege,MinzuUniversityofChina,Beijing100081,China)

To evaluate the effect of the Ad-hoc multimedia communication with Android smartphone in practical applications, a set of communication software with Ad-hoc self-organized network is developed using Android OS 2.3.6. It is capable of transferring text, image and speech data via multi-hop between smartphones without the base station. The use case diagram of the system function and the class diagram and the flow diagram of the key communication modules are given. Tests are conducted on correct reception rate of messages on single-hop and multi-hop conditions and the power consumption of the software. It is found that correct reception rate for different messages within the same range and with equal data size shows little difference. The correct reception rate for text is the most stable among the three, and the correct reception rate for messages with small data size is higher than that with large data size. The power consumption of the software in the sending phone and the receiving phone is 29% and 24% of the total battery power, respectively.

Ad-hoc network; Android smart phone; multimedia communication

朱丽平,邓慧茹,焦雄伟,等. 基于Ad-hoc的Android手机多媒体通信开发与实现[J].电视技术,2017,41(2):28-34. ZHU L P, DENG H R, JIAO X W, et al. Ad-hoc network-based multimedia communication development and implementation with Android smartphone[J]. Video engineering,2017,41(2):28-34.

TP393.1

A

10.16280/j.videoe.2017.02.007

国家自然科学基金项目(61331013);中央民族大学“一流大学一流学科”软件工程学科建设项目

2016-06-02