基于android的点对点(P2P)通信—开题报告

更新时间:2024-06-05 22:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

燕 山 大 学

本科毕业设计(论文)开题报告

课题名称:基于Android的点对点通信 学院(系): 里仁学院(电子工程系) 年级专业: 09级电子信息工程 学生姓名: 刘迎迎 指导教师: 张涛 完成日期: 2013年3月28日

一、综述本课题国内外研究动态,说明选题的依据和意义

Peer-to-Peer(P2P)网络毫无疑问是当今的热点技术主题。Napster和Gnutella的广泛使用证明了P2P应用的强大潜力。随着P2P网络技术的发展,利用P2P 即时网络技术在通讯平台中的应用越来越广泛,P2P 技术改变了传统的服务器客户端(C/ S) 的交流模式,使得利用网络开展即时通讯成为可能。利用P2P 即时网络技术可以有效的减少通讯费用,且具有较高的传输效率,相比于传统的BBS、电子邮件等通讯方式,提高了用户之间的互动性。

国外开展P2P研究的学术团体主要包括P2P工作组(P2PWG) 、全球网格论坛(Global Grid Forum ,GGF) 。P2P工作组成立的主要目的是希望加速P2P计算基础设施的建立和相应的标准化工作。P2PWG成立之后,对P2P计算中的术语进行了统一,也形成相关的草案,但是在标准化工作方面工作进展缓慢。目前P2PWG已经和GGF合并,由该论坛管理P2P计算相关的工作。GGF负责网格计算和P2P计算等相关的标准化工作。

从国外公司对P2P计算的支持力度来看,Microsoft公司、Sun公司和Intel公司投入较大。Microsoft公司成立了Pastry项目组,主要负责P2P计算技术的研究和开发工作。目前Microsoft公司已经发布了基于Pastry的软件包SimPastry/ VisPastry。Rice大学也在Pastry的基础之上发布了FreePastry软件包。

在国内,Maze 是北京大学网络实验室开发的一个中心控制与对等连接相融合的对等计算文件共享系统,在结构上类似Napster,对等计算搜索方法类似于Gnutella。网络上的一台计算机,不论是在内网还是外网,可以通过安装运行Maze的客户端软件自由加入和退出Maze系统。每个节点可以将自己的一个或多个目录下的文件共享给系统的其他成员,也可以分享其他成员的资源。Maze支持基于关键字的资源检索,也可以通过好友关系直接获得。

Granary是清华大学自主开发的对等计算存储服务系统。它以对象格式存储数据。另外,Granary设计了专门的结点信息收集算法PeerWindow的结构化覆盖网络路由协议Tourist。

AnySee是华中科大设计研发的视频直播系统。它采用了一对多的服务

模式,支持部分NAT和防火墙的穿越,提高了视频直播系统的可扩展性;同时,它利用近播原则、分域调度的思想,使用Landmark路标算法直接建树的方式构建应用层上的组播树,克服了ESM等一对多模式系统由联接图的构造和维护带来的负载影响。

Android是Google公司于2007年11月5日推出的手机操作系统,经过几年的发展,Android平台在智能移动领域已经占有不小的份额,由Google为首的40多家移动通信领域的领军企业组成开放手机联盟(OHA)。目前,国内外对在Android平台下开发应用程序的热情很高,开发Android平台下的即时通信软件也层出不穷,其中涌现了许多有价值的开源社区以及一些第三方做的框架,例如: beem-project.com,Android Asmack等等,这对于完成Android平台下的即时通信软件有着阶段性的贡献,还有许许多多Android爱好者在一些论坛和博客中,例如最有名的CSDN,共同交流和完善中这个Android即时通信系统,给用户的体验也越来越好;这也吸引了越来越多的人投身到对Android软件开发的研究当中,因为它是开源的,因为它有许许多多的志同道合的人能够进行交流,并且从中获取经验和进步;深深地被吸引后,我也怀着对Android平台学习的热情,看中这个行业的发展,想在这个领域有所发展,于是我选择了开源项目比较丰富,对于个人来说实用性比较强的即时通信系统的研究,并想借用P2P技术实现数据网络通信系统软件的设计与测试;希望通过对此设计研究过后,能够完成对Android平台及P2P技术有个整体的学习和掌握,掌握开发Android程序的流程,Android平台下的程序设计模式以及对Android程序框架,内核有个基本认识,为以后更深入的研究打好基础。

