《(15.1.6)--案例七:基于JXTA的无线D2D通信系统设计与实现.pdf》由会员分享,可在线阅读,更多相关《(15.1.6)--案例七:基于JXTA的无线D2D通信系统设计与实现.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于基于JXTAJXTA的无线的无线D2DD2D通信系统通信系统设计与实现设计与实现项目研发实例(七):项目研发实例(七):带宽资源不足社交对通信的需求增加D2D技术的应用减小小区网络的负载,增加蜂窝通信系统频谱效率系统研发背景:系统研发背景:D2D:Device to DeviceD2D 通信技术是终端用户在互相距离较近的情况直接连接进行通信,可以实现数据极高的传输速率和极低的传输延迟;D2D 通信技术是实现近距离通信,对发射功率要求很低,可以实现终端在低功耗情况实现正常通信,延迟电池的使用时间,节约能源的消耗;D2D 通信技术实现局部邻近终端用户之间的通信,发射功率极低,对整个蜂窝移动通信
2、系统的其他用户的影响很小,可以实现 D2D 通信用户与正常蜂窝通信用户之间的频谱的复用,获得更高的频谱利用率;D2D 通信技术服务的对象是网络中数量巨大分布广泛的终端用户,可以极大的增加蜂窝移动通信系统的有效覆盖范围,可以极大的提高蜂窝移动通信系统边缘用户的通信质量,增加蜂窝移动通信系统边缘通信吞吐量。D2DD2D通信技术:通信技术:传统蜂窝通信模型与D2D通信模型D2D簇通信系统模型蜂窝网络下的D2D建模技术硬性结合技术软融合技术D2DD2D通信技术:通信技术:D2D 通信的不同模式:通信的不同模式:下行频段共享:D2D 使用蜂窝的下行资源,系统间存在干扰;上行频段共享:D2D 使用蜂窝的上
3、行资源,系统间存在干扰;专用模式:D2D 设备与蜂窝 UE 各使用上行或下行资源一部分,系统间不存在干扰。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑JXTA是美国Sun公司向业界推出的较新技术。该技术的目的是为P2P的网络应用开发提供一个统一的平台,而且为了鼓励和支持该技术的发展,JXTA项目采用了开放源码的方式基于基于AndroidAndroid和和JXTAJXTA的的D2DD2D系统系统基于基于Android和和JXTA的的D2D系统设计与实现:系统设计与实现:三种网络拓扑结构:三种网络拓扑结构:集中目录式P2P模型纯P2P网络
4、模型分层式P2P模型基于基于Android和和JXTA的的D2D系统设计与实现:系统设计与实现:目标D2D系统是自动组织与维护的,不依赖于服务器,所以不采用集中目录式结构。但为了加快系统反应速度,完善节点管理与文件搜索,故分层式结构是较理想的结构。考虑到与JXTA协议的结合,设计D2D网络结构如下:其中上线的节点先向集合点RDV(即分层结构中的超级节点)请求加入网络。集合点反馈网络中的节点列表,并转发节点的上线消息。节点获得节点列表,存入缓存,就可以根据列表与其他节点通信。基于基于Android和和JXTA的的D2D系统设计与实现:系统设计与实现:基于基于JXTA的的D2D系统原理图系统原理图
5、软件层次结构:软件层次结构:D2D通信的软件实现与上述系统划分相对应,即包含网络配置、对等体发现、聊天、文件共享等主要模块,其次还包括用户界面模块。用户界面模块是系统与用户间的接口,用户通过用户界面向系统发送命令,系统根据命令处理完相应的内容后将结果显示在界面上。基于基于Android和和JXTA的的D2D系统设计与实现:系统设计与实现:本D2D系统以Wi-Fi为通信媒质,系统只要连接入同一网段的Wi-Fi网络即可互相通信。Android平台为调用Wi-Fi模块提供了调用接口,也可以通过接口查看系统是否已接入网络以及网络是否可用。网络配置界面:网络配置界面:文字聊天的实现:文字聊天的实现:1、
6、服务器端先运行,它获得NetworkManager和PeerGroup等对象,紧接着开始正式工作。2、然后调用语句:JxtaBiDiPipe bidipipe=serverPipe.accept();下面就可以使用这个JxtaBiDiPipe进行双向通信了。3、在客户端方面,同样,在JXTA平台启动后,自然也获得了NetworkManager和PeerGroup等对象。开始向服务器端发起连接请求。4、双方建立了连接后,就可以通过它们所共有的JxtaBiDiPipe的对象bidipipe进行通信了。当双方任何谁想要发送消息时,就先将要发送的消息封装成一个Message对象,然后通过语句:bidi
7、pipe.sendMessage(msg)发送给对方了。文件共享的实现:文件共享的实现:整个共享过程包含多次握手,这包括文件共享列表请求,文件共享列表,文件下载请求,下载的文件,上传的文件。所有这些信息都用pipemsg打包,且对pipemsg的equal属性设置不同值来区分不同的消息类型。1)对等体A向对等体B和集合点发送资源列表请求。请求信息用BaseMessage类或其子类实现。(2)集合点与对等体B均有用pipeMsgEvent实现的接口PipeMsgListener,每当有消息传送到输入管道的时候,事件被捕获。若捕获到的消息是共享列表请求,则集合点与对等体B通过doFileListR
8、equest()函数向A发送一个包含文件共享列表的消息。(3)对等体A通过自己的pipeMsgEvent接收到文件列表,并显示。用户选中感兴趣的文件并向对等体B发送文件下载请求。(4)对等体捕获下载共享文件的请求后,先分析出对方请求的文件名,随后利用doFileDownloadRequest()函数将指定文件流打包成BaseMessage,并发送给对方。(5)对等体A捕获包含下载文件流的消息后,先分析出下载文件的名字,然后存储到文件中。(6)对等体B与A握手后,调用fileTransfer()函数,以流的形式把文件传输给A,A也以流的形式接收文件,并通过File类及缓冲流把缓冲区的文件转换成磁盘中的文件。