`
fanxiaojun
  • 浏览: 56288 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

研究p2p网络核心技术及其应用

阅读更多

     P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术是一种近几年兴起的网络新技术,属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来说的一种网络信息交换方式,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络技术改变了人们使用网络的方式,也为未来网络的发展提供了一种新的思路。P2P网络具有良好的扩展性和健壮性,性价比也较高,P2P与其说是一种技术,不如说是一种思想。P2P网络是在IP网络基础之上,通过应用软件构筑起来的一个逻辑覆盖网,并不是独立于现行的IP网络之外的什么特殊网络。在实际物理网络中安装有某种P2P软件的节点可以构成一个逻辑覆盖网络,而没有安装这种P2P软件的节点则被排除在外。在P2P网络中,网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,可以无需中间环节和服务器的介入,客户端实现了直接通讯。这样,庞大的终端资源被利用起来,降低了部署成本以及复杂性,从而一举解决了C/S模式中的两个弊端。

1、P2P网络拓扑结构

      拓扑结构是指分布式系统中各个计算单元之间的物理或逻辑的互联关系,结点之间的拓扑结构一直是确定系统类型的重要依据。目前互联网中广泛使用集中式、层次式等拓扑结构。集中式拓扑结构系统目前面临着带宽瓶颈等一些难以解决的问题。而P2P系统主要采用非集中式的拓扑结构。P2P模型可以分为集中式、分散式、层次式混合式这四种模型。

1.1集中式模型

      集中式P2P模式中有一个中心服务器负责记录共享信息以及响应对这些信息的查询。每一个对等实体根据需要下载它所需要的其他对等实体上的信息。这种具有中心化特点的形式不同于传统意义上的C/S模式:传统意义上的C/S模式是所有资料都存放在固定的服务器上,客户机只能从服务器上读取信息,并且客户机之间不具有交互能力;而集中式P2P模式则是所有网上提供的资料都分别存放在提供该资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体间都具有交互能力。集中模型中,最具代表性的模型是Napster。Napster是最早出现的P2P系统之一,它实质上并非是纯粹的P2P系统,而是通过一个中央索引服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。它的工作原理如图1所示。当某个用户需要某个文件时,首先连接到中央索引服务器,在服务器上进行检索,服务器返回该文件的用户信息,再由请求者直接连到文件的所有者传输文件。Napster实现了查询与传输的分离,有效地节省了中央服务器的带宽消耗,减少了系统的文件传输延时。
                     
         然而,这种对等网络模型存在以下这些问题:

         (1)可靠性和安全性较低;一旦中央索引服务器瘫痪,将直接导致整个网络的崩溃。

         (2)成本较高;随着网络规模的扩大,对中央索引服务器进行维护和更新的费用将急剧增加。

         (3)服务提供商容易被追究法律责任。

          综上所述,该模型对小型网络而言,在管理和控制方面占一定优势,但并不适合大型网络应用。

  1.2分散式模型

      分散式模型采用随机图的组织方式,能够较快发现目的节点,具有较好的可用性,并支持复杂的查寻,但不能保证查询的结果完全。为了保证查询结果,有些P2P网络维护一个中心目录,但如此就大大限制了网络的可扩展性。分散模型中,最具代表性的是Gnutella模型。Gnutella因为没有中央索引服务器,避免了服务器性能瓶颈。每台机器在Gnutella网络中既是客户机同时又是服务器。在文件检索方面,在Gnutella网络的发展初期,它主要采用基于完全随机图的Flooding搜索算法:当一台计算机要下载一个文件,它首先以文件名或者关键字生成一个查询,并把这个查询发送给与它相连的所有计算机,这些计算机如果存在这个文件,则与查询的机器建立连接,如果不存在这个文件,则继续在自己相邻的计算机之间转发这个查询,直到找到文件为止。为了控制搜索消息不至于永远这样传递下去,一般通过TTL(Time To Live)的减值来控制查询的深度。但是,随着联网节点的不断增多,网络规模不断扩大,网络开销成指数级增长。搜索请求遍历整个P2P网络需要经过很多跳,完整地获得搜索结果延迟比较大。通过这种Flooding方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。

1.3层次化模型

      层次化模型将网络分为三个层次:核心层、分发层和接入层。

    (1)核心层:形成主干网,提供高性能、无阻塞高速通道。核心层网络用于提供全网的信息通信,因此,应当选用高档、高性能的网络设备。

    (2)分发层:形成主干接入网,提供到高速主干的接入,可比喻为省市级公路。分发层网络宜选用中档网络设备。

    (3)接入层:提供对用户接入的接口,可比喻为一般公路。接入层网络设备宜选用中低档网络设备,以降低成本。这样,整个网络就非常具有弹性、高效性和可靠性。

      优点:相对于集中模型,索引信息不是保存在中央服务器上,不会产生服务器瓶颈,索引信息同步较快,相对于完全分散式模型,信息检索不会给网络造成较大流量。

      缺点:层次化模型对于非结构化网络,维护整个网络比较困难,特别是处于结构顶层的节点在离开网络后,对网络的影响比较大,重构网络比较复杂。

1.4混合模型

      混合模型的思想,是把整个P2P网络建成一个二层结构,由普通节点和超级节点组成,一个超级节点管理多个普通节点,超级节点直接使用gossip协议构成完全分散式模型。混合模型可以利用完全分散式模型在节点数不多时实现的高分散性,鲁棒性和高覆盖率。也可以利用层次模型对大规模网络提供可扩展性。在完全分散式模型中,当TTL=5时,网络的规模不超过20000,性能是较好的,如果每个超级节点管理50-200个普通节点,整个网络规模是可观的。对于超级节点组成的完全分散式网络,更好的gossip协议和智能的TTL选择方法可以改善网络负载和搜索覆盖率的平衡性。超级节点的选取算法也影响混合P2P网络的服务质量。

      在实际应用中,每种拓扑结构的P2P网络都有其优缺点,表1从可扩展性、可靠性、可维护性、发现算法的效率、复杂查询等方面比较了这四种拓扑结构的综合性能。

2、基于P2P网络的应用

      随着P2P网络技术的不断发展。目前,P2P网络技术在高校校园网络中运用广泛。例如P2P网络技术在文件共享、流媒体直播与点播、分布式科学计算、信息检索中都得到了较好的运用。

2.1文件共享

      在高校校园网络中,应用P2P技术可以使校内的任意两台计算机直接相互共享文本、音乐、影视或多媒体等文件;网上计算机之间可以直接进行交互,不需要使用任何一台中央服务器。

       在传统的Web方式中,要实现文件交换需要将文件上传到特定网站,用户再到网站上搜索需要的文件,然后进行下载,这对用户而言非常不方便。在P2P网络中,用户通过不同的查询机制定位含有所需资源的其他PC机后,可以直接与其建立连接并下载所需文件。

2.2 流媒体直播与点播

      在流媒体直播和点播过程中,人们发现P2P非常适合于流媒体的应用。在流媒体领域,P2P技术也由于其对等传输的特性被广为看好。P2P流媒体技术主要应用于视频直播和视频点播两种数据传输方式,两者之间最大区别在于对等节点之间的数据共享模式。视频直播用户在下载流媒体文件的同时进行数据的播放,它将下载到的流媒体数据直接放入系统内存中,并不对下载的流媒体数据进行保存,这样客户端下载的数据信息并不是存放在硬盘上而是在内存中。而视频点播正好相反,它首先采用一定的文件调度策略将所有的流媒体文件下载到系统硬盘上,当文件下载完毕后再进行播放。由于P2P流媒体的保证,网络视频直播、点播以高清晰的画面、高音质音频和流畅的播放速度给传统互联网用户带来"声色兼备"的强大冲击。

2.3 分布式科学计算

       Intel将P2P计算定义为“通过系统间的直接交换所达成的计算机资源与信息的共享”,这些资源与服务包括信息交换、处理器时钟、缓存和磁盘空间等。P2P计算允许用户使用网络中集中的处理能力,它可以帮助相关组织进行以前不可能进行的繁重计算工作,譬如利用P2P技术的特性,将计算任务划分到数十万甚至数百万台个人计算机上,用来破解蛋白质或是DNA密码。P2P计算正在得到业内一致的看好,它成功地将许多有趣的分布计算技术重新拉回到人们视线当中。总之,对于任何一个高校校园网络的广大师生来说,P2P计算的好处是拥有更低的成本和更快的处理速度。

2.4 信息检索

       基于P2P的校园网络搜索引擎使信息检索更具有针对性,搜索更新周期缩短,并且引入了P2P资源共享技术,充分利用以大规模分布形式存在的信息,弥补传统搜索引擎无力深度挖掘信息的弱点。P2P网络的分散性使得基于P2P的信息检索可以挖掘到终端设备上动态存储的海量信息,从而改变了传统搜索引擎只能检索网站上静态页面的现状。

3、结束语

      佰锐AnyChat针对可不经过服务器中转的音视频应用,采用了P2P通信技术,该技术的核心在于防火墙的穿越。使用P2P通信技术,可以大大的减轻系统服务器的负荷,并成几何倍数的扩大系统的容量,且并不会因为在线用户数太多而导致服务器的网络阻塞。支持UPNP协议,自动搜索网络中的UPNP设备,主动打开端口映射,提高P2P通信效率。总之, P2P网络技术始终不断朝着成熟的方向发展。

 

分享到:
评论

相关推荐

    安全技术-网络信息-基于IPv6和P2P的网络传输技术及其应用研究.pdf

    在当前互联网领域,IPv6和P2P网络传输技术已成为研究的焦点。作为下一代互联网的核心协议,IPv6相比IPv4具备更多优势。然而,IPv4向IPv6的平稳过渡问题以及缺乏基于IPv6的应用成为其发展的主要障碍。另一方面,P2P...

    P2P网络技术原理与C++开发案例

    P2P网络技术原理包含了以下几个核心知识点: 1. 网络拓扑结构:P2P网络可以是结构化的或非结构化的。结构化P2P网络使用分布式哈希表(DHT)等技术,可以高效地定位资源;非结构化P2P网络则更加简单灵活,节点间的...

    P2P搜索技术研究

    ### P2P搜索技术研究与挑战 #### 一、引言 随着互联网技术的发展和用户需求的增长,点对点(Peer-to-Peer,简称P2P)技术因其独特的分布式架构和高效的数据共享能力,在众多领域得到了广泛应用。P2P网络不仅能够...

    P2P核心思想及经典算法

    ### P2P核心思想及经典算法 #### 一、P2P通信的核心概念与背景 在探讨P2P(Peer-to-Peer)通信的核心思想及其经典算法之前,我们需要先了解P2P通信的基本概念和其面临的挑战。P2P网络是一种分布式网络模型,在这种...

    [P2P网络技术原理与C.开发案例].(张文,赵子铭).影印版_部分1

    标题和描述均指向了《P2P网络技术原理与C++开发案例》一书的部分内容,这表明我们正在探讨的是关于对等网络(Peer-to-Peer,简称P2P)技术的基本理论及其在C++编程语言中的实际应用。P2P网络是一种分布式网络架构,...

    [P2P网络技术原理与C.开发案例].(张文,赵子铭).影印版_部分3

    标题和描述均指向了《P2P网络技术原理与C++开发案例》一书的第三部分,这暗示了我们将在本书的这一章节深入探讨P2P(Peer-to-Peer)网络的技术细节及其在C++语言中的实现案例。P2P网络是一种分布式网络架构,其中每...

    P2P网络技术原理与C.开发案例.(张文,赵子铭).影印版.pdf

    《P2P网络技术原理与C++开发案例》是一本深度解析P2P(Peer-to-Peer)网络架构、通信机制及其在C++语言环境下的实现案例的专业书籍。由张文和赵子铭两位作者撰写,该书不仅阐述了P2P网络的基本概念和理论基础,还...

    \p2p\Java技术在P2P环境下的应用

    ### Java技术在P2P环境下的应用:深入解析与实践 #### 一、引言:P2P网络与Java技术的...随着技术的不断进步,P2P网络将更加成熟稳定,而Java及其相关框架将继续在这一领域扮演重要角色,推动分布式计算技术的发展。

    p2p对等网络ppt讲义(全)

    **对等网络(P2P)详解** 对等网络(Peer-to-Peer,简称...以上是对《p2p对等网络ppt讲义》的全面概述,通过学习这些内容,读者可以深入理解P2P网络的原理、应用及其面临的挑战,为参与和利用P2P技术打下坚实的基础。

    网络游戏-可运营P2P网络应用路由系统及其路由实现方法.zip

    《网络游戏-可运营P2P网络应用路由系统及其路由实现方法》是一份深入探讨网络游戏中的P2P(Peer-to-Peer)网络应用及其路由技术的专业资料。P2P网络是互联网上的一种分布式通信架构,其中每个节点既是服务的提供者也...

    JXTA——Java P2P网络编程技术

    **JXTA(Java Peer-to-Peer Toolkit)**是Sun Microsystems开发的一种开放源代码平台,专为构建对等网络(P2P)应用程序提供服务。它允许开发者利用Java语言创建分布式、自组织的网络系统,其中每个节点都可以既是...

    游戏中的网络编程技术及应用.pdf

    根据提供的信息,我们可以深入探讨“游戏中的网络编程技术及应用”这一主题,特别是与游戏开发相关的网络编程基础知识、核心技术以及实际应用案例。 ### 一、网络编程基础 #### 1.1 网络编程概述 网络编程是游戏...

    P2P原理及技术

    ### P2P原理及技术详解 #### 一、概述 **P2P**(Peer-to-Peer,对等网络)是一种网络架构模型,在这种模型中,每个节点既是客户端也是服务器,可以互相提供服务和资源共享,无需依赖中央服务器进行中介。P2P技术广泛...

    应用网络编码的P2P内容分发

    随着技术的进步和社会需求的变化,P2P网络及其相关技术将在互联网应用中发挥越来越重要的作用。 综上所述,《应用网络编码的P2P内容分发》一文深入分析了网络编码技术在P2P内容分发领域的应用价值,并通过实验证明...

    P2P设计思想及其在存储和共享中的应用.rar

    在“P2P设计思想及其在存储和共享中的应用”这一主题中,我们将深入探讨P2P的核心概念,以及它如何在数据存储和共享领域发挥重要作用。 P2P设计思想主要基于以下几个关键元素: 1. **去中心化**:P2P网络没有单一...

    Java P2P技术内幕代码

    Java P2P(对等网络)技术是一种分布式通信模型,其中每个节点既是客户端也是服务器,可以互相分享资源和服务。...这份代码集很可能是对以上各个方面的实现,通过学习和研究,你可以掌握P2P网络设计的核心技巧。

    P2P技术的发展和未来

    P2P(Peer-to-Peer,对等网络)技术是近年来网络技术研究领域的热点之一。随着互联网的快速发展,传统的客户端/服务器(C/S)架构虽然在互联网发展初期起到了关键作用,但随着用户数量的激增,这种方式逐渐暴露出...

    Java下P2P应用程序开发方法

    开发P2P应用时需考虑网络拓扑变化、节点的动态加入和离开、网络延迟及带宽限制等问题。优化策略包括使用合适的路由算法、负载均衡以及缓存策略。 总结,Java平台提供了丰富的库和框架来支持P2P应用程序的开发,但...

Global site tag (gtag.js) - Google Analytics