- 经验
- 24198
- 分贝
- 0
- 家园分
- 47315
- 在线时间:
- 34 小时
- 最后登录:
- 2010-8-25
- 帖子:
- 5577
- 精华:
- 9
- 注册时间:
- 2007-8-29
- UID:
- 179942
注册:2007-8-29
|
<p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">摘要:对等网络<span lang="EN-US">(P2P)</span>有<span lang="EN-US">3</span>种主要的组织结构:分布式哈希表<span lang="EN-US">(DHT)</span>结构、树形结构、网状结构。<span lang="EN-US">2P<a href="http://www.cww.net.cn/tech" target="_blank"><span lang="EN-US" style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none;"><span lang="EN-US">技术</span></span></a></span>已经延伸到几乎所有的网络应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。现在人们已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间<span lang="EN-US">(Inter-Overlay)</span>优化研究、<span lang="EN-US">2P</span>支撑平台研究以及<span lang="EN-US">2P</span>安全研究等方面。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">关键词:对等网络;分布式哈希表;覆盖层网络<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"><font face="宋体">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.<p></p></font></span></b></p><p style="LINE-HEIGHT: 150%;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"><font face="宋体"> Keywords2P;distributedHash table; overlay network<p></p></font></span></b></p><p style="LINE-HEIGHT: 150%;"><strong><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体;"> 1 P2P</span></strong><strong><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体;">技术原理</span></strong><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"><p></p></span></b></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">什么是对等网络<span lang="EN-US">(P2P)</span>技术?<span lang="EN-US">2P</span>技术属于覆盖层网络<span lang="EN-US">(Overlay Network)</span>的范畴,是相对于客户机<span lang="EN-US">/<a href="http://www.cww.net.cn/tech/·þÎñÆ÷" target="_blank"><span lang="EN-US" style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none;"><span lang="EN-US">服务器</span></span></a>(C/S)</span>模式来说的一种网络信息<span lang="EN-US"><a href="http://www.cww.net.cn/techClass1" target="_blank"><span lang="EN-US" style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none;"><span lang="EN-US">交换</span></span></a></span>方式。在<span lang="EN-US">C/S</span>模式中,数据的分发采用专门的服务器,多个客户端都从此服务器获取数据。这种模式的优点是:数据的一致性容易控制,系统也容易管理。但是此种模式的缺点是:因为服务器的个数只有一个<span lang="EN-US">(</span>即便有多个也非常有限<span lang="EN-US">)</span>,系统容易出现单一失效点;单一服务器面对众多的客户端,由于<span lang="EN-US">CPU</span>能力、内存大小、网络带宽的限制,可同时服务的客户端非常有限,可扩展性差。<span lang="EN-US">2P</span>技术正是为了解决这些问题而提出来的一种对等网络结构。在<span lang="EN-US">P2P</span>网络中,每个节点既可以从其他节点得到服务,也可以向其他节点提供服务。这样,庞大的终端资源被利用起来,一举解决了<span lang="EN-US">C/S</span>模式中的两个弊端。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> P2P</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">网络有<span lang="EN-US">3</span>种比较流行的组织结构,被应用在不同的<span lang="EN-US">P2P</span>应用中。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> (1)DHT</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">结构<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">分布式哈希表<span lang="EN-US">(DHT)[1]</span>是一种功能强大的工具,它的提出引起了学术界一股研究<span lang="EN-US">DHT</span>的热潮。虽然<span lang="EN-US">DHT</span>具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识<span lang="EN-US">(ID)</span>,节点<span lang="EN-US">ID</span>是一个<span lang="EN-US">128</span>位的哈希值。每个节点都在路由表里保存了其他前驱、后继节点的<span lang="EN-US">ID</span>。如图<span lang="EN-US">1(a)</span>所示。通过这些路由信息,可以方便地找到其他节点。这种结构多用于文件共享和作为底层结构用于流媒体<span lang="EN-US"><a href="http://www.cww.net.cn/techClass0" target="_blank"><span lang="EN-US" style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none;"><span lang="EN-US">传输</span></span></a>[2]</span>。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> (2)</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">树形结构<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> P2P</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">网络树形结构如图<span lang="EN-US">1(b)</span>所示。在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。信息的流向沿着树枝流动。最初的树形结构多用于<span lang="EN-US">P2P</span>流媒体直播<span lang="EN-US">[3-4]</span>。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> (3)</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">网状结构<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">网状结构如图<span lang="EN-US">1(c)</span>所示,又叫无结构。顾名思义,这种结构中,所有的节点无规则地连在一起,没有稳定的关系,没有父子关系。网状结构<span lang="EN-US">[5]</span>为<span lang="EN-US">P2P</span>提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如<span lang="EN-US">KaZaA[6]</span>。<span lang="EN-US"><p></p></span></span></b></font></p><p align="center" style="LINE-HEIGHT: 150%; TEXT-ALIGN: center;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" opreferrelative="t" ospt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path oconnecttype="rect" gradientshapeok="t" oextrusionok="f"></path><lock aspectratio="t" vext="edit"></lock></shapetype><shape id="_x0000_i1025" alt="" type="#_x0000_t75" style="WIDTH: 333.75pt; HEIGHT: 142.5pt;"><imagedata ohref="http://www.cww.net.cn/upLoadFile/2007/12/27/20071227132310734.gif" src="file:///D:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"><font face="宋体"></font></imagedata></shape><p></p></span></b></p><p style="LINE-HEIGHT: 150%;"><strong><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体;"> 2 P2P</span></strong><strong><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体;">技术应用现状</span></strong><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"><p></p></span></b></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">由于能够极大缓解传统架构中服务器端的压力过大、单一失效点等问题,又能充分利用终端的丰富资源,所以<span lang="EN-US">P2P</span>技术被广泛应用于计算机网络的各个应用领域,如分布式科学计算、文件共享、流媒体直播与点播、语音通信及在线游戏支撑平台等方面。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> (1)</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">分布式科学计算<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">我们知道,许多计算机的<span lang="EN-US">CPU</span>资源并不是时刻保持峰值运转的,甚至很多时候计算机处于<span lang="EN-US">“</span>空闲<span lang="EN-US">”</span>状态,比如使用者暂时离开等情况。而<span lang="EN-US">P2P</span>技术可以使得众多终端的<span lang="EN-US">CPU</span>资源联合起来,服务于一个共同的计算。这种计算一般是计算量巨大、数据极多、耗时很长的科学计算。在每次计算过程中,任务<span lang="EN-US">(</span>包括逻辑与数据等<span lang="EN-US">)</span>被划分成多个片,被分配到参与科学计算的<span lang="EN-US">P2P</span>节点机器上。在不影响原有计算机使用的前提下,人们利用分散的<span lang="EN-US">CPU</span>资源完成计算任务,并将结果返回给一个或多个服务器,将众多结果进行整合,以得到最终结果。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">世界最著名的<span lang="EN-US">P2P</span>分布式科学计算系统非<span lang="EN-US">“SETI@home”</span>项目莫属。<span lang="EN-US">SETI@home</span>项目<span lang="EN-US">(</span>简称为<span lang="EN-US">S@H</span>或<span lang="EN-US">SETI)</span>,由美国加利福尼亚大学伯克利分校在<span lang="EN-US">1999</span>年发起,是至今最成功的分布式计算项目。<span lang="EN-US">SETI@home</span>通过分析从射电望远镜传来的数据来搜寻地外文明,这在不少科幻迷甚至是很多普通大众眼里都是一个<span lang="EN-US">“</span>很酷<span lang="EN-US">”</span>的应用。<span lang="EN-US">SETI</span>的早期版本截至<span lang="EN-US">2005</span>年已经吸引了<span lang="EN-US">543</span>万用户,分析了大量积压数据。正如宇宙的浩瀚一般,需要计算的数据<span lang="EN-US">(</span>即存在宇宙空间的无数无线<span lang="EN-US"><a href="http://www.cww.net.cn/qiye/qy148.htm" target="_blank"><span lang="EN-US" style="COLOR: windowtext; TEXT-DECORATION: none; text-underline: none;"><span lang="EN-US">电信</span></span></a></span>号<span lang="EN-US">)</span>也是海量的。可以说,这几百万台终端组成了一个目前最快的高性能计算机都望尘莫及的<span lang="EN-US">“</span>超级计算机<span lang="EN-US">”</span>。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> (2)</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">文件共享<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">要问一百个网友目前中国最流行的文件下载方式,恐怕<span lang="EN-US">99</span>个都会回答是<span lang="EN-US">“BT”</span>。<span lang="EN-US">“BT”</span>是<span lang="EN-US">BitTorrent[7]</span>的简称,是一种依赖<span lang="EN-US">P2P</span>方式将文件在大量互联网用户之间进行共享与传输的协议,对应的客户端软件有<span lang="EN-US">BitTorrent</span>、<span lang="EN-US">BitComet</span>和<span lang="EN-US">BitSpirit</span>等。由于其实现简单、使用方便,在中国用户之间被广泛使用。<span lang="EN-US">BitTorrent</span>中的节点在共享一个文件时,首先将文件分片并将文件和分片信息保存在一个流<span lang="EN-US">(Torrent)</span>类型文件中,这种节点被形象地称作<span lang="EN-US">“</span>种子<span lang="EN-US">”</span>节点。其他用户在下载该文件时根据<span lang="EN-US">Torrent</span>文件的信息,将文件的部分分片下载下来,然后在其他下载该文件的节点之间共享自己已经下载的分片,互通有无,从而实现文件的快速分发。由于每个节点在下载文件的同时也在为其他用户上传该文件的分片,所以整体来看,不会随着用户数的增加而降低下载速度,反而下载的人越多,速度越快。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> BitTorrent</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">是一种无结构的网络协议。除了<span lang="EN-US">BitTorrent</span>之外,还有不少著名的无结构化的<span lang="EN-US">P2P</span>文件共享协议,典型的有<span lang="EN-US">Gnutella[8]</span>和<span lang="EN-US">KaZaA[6]</span>。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font face="宋体"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"> Gnutella</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">协议是一种最典型的完全分布式、无等级结构的<span lang="EN-US">P2P</span>网络模型。网络中的节点随机连接若干个其他节点,称之为<span lang="EN-US">“</span>邻居<span lang="EN-US">”</span>。这种结构能够很好地适应<span lang="EN-US">P2P</span>网络中节点频繁加入与离开的动态特性,因为任意一个节点都可以被新加入的节点作为<span lang="EN-US">“</span>邻居<span lang="EN-US">”</span>而连接,任意一个<span lang="EN-US">“</span>邻居<span lang="EN-US">”</span>也可以随意地离开网络。同时,这种加入节点和离开节点的选择是节点间的独立行为,随机分布于网络之中。所以说<span lang="EN-US">Gnutella</span>的网络具有健壮性、实时性、可靠性、负载平衡等优势。<span lang="EN-US"><p></p></span></span></b></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><p><font face="Times New Roman"> </font></p></span></b></p>
|
|