基于P2P的实时流媒体系统设计(邮电学院论文)

上传人:沈*** 文档编号:44681322 上传时间:2021-12-05 格式:DOC 页数:45 大小:618.02KB
返回 下载 相关 举报
基于P2P的实时流媒体系统设计(邮电学院论文)_第1页
第1页 / 共45页
基于P2P的实时流媒体系统设计(邮电学院论文)_第2页
第2页 / 共45页
基于P2P的实时流媒体系统设计(邮电学院论文)_第3页
第3页 / 共45页
点击查看更多>>
资源描述
西安邮电学院 毕 业 设 计(论 文)题 目:基于P2P的实时流媒体系统设计系 别: 计算机科学与技术系 专 业: 网络工程 班 级: 网络工程0501 学生姓名: 冉奇凡 导师姓名: 谢晓燕 职称: 副教授 起止时间:2009年 3月2日 至 2009年 6月12日西 安 邮 电 学 院毕业设计(论文)任务书学生姓名冉奇凡指导教师谢晓燕职称副教授系别计算机科学与技术专业网络工程题目基于 P2P的实时流媒体系统设计 任务与要求传统的流媒体系统建立在客户/服务器模式的基础上,网络带宽有限,稳定性差,系统伸缩性差,服务器常常成为系统的瓶颈。而P2P技术在充分利用客户资源、提高系统伸缩性等方面具有巨大的潜力。本课题在研究基于P2P的传输系统技术的基础上,设计基于P2P的流媒体传输模型,主要工作有:1. 学习P2P网络结构;2. 研究P2P系统的网络架构、数据传输机制及网络搜索策略等关键技术;3. 基于JXTA技术尝试对系统框架进行搭建和验证;4. 研究流媒体工作原理,探讨与仿真系统的对接思路。西安邮电学院毕业设计(论文)开题报告 计算机科学与技术 系 网络工程 专业 2005 级 0501 班课题名称:基于P2P的实时流媒体系统设计 学生姓名: 冉奇凡 学号:04053068指导教师: 谢晓燕 报告日期: 2009-3-10 1本课题所涉及的问题及应用现状综述近年来由于网络技术的迅猛发展,互联网的应用表现更加多元化。随着web3.0的推广和普及,多媒体在网络互联平台上的表现受到越来越多的重视和探讨。人们在网络平台上的娱乐形式也日渐增加。传统的媒体形式及媒体传输形式已经不足以满足如今应用的需要。因此,流媒体技术现已成为主流方向,并在多方面得到发展。成为现在网络互联中媒体传输的一种高效解决方案。C/S模型是一种传统的媒体数据传输模型,但这种服务系统存在较大带宽瓶颈,已不能满足大规模的流媒体数据的传输要求。而P2P(Peer-to-Peer)技术的出现改变了以前以服务器为中心的传统数据传输模式,从根本上解决了C/S服务系统存在的缺陷。它充分挖掘了Internet上的空闲资源,在利用率,扩展性等方面都具有很大的优势,并且在大型文件共享、分布式计算、协同工作、网络存储等方面有很好的应用前景。本课题讨论并研究的主要问题是,分析研究P2P技术及该技术下流媒体数据传输的应用,设计并实现一个基于P2P技术的传输服务系统。通过搭建P2P传输平台,研究流媒体数据的实时高效传输。2本课题需要重点研究的关键问题、解决的思路及实现预期目标的可行性分析本课题重点研究分为以下几点:1.研究P2P传输技术的相关理论,包括P2P网络构架模型、P2P网络数据传输机制、流媒体的传输方式等。2.对基于JXTA的P2P网络开发包Jxse-LIB进行详细的研究,比较全面的分析和掌握基于JXTA进行P2P相关应用的系统开发技术。3.设计和实现一个基于P2P技术的文件传输系统。4.在此基础上探讨系统对流媒体传输的扩展思路。解决思路:整个课题的解决思路由浅至深,通过分析和研究现在主流的P2P传输模型,掌握相关的理论基础。实践操作并熟悉基于JXTA的P2P网络开发包Jxse-LIB的开发环境。最后通过实践分析和研究,设计并实现基于P2P技术的传输服务系统。可行性分析:本课题基于JXTA的P2P网络开发包Jxse-LIB,高效模拟P2P的传输环境,在小型实验范围内实现P2P模型的文件传输。3完成本课题的工作方案毕业设计开始日期:2009年3月2日毕业设计完成时间:2009年6月12日课题初期通过查阅资料分析研究P2P模型及传输模式。流媒体的主流技术及解决方案。掌握基本的理论基础。中期基于JXTA的P2P网络开发包搭建开发环境。进行环境测试及基本设置,为后期设计传输模型做好环境准备。后期通过研究和学习,设计并搭建P2P传输模型,通过实验实现P2P形式的数据传输。本方案建立在大量基础信息材料和良好的开发环境下。因此前期参考大量相关文章及数据。由于多数应用平台为windows操作系统,因此选用基于JXTA的P2P网络开发包Jxse-LIB进行环境搭建及测试。保证课题的研究计划顺利完成。4指导教师审阅意见 资料阅读广泛,题目理解正确,研究思路明确,设计方法可行。准备充分,同意开题。指导教师(签字): 年 月 日说明:本报告必须由承担毕业论文(设计)课题任务的学生在毕业论文(设计) 正式开始的第1周周五之前独立撰写完成,并交指导教师审阅。目 录摘要IAbstractII1 绪论11.1 课题研究背景11.2 国内外研究现状11.3 论文研究内容及结构安排22基于P2P环境下的传输技术理论42.1 P2P传输技术的起源发展及定义42.2 P2P传输技术的基础及原理52.3 P2P环境下流媒体传输模型及原理62.4 P2P系统与传统C/S系统的比较93 JXTA环境下P2P传输环境的搭建与配置113.1 JXTA概述113.2 JXTA环境中P2P原理的实现及协议的定义123.3 JXTA环境下P2P传输模型的设计133.4 JXTA中流媒体传输原理及实现方法194 传输系统的设计及测试214.1 Delphi7环境下传输系统的搭建214.2 传输测试及报告275 流媒体传输模块在P2P系统中的应用306总结33致谢34参考文献35I摘 要近年来,随着互联网多媒体应用的迅速壮大,传统服务器/客户端的传输模式所存在的服务器链路瓶颈成为制约产业发展的严重障碍。而P2P模式是解决该问题的理想模式,基于P2P技术的流媒体系统由于具有强大的可扩展服务能力,为构建大规模流媒体传输系统提供了一种低成本的解决方案。首先,这种技术并不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;第二,在这种技术中,流媒体用户不只是下载媒体流,而且还把媒体流上载给其他用户。因此,这种方法可以扩大用户组的规模,并且更多的需求也带来了更多的资源。本论文通过P2P的基础理论研究,首先对P2P的传输原理进行了详细分析。并对传统C/S传输模型与P2P传输模型进行对比分析,重点研究了现行的主流P2P传输解决方案和基本模型。在此基础上,基于JXTA技术设计和实现了P2P传输环境,并应用Delphi7开发了P2P传输系统,实现了P2P环境下的数据传输过程。此外,还在理论方面探讨研究了在JXTA中嵌入流媒体数据的原理及方法。讨论P2P环境下的流媒体数据的实时传输原理。关键词:P2P 流媒体 传输 JXTA IIAbstractIn recent years,with the rapid growth of multimedia applications on the Internet, the bottlenecks in the server transmission link of traditional server / client model has become a serious obstacles which restrict the development of related industrial. The P2P transfer model is an ideal model to solve this problem. P2P-based streaming media technology systems can be powerful because of its ability to expand services, which provides a low-cost solution on build a large-scale streaming media transmission system. Firstly, this technology do not need the support of Internet router and basic network facilities, therefore more cost-effective and easy deployment. Secondly, with this technology, the user of streaming media do not just download the resources of streaming media, but also upload these resources to other users. Therefore, this approach can expand the size of user group, and more demand brings more resources.In this paper, we begin with the basis of the theory of P2P, firstly do a detailed analysis on P2P transmission principle. And do the comparative analysis on the traditional C/S transmission model and P2P transmission model, focus on the mainstream of the current P2P transmission solutions and the basic model. On this basis, use JXTA technology to design and implement a P2P transmission environment, and use Delphi7 to build a P2P transmission system, to achieve a data transfer process in P2P environment. Besides, to explore in theory of how to make streaming media data transmission nested into the P2P environment. Discuss the principle of real-time streaming media transmission in P2P environment.Key Words:P2P Streaming media JXTA Transmission基于P2P的实时流媒体系统设计1 绪论1.1 课题研究背景自互联网诞生以来,以网络为平台的各种信息交换形式在不断地发展更新。随着宽带网络的逐渐普及,更大信息量、更多元化信息形式的数据也逐渐占居网络互联的主导地位。当今,互联网的信息已成为集视频、音频、文本、动态资源和各种其他形式数据为一体的多媒体数据通信时代。流媒体的概念也由此应运而生。由于新的媒体形式的诞生,现行的网络互联平台和信息交互平台都受到更大考验。如何满足当今人们对大信息量数据进行快速交互的需求,以及发展并研究一套更高质量的传输模式和传输平台,成为现在互联网应用的又一崭新课题。在传统的基于客户端/服务器(Client/Server,C/S)的传输模式下,多个客户端在对服务器端进行资源请求后,服务器端向多个客户进行应答。当客户连接数目及请求的数据量逐渐增大时,服务器端带宽很快达到极限。成为限制整个网络系统服务能力的主要瓶颈。同时,用户的服务质量(Quality of Service,QoS)也难以得到保证。面对这种日益增长的互联网需求,如何构建一个具备可扩展能力的传输模型成为主要问题。P2P模式是解决服务器链路瓶颈问题的理想模式。基于P2P技术的流媒体系统由于具有可扩展服务能力,为构建大规模流媒体传输系统提供了一种低成本的解决方案。在同一个网络环境中,客户端与服务端拥有对等的传输地位,每一个信息终端都同时具备客户与服务的两种身份。在网络逐渐增大的趋势下,P2P所描述的网络互联形式将不再存在瓶颈,反而会更加强大。1.2 国内外研究现状P2P技术是上世纪90年代末提出的,它充分挖掘了Internet上的空闲资源,在利用率、扩展性等方面具有很大优势,并在文件共享、分布式计算、协同工作、Internet存储等方面取得了良好应用。 从国外公司对P2P技术的支持力度上看,Sun公司和Intel公司投入较大。在2000年8月,Intel公司宣布成立P2P工作组,正式开展P2P的研究。工作组成立以后,积极与应用开发商合作,开发P2P应用平台。2002年Intel发布.Net基础架构之上的Accelerator Kit(P2P加速工具包)和P2P安全API软件包。 Sun公司以Java技术为背景,开展了JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员,而且已经发布了基于JXTA的即时聊天软件包。JXTA定义了一组核心业务:认证、资源发现和管理。在安全方面,JXTA加入了加密软件包,允许使用该加密包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA核心之上,还定义了包括内容管理、信息搜索以及服务管理在内的各种其它可选JXTA服务。在核心服务和可选服务基础上,用户可以开发各种JXTA平台上的P2P应用。 P2P流媒体技术可按播放媒体的实时性分为实时和时移(非实时)两大类。P2P实时流媒体技术应用主要有2005年来流行于Internet的网络电视、P2P视频会议系统等。P2P时移流媒体技术应用主要是P2P视频点播系统。 近年来,P2P网络电视在中国发展得很快。网络电视直播获得良好效果,实现了单服务器很高的同时在线人数指标,这是传统的单点连接(Unicast)、多播(Multicast)方式都未实现的。目前,互联网上运作比较成功的P2P网络电视系统比较有代表性的有:GridMedia(清华大学网格研究组)、沸点网络电视、PPLive等等,这些网络电视都给人们带来了耳目一新的体验。然而,P2P技术还存在着一些问题,首先P2P缺乏管理机制,不像在C/S模式中只需要在中心点进行管理,其次P2P网络中数据的安全性难以保证,另外还存在吞噬网络带宽问题、版权问题。此外,目前还没有制定出一致的P2P标准,这对P2P技术进一步发展也是一个障碍。而基于P2P的流媒体技术也只是处于起步阶段,值得进一步去研究和推广。1.3 论文研究内容及结构安排本论文首先从P2P的基础理论开始,将P2P的基础和原理进行分析和探讨,以在理论基础上为P2P的传输原理进行详细阐述。同时分析现行的主流P2P传输解决方案和基本模型,并通过对传统C/S模型与P2P模型的对比,阐述P2P的优势及发展前景。其次,通过对JXTA技术的分析和研究,讨论并实现基于JXTA环境下的P2P传输模型。并应用Delphi7开发传输系统。实现资源的P2P传输。在此基础上,从理论方面探讨研究JXTA中嵌入流媒体数据的原理及方法。论文共分为6章:第一章 绪论:阐述该课题的背景情况及研究原因,对比国内外的P2P传输及流媒体传输技术的现状,概括本论文的基本内容及该课题的主要研究方向以及具体的论文结构和内容安排。 第二章 基于P2P环境下的传输技术理论:详细说明P2P传输技术的发展和基本定义以及P2P的传输原理。具体讨论P2P环境下流媒体数据的传输原理及基本模型。并对比P2P及C/S模型说明P2P的优势及发展前景。 第三章 JXTA环境下P2P传输环境的搭建与配置:对JXTA相关理论的概述,解释JXTA对P2P环境的各种类库定义及其具体实现,叙述设计阶段JXTA环境下搭建P2P模型的过程并从理论方面探讨研究JXTA中嵌入流媒体数据的原理及方法。 第四章 传输系统的设计及测试:叙述Delphi7环境下传输系统的搭建过程,并在实验中进行传输系统的测试及相关数据报告。 第五章 流媒体传输模块在P2P系统中的应用:阐述P2P系统中流媒体数据传输的基础理论,探讨如何将流媒体传输模型嵌入P2P传输环境。 第六章 总结:简述论文的全部内容并做总结以及后续工作及该技术前景展望。2 基于P2P环境下的文件传输技术概述2.1 P2P传输技术的起源发展及定义P2P,也称为对等计算或对等网络。当前对P2P计算并没有严格的定义,多数定义突出了P2P模式与C/S模式的主要区别,即P2P网络中无专门的服务器,计算节点在功能上是对等的。传统的C/S模式在应用层是采取集中控制的,由服务器提供服务并对客户端进行控制。P2P网络中各个节点在应用层是逻辑对等的,各个节点之间可以直接进行数据通信,不需要通过中间的服务器,每个节点同时充当其他节点的服务器和客户。通常认为P2P和C/S是实现分布式计算的两种不同方式。对等网络(P2P,Peer to Peer)是一种资源(计算、存储、通信与信息等)分布利用与共享的网络体系架构,与目前网络中占据主导地位的客户机服务器(Client/Server,C/S)体系架构相对应。因为早期传统的客户端服务器的网络拓扑模型在用户日趋增长的发展趋势下,逐渐达到带宽极限。不足以胜任过多用户请求资源的现状。因此一种新的网络拓扑模型应运而生,即P2P传输技术。P2P技术存在三种结构模式的体系结构,即以Napster为代表的集中目录式结构、以Gnutella为代表的纯P2P网络结构和混合式P2P网络结构。从P2P技术的分代来说,到目前为止的P2P技术可分为四代:第一代P2P(中央控制网络体系结构),第二代P2P(分散分布网络体系结构),第三代 P2P9(混合网络体系结构),第四代P2P(目前发展中P2P技术)。P2P正式步入发展的历史可以追溯到1997年7月,那几乎就是互联网在中国起步的阶段。在一段介绍此时P2P技术的时间表中这样写着:“Hotline Communications is founded, giving consumers software that lets them offer files for download from their own computers.”(1997年7月,Hotline Communications公司成立,并且研制了一种可以使其用户从别人电脑中直接下载东西的软件)。或许有人还记得,早在1998年,美国东北波士顿大学的一年级新生、18岁的肖恩.范宁为了能够解决他的室友的一个问题如何在网上找到音乐而编写的一个简单的程序,这个程序能够搜索音乐文件并提供检索,把所有的音乐文件地址存放在一个集中的服务器中,这样使用者就能够方便地过滤上百的地址而找到自己需要的MP3文件。到了1999年,令他们没有想到的是,这个叫做Napster的程序成为了人们争相转告的“杀手程序”它令无数散布在互联网上的音乐爱好者美梦成真,无数人在一夜之内开始使用Napster。在最高峰时Napster网络有8000万的注册用户,这是一个让其他所有网络望尘莫及的数字。这大概可以作为P2P软件成功进入人们生活的一个标志。时间表中这样记录着这一段历史:January 1999:Shawn Fanning, 18, creates the Napster application and service while a freshman at Northeastern University.(1999年1月,18岁的美国东北波士顿大学的一年级新生肖恩.范宁开始了Napster程序的服务。)May 1999:Napster Inc. is founded.(1999年5月,Napster公司宣告成立。)之所以我们注重开端,是因为这是一个非同意义上的起始,也正是从这天起,P2P开始了它曲折但极富生命力的发展。到了2000年,P2P技术的发展就得使用月甚至日来记载了。直到现在使用P2P技术的软件比比皆是,人们也在不知不觉中感受到了P2P作为高科技发展载体的快乐。平常我们使用的QQ 、MSN就不提了,其他软件更是铺天盖地,让人目不暇接。2.2 P2P传输技术的基础及原理现今最普遍的分布计算模型是客户/服务器(Client/Server, C/S)模型。在客户/服务器体系中,客户请求服务,服务器提供服务。在当今的Internet上,存在大量的服务器-Web服务器,邮件服务器,FTP服务器等等。客户/服务器体系是中央化体系的一个例子,整个的网络都依靠中央的节点和命名的服务器来提供服务。如果没有服务器,网络将是毫无意义的;如果没有它们,Web浏览器如何工作?不论客户端或者浏览器的数目有多少,网络只能在服务器存在的前提下才有意义。和客户/服务器体系相似,P2P也是一个分布的计算模型,但是有一个很大的不同,P2P是一个非中央化的体系,在网络中并没有客户或者服务器的状态区分。网络中的每个实体都是同等的,有着同样的状态,这意味着一个实体可以请求一个服务(客户端的特性)或者提供一个服务(服务器的特性)。虽然每个节点在网络中有着同等的状态,不过它们并不要求都有着同样的物理性能。一个P2P网络可以包含有不同性能的节点,由移动设备到大型机。对于一个移动设备来说,可能由于自身的限制,不能作为服务器,但从网络方面来说,并没有这个限制。在客户/服务器网络中,当网络增大时(即越来越多的客户加入),中央服务器的压力就越大。当加多一个客户,中央节点的性能就会弱化;而它的失效将会导致整个网络的瘫痪。对于P2P网络来说,情况就完全不一样了。由于网络中的每个实体(或者节点)都是积极的参与者,每个节点都会为网络提供一些资源,例如存储空间或者CPU。当越来越多的节点加入网络时,网络的性能将会增长。因此,当网络增大时,它的性能也会增强。我们将不会碰到客户/服务器体系中的扩展问题。P2P网络和客户/服务器模型还有一个很大的不同点是:即使只有一个节点是活跃的,P2P网络也被认为是活跃的。只有在没有任何节点时,P2P网络才是不可用的。目前,Internet的存储模式是“内容位于中心”,无论以(B/S,Browser/ Server)或是(C/S,Client/Server)结构呈现的应用,都必须在网络内设置一个服务器,所有的信息通过服务器传递给请求访问的客户端。信息先集中上传到服务器保存,然后再分别下载,或是信息经过服务器上的软件处理后才在网络上传递。P2P的运用将使Internet上的内容向边缘移动,P2P技术是一种用于不同PC用户之间,不经过中继设备直接交换数据或服务的技术。P2P打破了传统的Client/Server模式。在P2P模式中,每个节点的地位都是相同的,具备客户端和服务器双重特性,可以同时作为服务使用者和服务提供者。 P2P的运用在互联网信息极大丰富的现在,其好处是显而易见的。首先,P2P提供机会利用大量闲置资源,这些闲置资源包括给定节点设备的CPU处理能力,磁盘空间以及常驻在计算机内的文件内容。其次P2P可以解决大量客户端访问服务器同一数据造成的网路拥堵、服务器负载过大等瓶颈问题,通过算法设计和网络拓扑构建,P2P可以均衡网络负载,有效地分配转发数据。此外,P2P可以削弱因单个节点失效对全局的影响,因为节点的对等性,每个节点都可以承担服务提供者的功能。2.3 P2P环境下流媒体传输模型及原理流媒体是指在数据网络上按时间先后次序传输和播放的连续音、视频数据流。流媒体数据流具有3个特点:连续性、实时性、时序性,即其数据流具有严格的前后时序关系。由于流媒体的这些特点,它已经成为在互联网上实时传输音、视频的主要方式。本质上,流媒体技术是一种在数据网络上传递多媒体信息的技术。目前数据网络具有无连接、无确定路径、无质量保证的特点,给多媒体实时数据在数据网络上的传输带来了极大的困难,流媒体技术的主要目标就是:通过一定的技术手段实现在数据网络上有效地传递多媒体信息流。传统的流媒体服务大都是客户/服务器(C/S)模式,即用户从流媒体服务器点击观看节目,然后流媒体服务器以单播方式把媒体流发送给用户。当流媒体业务发展到一定阶段后,用户总数大幅度增加,这种C/S模式加单播方式来推送媒体流的缺陷便明显地显现出来(如流媒体服务器带宽占用大、流媒体服务器处理能力要求高等),带宽、服务器等常常成为系统瓶颈,系统的可扩展性差。近年来,人们把P2P技术引入到流媒体传输中而形成了P2P流媒体技术,该方法有两方面的优点。首先,这种技术并不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;第二,在这种技术中,流媒体用户不只是下载媒体流,而且还把媒体流上载给其他用户,因此,这种方法可以扩大用户组的规模,且更多的需求也带来了更多的资源。P2P流媒体系统按照其播送方式可分为直播系统和点播系统,此外近期还出现了一些既可以提供直播服务也可以提供点播服务的P2P流媒体系统。(1)直播:在流媒体直播服务中,用户只能按照节目列表收看当前正在播放的节目。在直播领域,交互性较少,技术实现相对简单,因此P2P技术在直播服务中发展迅速。2004年,香港科技大学开发的CoolStreaming原型系统将高可扩展和高可靠性的网状多播协议应用在P2P直播系统当中,被誉为流媒体直播方面的里程碑,后期出现的PPLive和PPStream等系统都沿用了其网状多播模式。P2P直播是最能体现P2P价值的表现,用户观看同一个节目,内容趋同,因此可以充分利用P2P的传递能力,理论上,在上/下行带宽对等的基础上,在线用户数可以无限扩展。(2)点播:与直播领域相对应,在P2P流媒体点播服务中,用户可以选择节目列表中的任意节目观看。在点播领域,P2P技术的发展速度相对缓慢,一方面是因为点播当中的高度交互性实现的复杂程度较高;另一方面是节目源版权因素对P2P点播技术的阻碍。目前,P2P的点播技术主要朝着适用于点播的应用层传输协议技术、底层编码技术、以及数字版权技术等方面发展。与P2P流媒体直播不同,P2P流媒体点播终端必须拥有硬盘,其成本高于直播终端。目前P2P点播系统还需在技术上进一步探索,期望大规模分布式数字版权保护(DRM)系统的研究,以及底层编码技术的发展能为P2P点播系统的实施铺平道路。P2P流媒体系统网络结构目前存在很多P2P流媒体的研究成果及实际系统,它们在其覆盖网络的组织结构上可以被大体分成两大类,即基于树(Tree-based)的覆盖网络结构和数据驱动随机化的覆盖网络结构1) 基于树的方法大部分系统都可以归类为基于树的方法。在这种方法中,节点被组织成某种传输数据的拓扑(通常是树),每个数据分组都在同一拓扑上被传输。拓扑结构上的节点有明确定义的关系,例如,树结构中的“父节点-子节点”关系。这一方法是典型的推送方法,即:当节点收到数据包,它就把该数据包的拷贝转发到它的每一个子节点。既然所有的数据包都遵循这一结构,那么保证这一结构在给所有接受节点提供高性能时是最优的。更进一步,当节点随意加入和离开时,该结构必须得以维持。特别地,如果某节点突然崩溃或者其性能显著下降,它在该树结构上所有的后代节点都停止接收数据,且该树结构必须被修复。最后,当组建基于树的结构时,避免出现环是一个必须要解决的重要问题。基于树的方法可能是最自然的方法,不需要复杂的视频编码算法。然而,其中需要重点考虑的一个问题是节点失效,特别地,靠近树根的节点失效将中断大量用户的数据传输,潜在地带来瞬时低性能的结果。此外,在该结构中大多数节点都是叶子节点,他们的上行带宽没有被使用到。为了解决这些问题,已有研究提出了一些带有弹性的结构,如基于多重树的方法。2) 数据驱动方法近年来,人们又提出用于P2P的数据驱动的方法。数据驱动的覆盖网络与基于树结构的最大不同在于它不组建和维护一个传输数据的明显拓扑结构,它用数据的可用性去引导数据流,而并不是在高度动态的P2P环境下不断地修复拓扑结构。一个不用明确维护拓扑结构的数据分发方法是使用Gossip协议。在典型的Gossip协议中,节点给一组随机选择的节点发送最近生成的消息;这些节点在下一次做同样的动作,其他节点也做同样的动作,直到该消息传送到所有节点。对Gossip目标节点进行随机选择可以在存在随机失效的情况下使系统获得较好的健壮性,另外还可以避免中心化操作。然而,Gossip不能直接用作视频广播,因为其随机推送可能导致高带宽视频的大量冗余。此外,在没有明确的拓扑结构支持下,最小化启动和传输时延成为主要问题。为了解决这些问题,一些解决方案,例如Chainsaw、Cool-Streaming采用拉取技术,即:节点维持一组伙伴并周期性地同伙伴交换数据可用性信息,接着节点可以从一个或多个伙伴找回没有获得的数据,或者提供可用数据给伙伴。由于节点只在没有数据时去主动获取,所以避免了冗余。此外,由于任一数据块可能在多个伙伴上可用,所以覆盖网络对时效是健壮的。最后,随机化的伙伴关系意味着节点间的潜在的可用带宽可以被完全利用。2.4 P2P系统与传统C/S系统的比较目前最流行的网络计算模式是C/S模式,C/S结构具有如下特点: 1)集中计算方式,信息和数据都保存在服务器端。只有服务器端具有控制能力,客户端基本上只是一个高性能的I/O设备。 2)服务器及网络的带宽决定了网络的性能。每台服务器所能提供的作息数量受到自身存储空间的限制,而任意时刻它所能支持的客户端访问数量则既受到自身处理能力的限制也受到服务器所在网络吞吐能力的限制。 3)URL用来表示信息资源的地址,但是URL很少能直接体现所定位的信息的内容,甚至不能直接链接到具体的内容上。 4)被发布信息的分布与生存期十分稳定。服务器只发布机器所有者想公之于众的信息,这些信息将会在该服务器上稳定地保存一段时间,并且该服务器通常也不间断地运行在网络上。 5)被发布信息的存贮与管理比较集中、规范。互联网上所有可以公开访问的信息基本上都保存在服务器上,服务器根据适当的算法和规则管理本地信息,应答客户端的访问请求或进行计算。P2P模式是非中心结构,它与C/S模式有明显的差别: 1)每一个对等点具有相同的地位,既可以请求服务也可以提供服务,同时扮演着C/S模式中的服务器和客户端两个角色,还可以具有路由器和高速缓冲存储器的功能,从而弱化了服务器的功能,甚至取消了服务器。 2)P2P技术可以使得非互连网络用户很容易地加入到系统中。在P2P的计算环境中任何设备一从大型机到移动电话,甚至是传呼机,均可以在任何地点方便地加入进来。P2P技术不仅可以应用于目前有线的互联网络,同时该技术还可以应用于无线计算技术。 3)在P2P模式的网络中,每一个对等体可以充分利用网络上其他对等体的信息资源、处理器周期、高速缓存和磁盘空间。 4)P2P是基于内容的寻址方式,这里的内容不仅包括信息的内容,还包括空闲机时、存储空间等。P2P网络中,用户直接输入要索取的信息的内容,而不是信息的地址,P2P软件将会把用户的请求翻译成包含此信息的节点的实际地址,而这个地址对用户来说是透明的,P2P中的每一个对等体通常没有固定的IP地址,并且可常常从网络上断开。 5)信息的存储及发布具有随意性,缺乏集中管理。与传统的使用用户服务技术的网络系统相比,P2P(peer-to-peer)技术更像是一个“全部开放”的网络系统。个人用户可以直接进行相互连接,而不需要通过一个又计算机控制的中央服务器。所谓的中央服务器在一个标准的网络系统中的作用就像一个看门狗一样,保证网络入口的安全,其方式就是通过对用户身份进行验证,并且阻拦住恶意的进入。但是在P2P系统中则完全不是这种情况。P2P系统并不像一般人认为的那样,只是有更多的用户在网络上分享音乐,视频或者游戏等服务。它还包括了Instant Messaging (IM)以及进行系统设计。不过,一切都要以两大根本问为开始的前提,那就是保密性与验证性。网络的验证性要求必须建立只为可信的用户建立连接的系统,如果希望多个用户能够实现自由的交流,并且不通过中央验证服务器,那么,系统就必须建立一种在交流过程中两个用户之间可以直接进行互相认证的方式。这可以通过发放授权书以及关键交换实现。保密性可以通过互相验证后的用户的点对点直接加密而实现。在这种情况下,关键交换以及共同的编码协议都能够起到作用,就像SSL的工作原理一样。因为P2P网络含有不同的复杂的用户,这就会出现通路堵塞的情况,系统就会出现可用性的问题,有一些的P2P就无法处理其增加的超量的用户和服务。最后,P2P网络对于恶意软件也有弱点,并且很可能造成大范围的在用户间的病毒传播。因此,系统必须被很小心的监控,防止有安全危险的数据从外面的网络进入。同时,还应当制定使用条例,用来控制网络间传输的文件的类型和链接3 JXTA环境下P2P传输环境的搭建与配置3.1 JXTA概述JXTA是Juxtapose (并列)的缩写。JXTA技术是网络编程和计算的平台,用以解决现代分布计算尤其是点对点(P2P)计算中出现的问题。JXTA研究项目,将提供使用户更便捷地访问连接在互联网上的个人电脑资源的新框架,从而进一步拓展互联网的空间。同时JXTA也是Sun的ONE互联网战略的延续,并且将更积极的姿态与Microsoft的.Net战略和Hailstorm计划一争高低。目前JXTA首先推出了基于Java的参考实现,提供了支持六个协议的Java API.。JXTA还将推出包括C语言在内的其他编程语言的API,JXTA在设计时有如下几个目标: 操作系统无关;语言无关 ;为P2P应用提供服务和基础。从本质上讲,JXTA的目标是希望在任何设备,从台式机到PDA、汽车、洗衣机等设备都可以支持P2P编程,如图3-1。图3-1 JXTA的解决方案3.2 JXTA环境中P2P原理的实现及协议的定义P2P的发展可以被划分为三代:第一代是以Napster为代表的、还用中央服务器管理的P2P,这一代的P2P生命力十分脆弱只要关闭服务器,网络就死了;第二代分布式P2P没有中央服务器,但是速度太慢;而第三代为混合型,采用分布服务器。目前我国流行的BitTorrent和emule就是属于这类。JXTA的一个目的是寻找一套数量最少、概念最简单的系统构成的积木。如果成功,这几块积木就会是今后大家构架信息系统的基本模块,从而帮助人们摆脱像Windows或TCP/IP这样的传统软件带来的包袱。JXTA,它是由一系列网络协议构成的,用任何语言都可以实现,并不只限于Java,只有彻底独立于操作系统、网络传输技术以及程序设计语言,才能真正达到了跨平台,这样的技术,也最容易受到业界的认同。JXTA技术提供了基础性的机制解决当前分布计算应用中面临的问题,实现新一代统一、安全、互操作以及异构的应用。目前它支持基于Java技术的平台和系统。而将来JATX技术将不受到内存的限制而支持更多小型移动设备。JXTA通过Java技术和XML数据表达的结合,提供了强大的功能使得垂直应用得以交互,并且可以克服目前P2P软件中的限制。同时,通过小型、简单、便于开发的构造模块,JXTA将使开发者从建立各自框架的复杂工作得以解放,可以潜心关注于建设各类新颖、创造性的、分布式计算应用。有六个协议构成了JXTA的核心,JXTA通过这六个协议来完成Peer之间的通信,彼此之间的资源的发布和发现,信息的传递和路由,协议本身并不是应用程序,需要添加更多的代码来开发有用的应用,协议隐藏了很多细节,这样使得编写JXTA应用程序比从空白开发P2P应用要容易得多。1)对等机发现协议Peer Discovery Protocol(PDP):主要用来发布自己的广告信息,并且从其他Peer处获得广告。PDP允许一个Peer发现其他Peer的广告(包括Peer广告、对等组广告、服务广告,或者是管道广告)。该协议通过指定一种广告类型(如Peer、对等组)、一个XML标签名、一个匹配这个XML标签所表示数据的字符串来定义查询。它使用Peer Resolver Protocol来发送和传播搜索广告的请求。2)管道绑定协议Pipe Binding Protocol(PBP):允许Peer之间建立虚拟的通信通道。该协议首要关注的是通过Peer端点路由协议提供的路由连接Peer。它使用Peer Resolver Protocol来发送和传播搜索广告的请求。 3)对等机信息协议Peer Information Protocol(PIP):用来获得其他Peer的状态信息,包括更新时间、状态等等。该协议有时被用做ping命令,有时被用来获得一个Peer的基本状态信息,PIP消息的正文是自由格式的,它允许询问特定的Peer信息。此外,这种能力可以被扩展以提供控制能力,它使用Peer Resolver Protocol来发送和传播搜索广告的请求。4)对等机解析协议Peer Resolver Protocol(PRP):允许Peer发送更一般的请求,并可以接收到该请求的回应;同时可以将请求分发到组内的一个或者多个匹配的处理器,Peer解析协议是一个基础通信协议,它按照一种请求/响应格式来进行,要使用这个协议,需要提供一个查询的Peer和一个包含能被目标Peer理解的XML请求消息,该协议被用来支持JXTA中的其他协议(PDP、PBP和PIP),而且允许传播查询,例如,如果一个Peer收到一个查询并且不知道答案,解析协议就会将该查询发送给别的Peer。5)端点路由协议Peer Endpoint Protocol(PEP):通过该协议Peer以发送消息的形式获得一条路由路径。它使用Peer间的网关来建立一条包含一个或多个适合建立管道的管道协议组成的通路。管道绑定协议借助此Peer列表来建立Peer间的路由。一般情况下传统的路由器和DNS服务器会因为防火墙、代理服务器和NAT设备等原因而无法建立连接,而端点路由协议通过寻找网关来穿越诸如防火墙等障碍来建立连接。端点路由协议还可以同时帮助相互不支持对方使用协议的Peer进行通信。例如,如果你连接支持TCP的Peer-A和只支持HTTP的Peer-B,端点路由协议既可以选择一个可以支持此传输的网关,又可以选择多个并且相互协议兼容的一组网关。6)集合点协议Rendezvous Protocol(RVP):通过该协议Peer可以对一个服务订阅或者被订阅。集合点协议负责在JXTA对等组内传播消息,它为Peer在组内接收和发送消息并且控制消息如何传播定义了一个基本的协议。从编写P2P应用程序的角度而言,可以简单地划分上述协议的主要用途:Peer Discovery - 搜索资源 Peer Resolver - 一般查询服务 Peer Information - 监控 Pipe Binding - 可寻址的消息传递 Rendezvous - 消息传播 Peer Endpoint -路由 3.3 JXTA环境下P2P传输模型的设计JXTA环境下P2P传输模型的设计开发环境:Eclipse 3.4.2JDK-6u3-windows-i586-pJxse-lib-2.4.1bcprov-jdk14.jarjdom.jarjxtaext.jarlog4j.jarorg.mortbay.jetty.jarswixml.jarjavax.servlet.jarjxta.jar第一步:搭建Java开发环境由于该环境应用Jxta开发,由于该项目使用Java作为参考实现,所以这里我们采用Java的编译环境进行开发。首先安装JDK,并配置好环境变量。环境变量设置参考classpath.;C:ProgramFilesjavajdk1.6.0_03libtools.jar;C:ProgramFilesjavajdk1.6.0_03libdt.jar;java_homeC:ProgramFilesJavajdk1.6.0_03;PATHC:ProgramFilesjavajdk1.6.0_03bin;C:ProgramFilesjavajre1.6.0_03bin;经过测试,java环境配置成功。然后安装编译工具,这里使用Eclipse 3.4.2作为开发平台。第二步:新建工程,添加相关类库我们是使用Jxta环境进行开发,因此在建立工程的同时,将必要的类库文件导入。这里我们使用Jxse-lib-2.4.1的类库,在新建的工程中将其中的8个.jar文件都添加至该工程中。它们分别是:bcprov-jdk14.jar;jdom.jar;jxtaext.jar;log4j.jar;org.mortbay.jetty.jar;swixml.jar;javax.servlet.jar;jxta.jar我们所新建的工程命名为P2P,添加的类库包命名为JXTA。第三步:代码编写public static void main(String args) RestoPeer myapp = new RestoPeer();myapp.startJxta();/System.exit(0);public void startJxta() try netpg = new NetPeerGroupFactory().getInterface(); catch (PeerGroupException e) / TODO Auto-generated catch blocke.printStackTrace();我们需要获得默认对等组为我们提供的发现服务:DiscoveryService disco = netpggetDiscoveryService();我们需要查找一个属于我们自己的对等组,如果找不到,我们则创建一个这样的对等组。此时只是为了得到我们所需要的服务。因为每个对等组里所提供的服务并不全部相同。我们通常会把相同的目的的对等体通过一个对等组来组织起来。一个加入对等组的代码如下:(此例采用JXTA技术手册里的一个餐馆的拍卖服务案例来描述):/ 加入拍卖组private void joinRestoNet() int count = 3; /试图发现的最高次数System.out.println(试图发现 RestoNet 对等组);/从NetPeerGroup获得发现服务DiscoveryService hdisco = netpg.getDiscoveryService();Enumeration ae = null; /记录发现的对等体。/ 循环直到我们发现RestoNet对等组或是直到我们达到了试图预期发现的次数。while (count- 0) try / 第一次搜索对等体的本地缓存来查找RestoNet对等组通告。/ 通过NetPeerGroup组提供的发现服务发现Name属性为RestoNet的对等组ae=hdisco.getLocalAdvertisements(DiscoveryService.GROUP,Name, RestoNet);/ 如果发现RestoNet对等组通告,该方法完成,退出循环。if (ae != null) & ae.hasMoreElements() break;/ 如果我们没有在本地找到它,便发送发现远程请求。/ 参数依次为要查找的对等体ID,为空时不以此为发现条件;发现的通告类型,取值还有PEER,和ADV;/ 要发现的通告属性名称;属性取值;需获取的最大通告数量;发现监听器hdisco.getRemoteAdvertisements(null, DiscoveryService.GROUP,Name, RestoNet, 1, null);/ 线程延时一下等待对等体內该发现请求。try Thread.sleep(timeout); catch (InterruptedException e) / TODO Auto-
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!