P2P技术原理及应用.docx
《P2P技术原理及应用.docx》由会员分享,可在线阅读,更多相关《P2P技术原理及应用.docx(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、P2P技术原理及应用摘要:对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。P2P技术 已经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在 线游戏支撑平台等方面。现在人们已经开始将重心转入到覆盖层网络的节点延时会萃研究、覆盖网之间 (Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全研究等方面。1 P2P技术原理什么是对等网络(P2P)技术? P2P技术属于覆盖层网络(OveHay Network)的范畴,是相对于客户机/服 务器(C/S)模式来说的一种网络信息交换方式。在C/S模式中,数据的分
2、发采用专门的服务器,多个客户端 都从此服务器获取数据。这种模式的优点是:数据的一致性容易控制,系统也容易管理。但是此种模式的 缺点是:因为服务器的个数惟独一个(即便有多个也非常有限),系统容易浮现单一失效点;单一服务器面 对众多的客户端,由于CPU能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性 差。P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每一个节点既可以从其 他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了 C/S模式 中的两个弊端。P2P网络有3种比较流行的组织结构,被应用在不同的P2P应用中。(OD
3、HT结构分布式哈希表(DHT)1是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。虽然DHT 具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每一个节点具有 一个惟一的节点标识(ID),节点ID是一个128位的哈希值。每一个节点都在路由表里保存了其他前驱、后继 节点的ID。如图1(a)所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作 为底层结构用于流媒体传输2 o(2)树形结构P2P网络树形结构如图1(b)所示。在这种结构中,所有的节点都被组织在一棵树中,树根惟独子节点, 树叶惟独父节点,其他节点既有子节点也有父节点。信息
4、的流向沿着树枝流动。最初的树形结构多用于P2P 流媒体直播3-4。网状结构网状结构如图1(c)所示,乂叫无结构。顾名思义,这种结构中,所有的节点无规则地连在一起,没有 稳定的关系,没有父子关系。网状结构5为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播 应用中取得了极大的成功。当网络变得很大时,往往会引入超级节点的概念,超级节点可以和任何一种以 上结构结合起来组成新的结构,如KaZaA6o2 P2P技术应用现状由于能够极大缓解传统架构中服务器端的压力过大、单一失效点等问题,又能充分利用终端的丰富资 源,所以P2P技术被广泛应用于计算机网络的各个应用领域,如分布式科学计算、文件共享、流
5、媒体直播 与点播、语音通信及在线游戏支撑平台等方面。(1)分布式科学计算我们知道,许多计算机的CPU资源并非时刻保持峰值运转的,甚至不少时候计算机处于“空暇”状 态,比如使用者暂时离开等情况。而P2P技术可以使得众多终端的CPU资源联合起来,服务于一个共同的 计算。这种计算普通是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程中,任务(包括逻辑 与数据等)被划分成多个片,被分配到参预科学计算的P2P节点机器上。在不影响原有计算机使用的前提下, 人们利用分散的CPU资源完成计算任务,并将结果返回给一个或者多个服务器,将众多结果进行整合,以 得到最终结果。世界最著名的P2P分布式科学计算系
6、统非“SETIhomc”项目莫属。SETI鲂omo项目(简称为SH或者 SETI),由美国加利福尼亚大学伯克利分校在1999年发起,是至今最成功的分布式计算项目。SETWhome 通过分析从射电望远镜传来的数据来搜寻地外文明,这在不少科幻迷甚至是不少普通大众眼里都是一个 “很酷”的应用。SETT的早期版本截至2005年已经吸引了 543万用户,分析了大量积压数据。正如宇宙 的浩瀚普通,需要计算的数据(即存在宇宙空间的无数无线电信号)也是海量的。可以说,这几百万台终端 组成为了一个目前最快的高性能计算机都望尘莫及的“超级计算机”。(2)文件共享要问一百个网友目前中国最流行的文件下载方式,恐怕99
7、个都会回答是“B。B 是 BitTorrent的简称,是一种依赖P2P方式将文件在大量互联网用户之间进行共享与传输的协议,对应的 客户端软件有BitTorrent. BitComet和BitSpirit等。由于其实现简单、使用方便,在中国用户之间被广 泛使用。BitTorrent中的节点在共享一个文件时,首先将文件分片并将文件和分片信息保存在一个流 (Torrent)类型文件中,这种节点被形象地称作“种子”节点。其他用户在下载该文件时根据Torrent文件 的信息,将文件的部份分片下载下来,然后在其他下载该文件的节点之间共享自己已经下载的分片,互通 有无,从而实现文件的快速分发。由于每一个节点
8、在下载文件的同时也在为其他用户上传该文件的分片, 所以整体来看,不会随着用户数的增加而降低下载速度,反而下载的人越多,速度越快。BitTorrent是一种无结构的网络协议。除了 BitTorrent之外,还有不少著名的无结构化的P2P文件 共享协议,典型的有GnuteHa-和KaZaA6oGnutella协议是一种最典型的彻底分布式、无等级结构的P2P网络模型。网络中的节点随机连接若干 个其他节点,称之为“邻居”。这种结构能够很好地适应P2P网络中节点频繁加入与离开的动态特性,因 为任意一个节点都可以被新加入的节点作为“邻居”而连接,任意一个“邻居”也可以随意地离开网络。 同时,这种加入节点和
9、离开节点的选择是节点间的独立行为,随机分布于网络之中。所以说Gnutella的网 络具有茁壮性、实时性、可靠性、负载平衡等优势。在Gnutella网络中存在以下问题:冗余消息多,对带宽的消耗存在一定的浪费。Gnutella网络协议采用泛洪式(Flooding)消息传播机制, 这种消息传播机制产生了呈指数级增长的冗余消息。据统计,P2P软件白日占Internet上运行带宽的40% 70%,晚上有时能达到80%o搜索效率低,可扩展性差。Gnutella网络的搜索协议将所有资源与节点统一对待,没有考虑节点的性能差 异,也没有利用查询成功的历史经验,使得搜索效率低下。KaZaA协议中节点大体上也是无结
10、构连接的。但是在KaZaA协议中存在一种“超级节点”。这种“超 级节点”其实是来源于各个普通的客户端节点,但它们普通具有计算能力强、接入带宽大、在线时间稳定 等特点。在KaZaA协议中,超级节点承担着部份服务器的任务,如管理部份普通节点,负责搜索消息的转 发等。每一个节点上线后会寻觅一个超级节点挂靠,并和原先挂靠在该超级节点下的其他普通节点随机相 连,组成一个小的无结构网络。普通节点的共享文件索引汇报给所挂靠的超级节点。于是,KaZaA网络大 体上可以看做是两层的无结构网络,上层是超级节点组成的无结构网络;下层是普通节点组成的多个无结 构网络,按所挂靠的超级节点分成多个簇。当普通节点发起文件搜
11、索请求时,将请求消息发给所挂靠的超 级节点,超级节点从自己存储的共享文件索引信息中查找区域内符合条件的文件,同时将搜索请求转发给 若干个其他超级节点,由它们返回其区域内搜索结果。如果需要,这个转发过程可以执行多步以获得更大 范围内的搜索结果。这样的混合式结构对异构的终端节点“分而治之”,可以充分利用一些能力较强的终 端节点来担任“小”服务器的角色,可谓是“人尽其才,物尽其用”。除了这些无结构的P2P文件共享协议之外,几乎所有的DHT网络都可以并已经用来实现文件共享的应 用,如 Chord. Pas try KAD、CAN 等应用。(3)流媒体直播曾经人们以为P2P做文件共享最合适,但现在大家发
12、现P2P模式是如此适合于流媒体直播,以至于研 究热点在很短的时间内迅速转移到P2P的流媒体上来。中国最早的P2P流媒体直播软件应该算香港科技大 学计算机系研究的Coolstreaming5华中科技大学集群与网格计算湖北省实验室研究的AnySee9以及 清华大学的Gridmedia等系统。Coolstreaming是一款基于网状无结构网络拓扑的流媒体直播软件,中文名叫做“酷流”。在 Coolstreaming中,每一个节点通过登录服务器(BS)进入网络,并得到一些邻居列表。每一个节点和邻居 之间共享媒体数据。Coolstreaming中节点共享媒体数据是基于一种称作“数据驱动”的机制。首先,对
13、于节 点缓冲区内所拥有的数据,使用一种“缓冲映射表(Buffer Map)来进行标记:对于每一秒的媒体内 容,如果节点已经从节目源或者邻居处获取,则标记该秒数据为“1”,否则标记为“0”。这样,一个80 秒长度的缓冲区就对应一个80位长度的缓冲映射表。其次,节点之间以“心跳”(Heartbeat)方式定期 交换各自的缓冲映射表,通过比对得到自己没有而邻居拥有的数据位,然后根据数据调度算法,选择合适 的邻居,请求得到相应的数据。Coolstreemiing采取全网状结构组织网络中的节点,每一个节点连接20个 摆布的邻居,在定期交换缓冲映射表的同时,还要交换自己的邻居列表。这样,在一个邻居离开时,
14、可以 从它最近提供的邻居列表中选择一个连接数没有达到上限的邻居作为“替补”邻居进行连接。最早期的 Coolstreaming是采取随机选取邻居的策略,即从BS上随机返回一些当前在线的节点列表,然后随机从中 选择一些节点进行连接,在选择“替补”邻居时也是随机的。这样做同时又可以达到一定程度的负载平衡效果,因为每一个 节点连接的邻居数基本是均匀的。但是这样做的缺点也是明显的,两个距离很远、连接很差的节点也可能 被调度成为邻居,大大影响的系统的服务质量。华中科技大学集群与网格计算湖北省重点实验室是中国最早研究P2P流媒体直播的小组之一,它所研 发的AnySee软件期望能够使得用户在网上任何时候任何地
15、点都能观看多媒体直播节目。AnySee的第一个版本基于树状结构:节目源是一个多播树的根节点,之后的节点被调度为其“儿子” 或者子树。每一个节点向其父节点索要数据,并将数据提供给多个子节点。这样的结构可以使得节点快速加入 到网络中,并且可以根据IP邻近原则构建起一棵IP多播树;使得节点加入位置都是和自己IP邻近的节点, 从而优化服务质量。之后AnySee推出第二个版本,结合了原有的树状结构和流行的网状结构,使得“控制 数据走树,媒体数据走网”,既能匡助节点快速定位到加入点,又能实现一定程度的负载均衡,并缓解了 原有纯树状结构中底层节点和顶层节点之间播放时差较大的问题。最近的AnySee版本已经取
16、销了树的结 构,演化成为了优化的网状结构(如图2所示),即每一个节点维护一定数量的邻居成员,并从中选出最合适的 “火伴”节点与之交换数据。火伴的数量既有上限又有下限,在不满足下限时,节点会不断寻觅新的合适 节点加入火伴列表;在达到下限时,节点住手主动寻觅火伴的过程,但可以接受其他节点将其加入火伴列 表的请求;在达到上限时,节点再也不和新的节点建立火伴关系。图2 AnySee索发运行都香图除了学术界对P2P流媒体直播的研究外,中国还涌现了不少成功的P2P流媒体直播商业产品,如PPLive、 PPStream,沸点和TVAnts等,其中以PPLive最为有名。PPLive目前拥有数百个频道,在20
17、22年“超级 女声”决赛期间,频道观看人数达到十万人,可以说是把P2P发挥到了极限。此外,国外也有不少对P2P 流媒体直播的研究,如SplitStream10等。(4)流媒体点播由于观看直播节目时用户不能选择观看指定片段,所以在人们热烈研究P2P流媒体直播时,已有人开 始将目光转向P2P流媒体点播服务。目前成功推出P2P流媒体点播的机构还不多,典型的有GridCast11 系统、PPStream点播系统。GridCast也是一款由华中科技大学集群与网格计算湖北省重点实验室于2005 年12月份成功研发并投入使用的对等视频点播系统,具有支持多人共享点播片段、跟踪(Tracker)服务器 用户引导
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- P2P 技术 原理 应用
限制150内