转载:P2P技术原理及应用(1)

转帖allen303allen的空间node

做 者:金海 廖小飞安全

    摘要:对等网络(P2P)有3种主要的组织结构:分布式哈希表(DHT)结构、树形结构、网状结构。P2P技术已 经延伸到几乎全部的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通讯及在线游戏支撑平台等方面。如今人们已经开始将重心转入到覆盖 层网络的节点延时汇集研究、覆盖网之间(Inter-Overlay)优化研究、P2P支撑平台研究以及P2P安全研究等方面。服务器

    关键词:对等网络;分布式哈希表;覆盖层网络网络

Abstract:ThePeer-to-peer(P2P)network has three main structures: Distributed Hash Table (DHT) structure, tree structure, and mesh structure. P2P technology has been extended to almost all areas of network applications, including distributed scientific computing, file sharing, streaming media on-demand and live broadcast, voice communications, and online gaming support platform. Now, study areas such as node latency aggregation for overlay network, Inter-Overlay optimization, P2P supporting platform, and P2P security are receiving more attention.架构

    Keywords:P2P;distributedHash table; overlay networkapp

1 P2P技术原理分布式

    什么是对等网络(P2P)技术?P2P技术属于覆盖层网络(Overlay Network)的范畴,是相对于客户机/服务器(C/S)模式来讲的一种网络信息交换方 式。在C/S模式中,数据的分发采用专门的服务器,多个客户端都今后服务器获取数据。这种模式的优势是:数据的一致性容易控制,系统也容易管理。可是此种 模式的缺点是:由于服务器的个数只有一个(即使有多个也很是有限),系统容易出现单一失效点;单一服务器面对众多的客户端,因为CPU能力、内存大小、网 络带宽的限制,可同时服务的客户端很是有限,可扩展性差。P2P技术正是为了解决这些问题而提出来的一种对等网络结构。在P2P网络中,每一个节点既能够从 其余节点获得服务,也能够向其余节点提供服务。这样,庞大的终端资源被利用起来,一举解决了C/S模式中的两个弊端。工具

    P2P网络有3种比较流行的组织结构,被应用在不一样的P2P应用中。性能

    (1)DHT结构优化

    分布式哈希表(DHT)[1]是一种功能强大的工具,它的提出引发了学术界一股研究DHT的热潮。虽然DHT具备各类各样的实现方式,可是具备共同的特 征,即都是一个环行拓扑结构,在这个结构里每一个节点具备一个惟一的节点标识(ID),节点ID是一个128位的哈希值。每一个节点都在路由表里保存了其余前 驱、后继节点的ID。如图1(a)所示。经过这些路由信息,能够方便地找到其余节点。这种结构多用于文件共享和做为底层结构用于流媒体传输[2]。

    (2)树形结构

    P2P网络树形结构如图1(b)所示。在这种结构中,全部的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其余节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于P2P流媒体直播[3-4]。

    (3)网状结构

    网状结构如图1(c)所示,又叫无结构。顾名思义,这种结构中,全部的节点无规则地连在一块儿,没有稳定的关系,没有父子关系。网状结构[5]为P2P提供 了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,经常会引入超级节点的概念,超级节点能够和任何一种以上结构 结合起来组成新的结构,如KaZaA[6]。

 

2 P2P技术应用现状

    因为可以极大缓解传统架构中服务器端的压力过大、单一失效点等问题,又能充分利用终端的丰富资源,因此P2P技术被普遍应用于计算机网络的各个应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通讯及在线游戏支撑平台等方面。

    (1)分布式科学计算

    咱们知道,许多计算机的CPU资源并非时刻保持峰值运转的,甚至不少时候计算机处于“空闲”状态,好比使用者暂时离开等状况。而P2P技术可使得众多 终端的CPU资源联合起来,服务于一个共同的计算。这种计算通常是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程当中,任务(包括逻辑与数据 等)被划分红多个片,被分配到参与科学计算的P2P节点机器上。在不影响原有计算机使用的前提下,人们利用分散的CPU资源完成计算任务,并将结果返回给 一个或多个服务器,将众多结果进行整合,以获得最终结果。

    世界最著名的P2P分布式科学计算系统非“SETI@home”项目莫属。SETI@home项目(简称为S@H或SETI),由美国加利福尼亚大学伯克 利分校在1999年发起,是至今最成功的分布式计算项目。SETI@home经过分析从射电望远镜传来的数据来搜寻地外文明,这在很多科幻迷甚至是不少普 通大众眼里都是一个“很酷”的应用。SETI的早期版本截至2005年已经吸引了543万用户,分析了大量积压数据。正如宇宙的浩瀚通常,须要计算的数据 (即存在宇宙空间的无数无线电信号)也是海量的。能够说,这几百万台终端组成了一个目前最快的高性能计算机都可望不可即的“超级计算机”。

    (2)文件共享

    要问一百个网友目前中国最流行的文件下载方式,恐怕99个都会回答是“BT”。“BT”是BitTorrent[7]的简称,是一种依赖P2P方式将文件 在大量互联网用户之间进行共享与传输的协议,对应的客户端软件有BitTorrent、BitComet和BitSpirit等。因为其实现简单、使用方 便,在中国用户之间被普遍使用。BitTorrent中的节点在共享一个文件时,首先将文件分片并将文件和分片信息保存在一个流(Torrent)类型文 件中,这种节点被形象地称做“种子”节点。其余用户在下载该文件时根据Torrent文件的信息,将文件的部分分片下载下来,而后在其余下载该文件的节点 之间共享本身已经下载的分片,互通有无,从而实现文件的快速分发。因为每一个节点在下载文件的同时也在为其余用户上传该文件的分片,因此总体来看,不会随着 用户数的增长而下降下载速度,反而下载的人越多,速度越快。

    BitTorrent是一种无结构的网络协议。除了BitTorrent以外,还有很多著名的无结构化的P2P文件共享协议,典型的有Gnutella[8]和KaZaA[6]。

    Gnutella协议是一种最典型的彻底分布式、无等级结构的P2P网络模型。网络中的节点随机链接若干个其余节点,称之为“邻居”。这种结构可以很好地 适应P2P网络中节点频繁加入与离开的动态特性,由于任意一个节点均可以被新加入的节点做为“邻居”而链接,任意一个“邻居”也能够随意地离开网络。同 时,这种加入节点和离开节点的选择是节点间的独立行为,随机分布于网络之中。因此说Gnutella的网络具备健壮性、实时性、可靠性、负载平衡等优点。

相关文章
相关标签/搜索