通信人家园

标题: P2P技术原理及应用  [查看完整版帖子] [打印本页]

时间:  2007-12-29 14:48
作者: gofay     标题: P2P技术原理及应用

<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%;">&nbsp; </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%;">&nbsp;&nbsp;&nbsp; </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="宋体">&nbsp;&nbsp;&nbsp; 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: 宋体;">&nbsp;&nbsp;&nbsp; 1&nbsp; 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%;">&nbsp;&nbsp;&nbsp; </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/·&thorn;&Icirc;&ntilde;&AElig;÷" 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%;">&nbsp;&nbsp;&nbsp; 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%;">&nbsp;&nbsp;&nbsp; (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%;">&nbsp;&nbsp;&nbsp; </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%;">&nbsp;&nbsp;&nbsp; (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%;">&nbsp;&nbsp;&nbsp; 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%;">&nbsp;&nbsp;&nbsp; (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%;">&nbsp;&nbsp;&nbsp; </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: 宋体;">&nbsp;&nbsp;&nbsp; 2&nbsp; 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%;">&nbsp;&nbsp;&nbsp; </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%;">&nbsp;&nbsp;&nbsp; (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%;">&nbsp;&nbsp;&nbsp; </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%;">&nbsp;&nbsp;&nbsp; </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%;">&nbsp;&nbsp;&nbsp; (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%;">&nbsp;&nbsp;&nbsp; </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%;">&nbsp;&nbsp;&nbsp; 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%;">&nbsp;&nbsp;&nbsp; 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">&nbsp;</font></p></span></b></p>
时间:  2007-12-29 14:53
作者: gofay

<p><b style="mso-bidi-font-weight: normal;"><font size="3">在<span lang="EN-US">Gnutella</span>网络中存在以下问题:<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span>冗余消息多,对带宽的消耗存在一定的浪费。<span lang="EN-US">Gnutella</span>网络协议采用泛洪式<span lang="EN-US">(Flooding)</span>消息传播机制,这种消息传播机制产生了呈指数级增长的冗余消息。据统计,<span lang="EN-US">2P</span>软件白天占<span lang="EN-US">Internet</span>上运行带宽的<span lang="EN-US">40%</span>~<span lang="EN-US">70%</span>,晚上有时能达到<span lang="EN-US">80%</span>。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span>搜索效率低,可扩展性差。<span lang="EN-US">Gnutella</span>网络的搜索协议将所有资源与节点统一对待,没有考虑节点的性能差异,也没有利用查询成功的历史经验,使得搜索效率低下。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; KaZaA</span>协议中节点大体上也是无结构连接的。但是在<span lang="EN-US">KaZaA</span>协议中存在一种<span lang="EN-US">“</span>超级节点<span lang="EN-US">”</span>。这种<span lang="EN-US">“</span>超级节点<span lang="EN-US">”</span>其实是来源于各个普通的客户端节点,但它们一般具有计算能力强、</font><span lang="EN-US"><a href="http://www.cww.net.cn/techClass0" target="_blank"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: windowtext;"><span lang="EN-US">接入</span></span></a></span><font size="3">带宽大、在线时间稳定等特点。在<span lang="EN-US">KaZaA</span>协议中,超级节点承担着部分服务器的任务,如管理部分普通节点,负责搜索消息的转发等。每一个节点上线后会寻找一个超级节点挂靠,并和原先挂靠在该超级节点下的其他普通节点随机相连,组成一个小的无结构网络。普通节点的共享文件索引汇报给所挂靠的超级节点。因而,<span lang="EN-US">KaZaA</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">“</span>人尽其才,物尽其用<span lang="EN-US">”</span>。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span>除了这些无结构的<span lang="EN-US">2P</span>文件共享协议之外,几乎所有的<span lang="EN-US">DHT</span>网络都可以并已经用来实现文件共享的应用,如<span lang="EN-US">Chord</span>、<span lang="EN-US">astry</span>、<span lang="EN-US">KAD</span>、<span lang="EN-US">CAN</span>等应用。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; (3)</span>流媒体直播<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span>曾经人们以为<span lang="EN-US">2P</span>做文件共享最合适,但现在大家发现<span lang="EN-US">2P</span>模式是如此适合于流媒体直播,以至于研究热点在很短的时间内迅速转移到<span lang="EN-US">P2P</span>的流媒体上来。中国最早的<span lang="EN-US">P2P</span>流媒体直播软件应该算香港科技大学计算机系研究的<span lang="EN-US">Coolstreaming[5]</span>、华中科技大学</font><span lang="EN-US"><a href="http://www.cww.net.cn/tech/&frac14;&macr;&Egrave;&ordm;" target="_blank"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: windowtext;"><span lang="EN-US">集群</span></span></a></span><font size="3">与网格计算湖北省实验室研究的<span lang="EN-US">AnySee[9]</span>以及清华大学的<span lang="EN-US">Gridmedia</span>等系统。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; Coolstreaming</span>是一款基于网状无结构网络拓扑的流媒体直播软件,中文名叫做<span lang="EN-US">“</span>酷流<span lang="EN-US">”</span>。在<span lang="EN-US">Coolstreaming</span>中,每个节点通过登录服务器<span lang="EN-US">(BS)</span>进入网络,并得到一些邻居列表。每个节点和邻居之间共享媒体数据。<span lang="EN-US">Coolstreaming</span>中节点共享媒体数据是基于一种称作<span lang="EN-US">“</span>数据驱动<span lang="EN-US">”</span>的机制。首先,对于节点缓冲区内所拥有的数据,使用一种<span lang="EN-US">“</span>缓冲映射表<span lang="EN-US">”(Buffer Map)</span>来进行标记:对于每一秒的媒体内容,如果节点已经从节目源或邻居处获取,则标记该秒数据为<span lang="EN-US">“<chmetcnv wst="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="”">1”</chmetcnv></span>,否则标记为<span lang="EN-US">“<chmetcnv wst="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="”">0”</chmetcnv></span>。这样,一个<span lang="EN-US">80</span>秒长度的缓冲区就对应一个<span lang="EN-US">80</span>位长度的缓冲映射表。其次,节点之间以<span lang="EN-US">“</span>心跳<span lang="EN-US">”(Heartbeat)</span>方式定期交换各自的缓冲映射表,通过比对得到自己没有而邻居拥有的数据位,然后根据数据调度算法,选择合适的邻居,请求得到相应的数据。<span lang="EN-US">Coolstreaming</span>采取全网状结构组织网络中的节点,每个节点连接<span lang="EN-US">20</span>个左右的邻居,在定期交换缓冲映射表的同时,还要交换自己的邻居列表。这样,在一个邻居离开时,可以从它最近提供的邻居列表中选择一个连接数没有达到上限的邻居作为<span lang="EN-US">“</span>替补<span lang="EN-US">”</span>邻居进行连接。最早期的<span lang="EN-US">Coolstreaming</span>是采取随机选取邻居的策略,即从<span lang="EN-US">BS</span>上随机返回一些当前在线的节点列表,然后随机从中选择一些节点进行连接,在选择<span lang="EN-US">“</span>替补<span lang="EN-US">”</span>邻居时也是随机的。这样做同时又可以达到一定程度的负载平衡效果,因为每个节点连接的邻居数基本是均匀的。但是这样做的缺点也是明显的,两个距离很远、连接很差的节点也可能被调度成为邻居,大大影响的系统的服务质量。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span>华中科技大学集群与网格计算湖北省重点实验室是中国最早研究<span lang="EN-US">P2P</span>流媒体直播的小组之一,它所研发的<span lang="EN-US">AnySee</span>软件期望能够使得用户在网上任何时候任何地点都能观看多媒体直播节目。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; AnySee</span>的第一个版本基于树状结构:节目源是一个多播树的根节点,之后的节点被调度为其<span lang="EN-US">“</span>儿子<span lang="EN-US">”</span>或子树。每个节点向其父节点索要数据,并将数据提供给多个子节点。这样的结构可以使得节点快速加入到网络中,并且可以根据<span lang="EN-US">IP</span>邻近原则构建起一棵<span lang="EN-US">IP</span>多播树,使得节点加入位置都是和自己<span lang="EN-US">IP</span>邻近的节点,从而优化服务质量。之后<span lang="EN-US">AnySee</span>推出第二个版本,结合了原有的树状结构和流行的网状结构,使得<span lang="EN-US">“</span>控制数据走树,媒体数据走网<span lang="EN-US">”</span>,既能帮助节点快速定位到加入点,又能实现一定程度的负载均衡,并缓解了原有纯树状结构中底层节点和顶层节点之间播放时差较大的问题。最近的<span lang="EN-US">AnySee</span>版本已经取消了树的结构,演化成了优化的网状结构<span lang="EN-US">(</span>如图<span lang="EN-US">2</span>所示<span lang="EN-US">)</span>,即每个节点维护一定数量的邻居成员,并从中选出最合适的<span lang="EN-US">“</span>伙伴<span lang="EN-US">”</span>节点与之交换数据。伙伴的数量既有上限又有下限,在不满足下限时,节点会不断寻找新的合适节点加入伙伴列表;在达到下限时,节点停止主动寻找伙伴的过程,但可以接受其他节点将其加入伙伴列表的请求;在达到上限时,节点不再和新的节点建立伙伴关系。<span lang="EN-US"><p></p></span></font></b></p><p align="center" style="TEXT-ALIGN: center;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US"><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: 204pt;"><imagedata ohref="http://www.cww.net.cn/upLoadFile/2007/12/27/20071227132310580.gif" src="file:///D:\DOCUME~1\admin\LOCALS~1\Temp\msohtml1\01\clip_image001.gif"><font size="3"></font></imagedata></shape><p></p></span></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span>除了学术界对<span lang="EN-US">P2P</span>流媒体直播的研究外,中国还涌现了很多成功的<span lang="EN-US">P2P</span>流媒体直播商业产品,如<span lang="EN-US">PPLive</span>、<span lang="EN-US">PPStream</span>、沸点和<span lang="EN-US">TVAnts</span>等,其中以<span lang="EN-US">PPLive</span>最为有名。<span lang="EN-US">PPLive</span>目前拥有数百个频道,在<span lang="EN-US">2006</span>年<span lang="EN-US">“</span>超级女声<span lang="EN-US">”</span>决赛期间,频道观看人数达到十万人,可以说是把<span lang="EN-US">P2P</span>发挥到了极限。此外,国外也有不少对<span lang="EN-US">P2P</span>流媒体直播的研究,如<span lang="EN-US">SplitStream[10]</span>等。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; (4)</span>流媒体点播<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; </span>由于观看直播节目时用户不能选择观看指定片段,所以在人们热烈研究<span lang="EN-US">P2P</span>流媒体直播时,已有人开始将目光转向<span lang="EN-US">P2P</span>流媒体点播服务。目前成功推出<span lang="EN-US">P2P</span>流媒体点播的机构还不多,典型的有<span lang="EN-US">GridCast[11]</span>系统、<span lang="EN-US">PPStream</span>点播系统。<span lang="EN-US">GridCast</span>也是一款由华中科技大学集群与网格计算湖北省重点实验室于<span lang="EN-US">2005</span>年<span lang="EN-US">12</span>月份成功研发并投入使用的对等视频点播系统,具有支持多人共享点播片段、跟踪<span lang="EN-US">(Tracker)</span>服务器用户引导、环状结构内容组织等特点。由于一个点播频道的人数往往不会太多,所以在用户进行视频录放<span lang="EN-US">(VCR)</span>操作时<span lang="EN-US">(</span>即前后拖动播放点、暂停<span lang="EN-US">/</span>继续播放等操作<span lang="EN-US">)</span>,能否快速将用户定位到观看该点节目的其他用户处就成了<span lang="EN-US">P2P</span>点播技术的关键。为了实现快速定位,<span lang="EN-US">GridCast</span>中采取了一种同心圆环的媒体内容组织结构。在每一个节目频道里,媒体内容按指数递增的区间进行划分,例如一个一个半小时的电影节目,可划分成<span lang="EN-US">[0, 5]</span>、<span lang="EN-US">(5, 15]</span>、<span lang="EN-US">(15, 35]</span>、<span lang="EN-US">(35, 75]</span>和<span lang="EN-US">(75, END=90]</span>几段,其单位为分钟。每个节点记录几个正在观看各个段之间内容的节点。这样,在和<span lang="EN-US">AnySee</span>类似的网状结构中,可以定期交换这种分段记录,从而,在某个用户拖动观看点时,可以快速定位到相应段的记录节点处,并从这些节点当时所观看的区间内得到大量备用记录以请求该区间媒体数据。此外,<span lang="EN-US">GridCast</span>还根据用户习惯对数据调度策略进行优化。<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; (5)IP</span>层语音通信<span lang="EN-US"><p></p></span></font></b></p><p><b style="mso-bidi-font-weight: normal;"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp; IP</span>层语音通信</font><span lang="EN-US"><font size="3">(</font><a href="http://www.cww.net.cn/VOIP/" target="_blank"><span style="FONT-SIZE: 10.5pt; COLOR: windowtext;">VoIP</span></a><font size="3">)</font></span><font size="3">是一种全新的</font><span lang="EN-US"><a href="http://www.cww.net.cn/tech/tech.asp?id=179" target="_blank"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: windowtext;"><span lang="EN-US">网络电话</span></span></a></span><font size="3">通信业务,它和传统的</font><span lang="EN-US"><a href="http://www.cww.net.cn/tech/PSTN" target="_blank"><span style="FONT-SIZE: 10.5pt; COLOR: windowtext;">PSTN</span></a></span><font size="3">电话业务相比有着扩展性好、部署方便、价格低廉等明显的优点。在全球范围内的<span lang="EN-US">VoIP</span>应用中,由于通信各方可能处于不同的网络状况下,所以采取少数几个服务器来进行话音包中转不仅存在压力过大的问题,还可能无法为指定通信双方提供满意的通话质量保证。所以采取<span lang="EN-US">P2P</span>技术动态自适应地根据通信双方网络进行链路控制与消息转发是可行的</font><span lang="EN-US"><a href="http://www.cww.net.cn/jjfa/" target="_blank"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: windowtext;"><span lang="EN-US">解决方案</span></span></a></span><font size="3">。<span lang="EN-US"><p></p></span></font></b></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" size="3">&nbsp;</font></p></span></b></p>
时间:  2007-12-29 14:54
作者: gofay

<p style="LINE-HEIGHT: 150%;"><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;"><font size="3">目前风靡全球的<span lang="EN-US">Skype[12]</span>即是一款典型的<span lang="EN-US">2P VoIP</span>软件。<span lang="EN-US">Skype</span>由于能够提供清晰的语音质量和免费的服务,使用起来又方便快捷,所以吸引了全球数千万的用户,每天在线用户达<span lang="EN-US">500</span>万人,并且注册用户数每天增加<span lang="EN-US">15</span>万。基本上,<span lang="EN-US">Skype</span>采取类似<span lang="EN-US">KaZaA</span>的拓扑结构,在网络中选取一些超级节点。在通信双方直连效果不好时,一些合适的超级节点则担当起其中转节点的角色,为通信双方创建中转连接,并转发相应的语音通信包。<span lang="EN-US"><p></p></span></font></span></b></p><p style="LINE-HEIGHT: 150%;"><font size="3"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">&nbsp;&nbsp;&nbsp; (6)</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 size="3"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">&nbsp;&nbsp;&nbsp; </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">大型网络在线游戏和网络对战游戏是不少<span lang="EN-US">“</span>网虫<span lang="EN-US">”</span>的至爱。但由于服务器能力有限,大型网络在线游戏往往需要限制场景人数或者不断增加服务器,而网络对战游戏也必须局限在<span lang="EN-US"><a href="http://www.cww.net.cn/tech/&frac34;&Ouml;&Oacute;ò&Iacute;&oslash;" 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">Internet</span>上的电子竞技。目前,已有研究人员将<span lang="EN-US">2P</span>技术引入网络游戏和网络游戏支撑平台中。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font size="3"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">&nbsp;&nbsp;&nbsp; </span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">目前较为成功的<span lang="EN-US">2P</span>游戏平台是华中科技大学集群与网格计算湖北省重点实验室推出的<span lang="EN-US">KTown[13]</span>系统。<span lang="EN-US">KTown</span>系统是一个支持多种网络对战游戏的<span lang="EN-US">P2P</span>平台。<span lang="EN-US">P2P</span>网络对战游戏平台的难点在于将严格延时约束的节点聚集在一起,这由对战游戏本身要求所决定:延时是影响对战游戏用户体验的关键因素。在众多在线用户中,如何将新加入用户调度到周围都是延时邻近的环境中去呢?<span lang="EN-US">PKTown</span>也是采取<span lang="EN-US">GridCast</span>中出现过的指数增长的同心圆环方式,很好地解决了这个问题。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font size="3"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">&nbsp;&nbsp;&nbsp; PKTown</span></b><b style="mso-bidi-font-weight: normal;"><span style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">不需要改变游戏本身的代码,而是将用户和<span lang="EN-US">Internet</span>邻居组建成一个虚拟局域网,将游戏发出的通信包截获后负载上虚拟局域网的地址,转发出去,游戏进程接收到之后认为是来自同一局域网的游戏包,则可以正常进行游戏。目前<span lang="EN-US">PKTown</span>支持魔兽争霸、星际争霸和反恐精英几款游戏,已经在高校范围内进行公测,并成功举办华中科技大学第三届<span lang="EN-US">Race War</span>游戏大赛,用户反应良好。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font size="3"><strong><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; mso-bidi-font-family: 宋体;">&nbsp;&nbsp;&nbsp; 3&nbsp; </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></font></p><p style="LINE-HEIGHT: 150%;"><font size="3"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">&nbsp;&nbsp;&nbsp; </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">1999</span>年出现之后,现在已经发展繁荣起来。前文中提到的很多技术都已经趋近成熟,如拓扑构建和内容分发等相关技术。由于<span lang="EN-US">P2P</span>架构灵活,适用面广阔,所以将<span lang="EN-US">P2P</span>应用到新领域的现象层出不穷,<span lang="EN-US">P2P</span>的软件产品也如雨后春笋一般爆炸性增长。<span lang="EN-US"><p></p></span></span></b></font></p><p style="LINE-HEIGHT: 150%;"><font size="3"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="FONT-SIZE: 10.5pt; LINE-HEIGHT: 150%;">&nbsp;&nbsp;&nbsp; </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">P2P</span>技术的根本性问题中去。最新的研究成果表明,不少研究人员已经开始将重心转入到覆盖层网络的节点延时聚集研究、覆盖网之间<span lang="EN-US">(Inter-Overlay)</span>优化研究、<span lang="EN-US">P2P</span>支撑平台研究以及<span lang="EN-US">P2P</span>安全方面的研究等方面。相信随着对<span lang="EN-US">P2P</span>技术研究的不断深入,人们能够对<span lang="EN-US">P2P</span>计算有一个更深入的认识并解决目前<span lang="EN-US">P2P</span>领域中大部分科学问题。可以预见,<span lang="EN-US">P2P</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" size="3">&nbsp;</font></p></span></b></p>
时间:  2008-2-28 12:51
作者: birizj

看看 学习下




通信人家园 (https://www.txrjy.com/) Powered by C114