我选择的设计项目是“基于Android的点到点通信”,基于p2p的即时聊天和文件传输软件的实现能够帮助我们了解基于p2p的软件的实现原理和过程,为我们以后开发一些大型的p2p的软件提供了技术上的保证。同时该软件能够用于局域网的通信和传输文件,具有一定的实际意义。我选择此课题的目的在于想充分运用自己学过的知识,和锻炼自己综合学习的能力,为以后做更深入的研究、发展和就业创造良好的条件。 二、研究的基本内容,拟解决的主要问题

在Android手机如此流行的潮流推动下,本课题主要介绍了实现一个

Android平台的通信系统的简易设计,系统主要是不借助第三方服务器,利用P2P方法基于数据网络的通信,实现客户端之间的通信功能,提供好友的实时状态,实现移动终端设备与PC端的互通,使用户可以通过手机移动终端的即时通信系统的客户端随时随地与他人进行即时消息通信。 Android是基于Linux操作系统和Java面向对象编程语言的智能手机操作系统平台;P2P是一种分布式网络,网络的参与者共享他们所共有的硬件资源(处理能力、储存能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能够被其他对等节点(Peer)直接访问而无需经过中间实体。

于是研究的基本内容包括:熟悉并掌握android开发的基本技能,能够运用Android SDK及其开发工具,在Eclipse集成开发环境中设计实现一个在Android平台下,不借助第三方服务器利用P2P方法的数据网络通信,至少可以实现用户之间文本的发送与接收。

拟解决的主要问题:(1)P2P系统与传统的C/S系统有着不同的拓扑结构,C/S系统拓扑结构多为集中式,而P2P系统则为分布式。P2P系统在构造过程中需要解决系统中所包含的大量结点如何命名、组织以及确定结点的加入/离开方式、出错恢复等问题。

(2)由于用户对网络的应用要求日趋多样化, 设计中要考虑到系统的易扩展性问题。

(3)设计UDP包通过NAT网关过程中,由于本系统基于P2P网络, NAT的存在主要给该系统带来了如下问题:① 内网主机的IP地址是虚拟的, 不能在In ternet上通信, 因而内网主机对外网通常是不可见的。② 即使内网主机的IP地址已知, NAT 仍然阻止外网主机主动访问内网主机。③ 内网主机可以作为客户机访问外网, 但不能作为服务器向外网提供服务。

(4)由于文件传输对可靠性、准确性要求较高, 故要解决系统在文件传输模块的可靠性和准确性问题。

(5)UDP协议是一种不可靠的传输方式, 它不能保证数据安全无误地到达对方。

三、研究步骤、方法及措施

1、文献研究:通过对参考文献的阅读与研究,熟悉P2P数据通信,掌握其基础原理和通信系统的工作原理。

2、Android开发软件学习:通过相关书籍,熟悉并掌握android开发的基本技能,能够运用Android SDK及其开发工具,在Eclipse集成开发环境中创建工程,并掌握工程内各个文件的功能及其运用,方便以后的程序编程工作。

3、聊天程序功能的实现:进行程序编写,实现聊天系统各个模块的功能。本系统采用层次结构模型, 这样既符合现代软件工程的思想, “分而治之”, 又使得每一层次完成的任务相对独立, 层与层之间通过定义明确的接口进行交互, 便于系统维护与扩展, 并且有利于复用已经存在的部件,从而提高开发效率。

主要功能:客户端功能主要包括用户注册、登录、离线、消息发送、文件发送及好友详细信息查看。服务器端功能主要包括接受用户注册、接受用户登录和接受用户离线。

整个过程主要包括:

(1)网络通信功能设计与实现:本系统中客户端与服务器端的两个网

络通信类CC lientSocket与CServerSocket均为CA syncSocket的派生类。由于本系统采用数据报套接字,因此在结束段,CAsyncSocket的成员函数OnReceive(int nError Code)负责接收来自各个节点的消息, 然后根据消息的类型, 进行不同的处理。

(2)用户界面设计与实现:本系统通过一个类CU serOn lineInfo 来管理在线用户的地址信息, 它包括一个U serInfo结构的数组来记录在线用户的地址信息, 并且定义了添加、删除、查询等操作。主界面中的头像顺序与该U serInfo 数组的顺序一致, 即界面上第一个头像的地址信息由UserInfo数组的第一项来记录。用户选择要进行聊天的好友的头像, 系统根据用户选择的头像的顺序号来查询地址信息列表, 得到对方的IP地址与端口号,从而与对方实现通信。

(3)UDP包通过NAT网关:本系统采用如下方法:① 服务器设置于具有合法IP地址的主机。② 服务器提取客户端发来数据的源地址作为通信的地址, 并将提取的地址与客户端发来的地址相比, 若不同则说明该主机经过了地址转换, 为NAT 后的主机。③ 服务器将转换后的IP地址与端口号通知NAT后的主机, 该主机收到通知消息后则定期向NAT发送消息以保证端

口映射关系不被解除, 该消息的目的地址为服务器发来的通知消息中的转换后的IP地址与端口号。

(4)文件传输功能设计与实现:本系统的文件传输模块采用了流式套

接字, 通过TCP的可靠传输机制来确保文件传输的正确性, 但文件传输进行前发送方与接受方的一些协商信息还是采用数据报套接字。

(5)UDP 可靠传输机制的实现:本系统在应用层要增加可靠性控制机制, 具体做法是仿照TCP协议采用超时重传的策略。

4、对软件测试结果进行分析,得出P2P技术存在的主要优缺点。 四、研究工作进度

第1—2周:通过Android相关书籍及网上相关视频学习,熟悉并学会运用Eclipse进行Android环境搭建。

第3—4周:查找资料,熟悉课题内容,完成开题报告与文献综述。 第5—6周:学习Java、Android等相关基础知识,初步完成系统的设计流程。

第7—8周:分析基于Android平台的P2P数据通信系统的开发过程,进行聊天系统基本功能的实现。

第9—10周:必要情况下进行扩展功能研究与实现。

第11—12周:完成整个程序的编制,并进行程序调试与优化。 第13—15周:研究结果整理和总结。

第16—17周:书写毕业论文,课题总结答辩。 五、主要参考文献

1、王家林. Android 4.0网络编程详解. [北京:电子工业出版社],2012.01

2、孙玉钰. 基于P2P网络的聊天系统的研发. [吉林长春:长春大学计算机科学技术学院],2006.02.10

3、蔡立维. 基于Android平台的简易即时通信设计与实现. [武汉理工大学 毕业设计(论文)],2012.

4、基于Java即时聊天系统的设计与实现. [内江师范学院 本科毕业论文],2011.09

5、高明鹏. 基于XMPP协议的Android手机即时通信应用研究与实现.

[南昌大学 硕士研究生学位论文],2012.06.05

6、关峪. 基于P2P技术的即时通信系统研究与实现. [北京交通大学 硕士学位论文],2006.11

7、江凤莲. P2P技术综述. [福建:龙岩学院 数学与计算机科学学院],2011.01

8、赵振铎. P2P即时网络技术在通信平台中的应用. [内蒙古牙克石市联通公司],2010.08

9、结构化P2P网络资源定位模型相关研究. [豆丁网],2012.11 10、孙馨梅. 对多种即时通信系统开发技术的简要探讨. [黑龙江哈尔滨:黑龙江电信国脉工程股份有限公司],2009.

11、李清河. 对即时通信系统开发相关技术的研究. [北京艺华通电信工程有限责任公司],

12、基于p2p的即时聊天和文件传输软件. [百度文库],2012.08

六、指导教师意见

指导教师签字:

年 月 日

七、系级教学单位审核意见:

审查结果: □ 通过 □ 完善后通过 □ 未通过

负责人签字:

年 月 日

本文来源:https://www.bwwdw.com/article/eoh6.html

Top