WEB与P2P:纠缠不休的双螺旋

  • 来源:互联网周刊
  • 关键字:WEB,P2P,纠缠不休,双螺旋
  • 发布时间:2011-04-26 14:46
  WEB与P2P作为互联网两种最基本的模式,一直以来都被看作是一对冤家,但是他们又彼此缠绕不休,仿佛DNA双螺旋结构。

  本刊记者 尚爵

  最早的网络构想可以追溯到遥远的1980年蒂姆·伯纳斯-李构建的ENQUIRE项目。这个类似维基百科的超文本在线编辑数据库,尽管这与我们现在使用的万维网大不相同,但是它们却包含了许多相同的核心思想。在1990年他编写了第一个网页以实现他文中的想法。在那年的圣诞假期,他制作了WEB模式的基础:第一个万维网浏览器和第一个网页服务器。1991年他在alt。hypertext新闻组上发布了万维网项目简介的文章,这一天也标志着因特网上万维网公共服务的首次亮相。1993年,欧洲核子研究组织宣布万维网对任何人免费开放,并不收取任何费用。两个月之后因为他的最大竞争对手Gopher愚蠢的收费策略,万维网终于一统天下,WEB时代来临。

  集中的WEB

  在传统的WEB模式中,信息资源的共享是以服务器为中心的客户/服务器模式工作模式。其中WEB服务器是运行WEB服务器程序、计算能力与存储能力强的计算机,所有WEB页都存储在WEB服务器中。服务器可以为很多WEB浏览器客户提供服务。但是,WEB浏览器之间不能直接通信。显然,在传统互联网的信息资源的共享关系中,服务提供者与服务使用者之间的界限是清晰的,互联网资源也是高度集中的。

  网络资源分布的不均衡性是网络应用系统设计者的设计思想的体现。网络组建的目的就是要实现资源的共享,“资源共享”表现出网络中结点在硬件配置、运算能力、存储能力,以及数据分布等方面存在差异与分布的不均衡性。能力强、资源丰富的计算机充当服务器,能力弱或需要某种资源的计算机作为客户。客户使用服务器的服务,服务器向客户提供网络服务。因此,C/S反映这种网络服务提供者与网络服务使用者的关系。在C/S模式中,客户与服务器在网络服务中的地位不平等,服务器在网络服务中处于中心地位。

  从应用层的应用程序工作模型的角度看,应用程序分为客户端程序与服务器程序。在最开始,因为网络中计算机系统的类型、硬件结构、功能都存在着很大的差异。大型计算机、高档服务器与个人计算机甚至是PDA的运算能力、存储能力和外部设备的配备等方面存在着很大差异,为了弥补这种硬件资源的不均衡性,C/S模式是十分有必要而且重要的。

  从软件的角度来看,很多大型应用软件都是安装在一台专用的服务器中,用户需要通过互联网去访问服务器,成为合法用户之后才能够使用网络的软件资源,这类专用软件保存在专用服务器上,因此用户想要获取某些软件服务,也需要一个服务器。而随着软硬件技术的更新换代,互联网理念的推陈出新,用户的重心渐渐向信息转移,用户渴望参与信息分享,而不只是单纯的接受者。某一类型的数据、文本、图像、视频或音乐资源存放在一台或几台大型服务器中,合法的用户可以通过互联网访问这些信息资源,虽然这样做对保证信息资源使用的合法性与安全性,以及保证数据的完整性与一致性是非常必要的,但这种信息的不均衡性在SNS大行其道的今天愈发无法满足用户分享的需求。

  在计算机硬件配置提高,网络应用水平提高,网络信息资源积累与存储格局的变化的基础上,必将导致网络资源共享模式的变化,在这样的技术发展背景下出现的P2P网络的发展也就显得很自然。

  但从某种角度来看,WEB也并非是完全集中的,世界上的每样事物都必然存在两面性,完全集中或完全分布的结构式不存在的,WEB并没有把所有信息都放在一起,信息可以放在不同的站点上,只需要在浏览器中指明这个站点就可以访问这些站点下的内容。从而实现这些在物理上并不一定在一个站点的信息在逻辑上一体化,使用户来看这些信息是集中的。

  分布的P2P

  与WEB相比,P2P是一种分布式网络,网络的所有参与者共享他们所拥有的一部分硬件资源一以及内容资源,用户之间可以通过对等节点直接访问和使用这些资源而无需经过中间实体。在此网络中的参与者既是资源提供者,又是资源获取者。P2P打破了传统的C/S模式,在网络中的每个结点的地位都是对等的,因此也叫对等联网。每个结点既充当服务器,为其他结点提供服务,同时也可以作为客户端,享用其他结点提供的服务。而且与WEB的HTTP协议相比,P2P在传输数据上,并不会因为在同一站点下载资源而导致速度变慢,相反会因为有更多的节点作为服务器参与而使得传输速度变得更快。

  “1997年7月,Hotline Communications公司成立,并且研制了一种可以使其用户从别人电脑中直接下载东西的软件。”互联网史上最早的P2P软件就这样被简单记载着,正如这种技术本身一样的悄无声息。

  P2P真正走入普通人的生活是在1998年,美国东北波士顿大学的一年级新生、18岁的肖恩范宁为了帮助他的室友在互联网上方便的搜索音乐,编写了一个简单的程序,这个程序能够搜索音乐文件并提供检索,把所有的音乐文件地址存放在一个集中的服务器中,这样使用者就能够方便地过滤上百的地址而找到自己需要的MP3文件。而令所有人都没有想到的是,到了1999年,这款名叫Napster的程序就拥有了8000万的注册用户,至此,这项备受争议的技术正式走上了历史的舞台,第一代P2P网络华丽的现身互联网。

  第一代P2P网络采用中心化拓扑结构,其最大的优点是维护简单发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,访问的“热点”现象和法律等相关问题,

  Napster是最早出现的P2P系统之一,并在短期内迅速成长起来。Napste实现了文件查询与文件传输的分离,通过一个中央服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。当某个用户需要某个音乐文件时,首先连接到Napster服务器,在服务器进行检索,并由服务器返回存有该文件的用户信息;再由请求者直接连到文件的所有者传输文件。有效地节省了中央服务器的带宽消耗,减少了系统的文件传输延时。但是,第一代P2P网络最大的隐患也在中央服务器上,如果该服务器失效,整个系统都会瘫痪,同时如何提供有效的安全机制也是其瓶颈之一。

  与第一代P2P技术相比,第二代P2P采用分散分布网络体系结构,不再使用中央服务器,消除了中央服务器带来的问题。没有中央控制点,就不会因为一个节点的故障导致全部瘫痪,可以说才是真正的分布式网络。但是由于每次搜索都要在全网之内进行,造成大量网络流量,使得其搜索速度慢,排队响应时间长。用户PC性能及其与网络连接方式决定网络弹性和性能。这种模式降低了拥有者的成本,并且最重要的是提供可扩展性。其中最具代表性的应用当属Gnutella系统。当需要进行信息查找时,查询节点将发送一个广播消息给周边的节点,询问是否有相关的内容。如果周边节点存在相关的内容,则向查询节点发回查找结果。这种“病毒式”的信息传播方式虽然解决了网络结构中心化的问题,扩展性和容错性较好。但是,由于没有一个对等节点知道整个网络的结构,网络中的搜索算法以泛洪的方式进行,控制信息的泛滥消耗了大量带宽并很快造成网络拥塞甚至网络的不稳定。从而导致整个网络的可用性较差。第三代P2P综合第一代和第二代的优点,采用混合网络体系结构,用分布的超级结点取代中央检索服务器。采用分层次的快速搜索改进了搜索性能,缩短了排队响应时间,每次排队产生的流量低于第二代分布网络。超级智能结点的布设提供高性能和弹性。没有中央控制点,不会因为一点故障导致全部瘫痪。 在这种混合网络结构中,按照节点能力不同区分为普通节点和超级节点两类。搜索节点与其临近的若干普通节点之间构成一个自治的簇,簇内采用基于集中目录式的P2P模式,而整个P2P网络中各个不同的簇之间再通过纯P2P的模式将搜索节点相连起来。由于普通节点的文件搜索先在本地所属的簇内进行,只有查询结果不充分的时候,再通过搜索节点之间进行有限的泛洪。这样就极为有效地消除纯P2P结构中使用泛洪算法带来的网络拥塞、搜索迟缓等不利影响。此种模式就仿佛是我国古代封建社会使用的分封制一样,将信息分封给各个超级节点。

  得益于运营商一直试图将P2P妖魔化的努力,第四代P2P网络目前正在发展中,其最主要的发展技术方向为动态口选择。目前P2P使用固定的端口,但是一些公司已经在运营商的高压下开始引入协议可以动态选择传输端口,甚至P2P服务可以使用原来HTTP或SMTP协议专属的端口来传输。这将使得识别跨运营商网络的P2P传输变得更困难,更不要提掌握其流量了。

  P2P技术广泛应用于文件共享、网络视频及网络通话等领域,造就了一批互联网新贵,其分布式资源共享和分布式并行传输的特点,为用户提供了更多的存储资源和更好的用户体验。网络中的资源和服务分散在各个结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。同时,随着用户的不断加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充。而又因为P2P技术利用的是网络中大部分的空闲资源,因此可以以更低的成本提供更高的存储和计算能力。再加上资源分布在多个节点,更好的实现了整个网络的负载均衡,除此之外,信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性也大大减小,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。即使被攻击,多副本也没有单点失效问题,部分结点或网络遭到破坏对其它部分的影响很小,其架构天生高防御、高容错。

  纠缠不休的双螺旋

  如果说WEB1.0 是关于eBay and Google 的杀手级的应用程序,那么WEB2.0的特点是用户产生内容,合作化,社区化,任何人可以参与到内容的创建中。我们可以看到百度百科对于WEB2。0的解释“WEB2.0 则更注重用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。”与P2P技术的特点是如何的相似,因此我们可以说,在这个云计算与移动互联共舞的时代,P2P技术并不像一些人所认为的那样与时代相背离,甚至可以说是完全实现WEB2.0的基础技术,WEB2.0里面有关去中心化、用户共享与互助、用户资源整合与聚合等思想,用户既是系统服务的受益者,也是系统服务的提供者。因此,P2P技术是WEB2.0的核心技术之一。

  当然,如果将历史再往前追溯,我们可以发现P2P从某种程度上可以说是互联网整体架构的基础。在互联网最基本的协议TCP/IP之中,并没有Client和servent的概念,所有的设备都是通讯的平等的一端。在十多年之前,所有的互联网上的系统都同时具有服务器和客户机的功能。当然,后来发展的那些架构在TCP/IP之上的软件的确采用了客户机/服务器的结构:浏览器和WEB服务器,邮件客户端和邮件服务器。

  但是P2P存在的一些瓶颈也确实让它

  的前景扑朔迷离起来。国际权威调查公司AC尼尔森的调查显示,随着P2P应用技术的迅速崛起和不断发展,基于P2P技术下载的MP3和视频文件已经成为宽带用户流量的主体,占据整个互联网流量的2/3。P2P应用也已不知不觉间占据了运营商业务总量的半数以上,成为网络带宽最大的消费者,对底层网络产生了巨大影响。P2P发展之迅猛,让人始料未及。就实现原理来说,P2P并不是一种高效率的传输模式。

  最主要的是P2P传输过程中有很多重复的数据分组,占用大量的网络带宽,甚至造成网络拥塞,从而降低了其他业务的性能。就拿近几年来风雨飘摇的BT下载服务来举例,Tracker即时接收包括IP地址和端口在内的所有下载者信息,并且给每个下载者一份随机的peer列表。下载者每隔一段时间连一次Tracker,告知自己的进度和取得列表,这样就可以和那些已经直接连接上的peer进行数据的上传下载。在进行文件传输时,每个文件一般被划分成256K的大小的块,每个块都计算其校验值。用户间互相的Choke和UnChoke对方,来交换这些文件块。在此过程中产生的大量冗余数据分组既加深了网络带宽的负荷也加大了硬件的磨损。

  不止如此,“管道”早已成为了运营商的禁忌词语,而P2P所占用的超高带宽资源与其模式特有的不可监控性也自然而然的让运营商记恨不已。任何行业的发展都要保证产业链上下游的健康成长,尽管因此P2P服务一定程度上在偷窃网络带宽的问题也是不容回避的。但是随着技术的进步,带宽的增加,P2P流量所占带宽的比例必然逐渐降低,其与运营商的矛盾也会渐渐软化。而且运营商也试图使用”智能管道”系统来区别P2P流量与其他流量的区别,来解决P2P流量收费的问题。姜奇平说”随着带宽的增加,下载速度越来越快,如果一部一部不停地下电影,哪有时间看呢?时间成本将重于宽带成本。从技术上来说,20W带宽与100W已经没有本质区别”在美国下载1G的电影需要1分钟,但是观看这1分钟下载的电影可能需要两小时,带宽的提升是无限的,但是一个人每天却只有24个小时。目前P2P的发展的另一个瓶颈在于各个公司的各个P2P网络之间的信息无法互通,没有一个统一的标准。AOL首席软件工程师宁力说:“在美国,无论是互联网还是移动互联网,标准都是由排名前三十的公司共同制定的,和政府没关系。在中国应该由一些大的企业制作一个统一的标准你做了一个标准放在那,那美国人能不跟着你走吗。你不跟,你就少了将近5亿人(用户)。”

  P2P存在着这样或那样的问题,但是它仍然顽强的存活着;WEB总是被指“必死”,但它仍然是人们日常生活中最重要的互联网模式。这对命运的双生子也总是缠绕在一起,剪不断理还乱。就像腾讯的QQ,谈到本质也只是P2P技术为主、WEB模式为辅的IM软件,与第一代P2P技术是如何的相似,这两个永远纠缠不休的模式似乎又绕回了他们一开始的状态。如果他们能像最完美的DNA双螺旋结构一样,形成完美的结合,维持微妙的平衡才是对于互联网来说最好的结果。
关注读览天下微信, 100万篇深度好文, 等你来看……