P2P那点事儿

     2006年初的时候,我在中国几所高校做了一个survey,内容是当前互联网界中那三个词条最热门,得到的结果从高到低分别是web2.0, P2P和搜索。想想也容易理解,从05年中到06年末这一年半时间,是中国互联网的第二轮热潮,6个亿的国外资金在短短十几个月涌入中国(互联网),其中新新的创业者们打得最响亮的名号就是web2.0: 2.0社区,2.0相册,2.0记事簿、UGC(用户自制作内容)等等此类。而p2p和搜索紧跟之后,06年末,web2.0的概念伴随着风投高潮的减退慢慢消亡,搜索也在媒体宣传中慢慢淡出,而P2P不愧是P2P,两年之内一直坚挺,从概念到实质都有了长足的发展; 
    最初想写此文,是想要一篇洋洋洒洒的学术议论文,可能叫《论P2P的发展历程和前景》,不过估计写成这样,也就几个做P2P的人来关注一下了;于是决定换一种表达方法,把P2P当成家常抖一抖,大家都可以透过P2P近些年的发展去感受一下互联网的前进历程,如果再能激发小小的思考,感悟什么的,就算是超过期望值了。

P2P在中国——智能弹性重叠网
    其实P2P本身概念很简单,就是节点之间互相传输数据的机制;为什么这么简单的概念能够让中国这么多人追捧,搞研究的,做产品的,创业的,投资的。这不得不归功于一个人——科学院声学所的研究员 侯自强。
    业界把侯老师称作是中国P2P产业的大旗手,除了是声学所的教授,科学院院士,还是前科健的老总,中国网通的独立董事,影响力不可谓不大。从05年开始,中国的P2P刚刚开始红火起来,侯老师便不遗余力的宣传应该在中国建立一个庞大的P2P的网络,它有一个响亮的名字——INON,就是智能弹性重叠网,这个东西了不得,既要节点规模大,能承载多种上层应用,又要便于运营商管理,简直是一个商业运营的Planet lab。关于IRON的初始目的,我们后文还要提到,但这里要强调的是“智能”二字。
    中国人一听到智能,那就不得了,仿佛在学术界工业界碰到很多年的难题都可以用“智能”二字去解决。但这里的智能是仍是计算机智能,所有的计算机智能都还是要人拍脑袋去思考和实现的,并且P2P光靠拍脑袋去建模还真难有突破性的结果,毕竟,真实P2P网络太复杂了。回头想想,智能弹性重叠网其实就是P2P概念中的Overlay,是在网络层上构建一层应用层网络,在应用层网络上可以不受传输层协议的约束,可以根据实际应用做自定制的优化和扩展。

    在我看来,尽管P2P的好处被研究的特别多,诸如容错性,可扩展性,高性能,在这些好处中又挖掘出新的扩展研究课题,如要考虑网间流量,P2P安全…但在中国,P2P产业能发展起来没有那么多理论的指导,而是走绝对的务实路线,可以总结为“两点一违背”。两点分别是“节省带宽”和“加速下载”,前者是对运营者的切实好处,后者是对使用者的切实好处,一违背就是坚决不考虑公平性(纯属个人意见),我们把“两点一违背”这个概念往后放一放,仍回到P2P概念本身。

    智能弹性重叠网的功劳不小,首先,靠着这个概念和侯老师的影响力,P2P在中国的声势一举超过火了好些年的网格(Grid), Grid的概念炒作在中国逐渐淡出(这里只是炒作淡出了,实际的发展还是不错的),P2P在中国强势登陆。其次,这个名号确实给中国的学术界和工业界打了一针强心剂,大家都意识到这个技术(概念,产品)有搞头,于是大家开始疯狂学习究国外的产品,疯狂研读国外的研究论文。
    这一看不要紧,原来国外已经搞了很多年了,成果产品成把的抓,至少已经涵盖了下载,共享,协同工作,实时流媒体,只是国人仍未知晓。但那个时候,至少有一个产品大家可能已经在使用了,这个产品在中国的成功给中国的P2P产业做了开路先锋,它就是——Skype。

杀手级应用——Skype
    Skype进入中国是03年的事情,05年的时候,Skype以4个Billion USD卖给了Ebay,这次收购让很多人害起了红眼病——天啊,原来发财这么容易。原来P2P是真正的低成本高回报,是在现代行业高度发展的今天,少有的能孕育孤胆(创业)英雄的土壤了。 
    Skype本身我就不多介绍了(如果Skype不知道,下面也不用继续看咯,建议你直接看看腾讯的和悦,小做一下广告),接下来的行为也容易预见,中国很多的“有为青年”开始起来做P2P,05创业高潮拉开序幕,这其中有很多人是复制了Skype模式,想利用Skype在中国还未站稳根基,立足本土,做中国的Skype。那个时候,一时间确实冒出很多的网络电话,互联网的小广告上到处充斥着“中国人自己的Skype”、“最清晰的网络电话”、“免费的网络电话”等字眼。中国的网民看花了眼,这么多的免费电话可以打还不乐死。不过用着用着,发现这些网络电话就像跳梁小丑,都渐渐的被遗忘了,大家记得的还是Skype。 
    从技术角度讲,Skype是成功的P2P实时数据传输系统,突破点是节点的感知(Network Penetrate)和数据中转(Data Relay)。节点感知让更多节点成为能够参与P2P贡献的节点,比如防火墙后的节点,NAT下的节点,而不仅仅只有公网节点才能成为P2P的贡献者;数据中转是第一次把super node节点应用在商业产品中,让普通节点选举出领导管理其他普通节点成为可能。只是,这里要强调的是,Skype上多数传输的是4kbps-11kbps的音频(实时数据),这种数据Relay是有可能的,后来有人做P2P流媒体视频传输400kbps的实时数据,也想用这种data relay的方法,不能不说是生搬硬套了。对Skype研究的论文非常多,最经典的莫过《An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol》这是分析Skype可能的协议,为其他技术仿制者提供了可行的技术路线,其他的研究主要集中在对Skype的通话质量测量,语音Delay优化方面。 
    有一批人开始冷静下来,思考为什么Skype能够成功?开始有人翻Skype的开发班底,原来这帮家伙开发的Kazaa在美国已经红了很多年了;也有人开始思考中国互联网的运营模式,是什么驱动力能让用户使用我们的产品;当然,也有人 开始抱怨VoIP自主运营在中国是行不通的,是注定要被电信网通宰上一刀的。记得当时有个公司,一次投入了N多服务器来跑P2P的VoIP,可是用户非常的少,就是完全不P2P,服务器也远远不能满负荷运行,搞得公司的技术部门哭笑不得,这个到底是谁的责任。 
    风险投资商对中国的P2P VoIP到相当冷静,他们似乎在等待特别适合中国本土的杀手级应用。中国年轻一代的创业者们,也进入新的思索中,在中国,什么样的应用才是王道? 
    我们稍微停顿一下,解释个概念,什么叫杀手级应用?我的个人的理解是:这是一个有巨大吸引力和市场的功能需求或产品,此应用一出,可以短平快的打拼出一片天地,在残酷的互联网体系中啃下来一块地盘,并且有良好的后劲,可以往后不断发展壮大。
    有一批人想到了一个领域,并开始积极尝试,这一尝试就一发不可收拾,并把中国P2P技术带到了世界的前沿,这个领域就是P2P流媒体。

领先世界的P2P技术——P2P流媒体
    现在对P2P流媒体下定论说是P2P的下一个杀手级应用还有些为时过早。但他确实是中国本土孕育起来的一个不小的奇迹。
从2005年中,越来越多中国的新新创业公司瞄准了这个领域,到05年年底,大家在这个领域里就有了各自的产品,我做了一个粗略的统计,当时能叫得出来P2P流媒体相关产品大概有100多种,这其中既有大公司产品,也有创业型公司的产品,还有研究机构的项目,几个月内便是百花争鸣,好不壮观。不过当时名头最响亮的有三家,分别是PPLive, PPStream, QQLive,当时在这个领域被称为P2P流媒体的三国鼎立。后来UUSee挤了进来,说QQLive严格上算是腾讯的一条产品线,不能很好的judge,于是跳了出来对媒体宣称他才是中国第三,至于后来迅雷在此领域的强势介入又是后话了。 
    这里多说两句这些P2P流媒体的新贵,先是PPLive,这是非严格意义上中国第一家P2P流媒体公司;为啥是非严格的呢?因为04的时候,香港已经有了一个CoolStreaming的产品,还外带一篇Infocomm的论文来描述如何构架系统。只是这个Cool哥在香港流年不利,遭遇了连续的版权门事件,只好提前关门大吉了。Coolstreaming的用户是中国P2P流媒体的第一批用户,那个时候P2P流媒体和P2P直播是画等号的。Cool哥关门后,PPLive几乎接手了全部的Coolstreaming用户,迅速壮大起来。 
    那个时候的QQLive的出现绝对是给人眼前一亮的,深厚的技术积累,尤其是规整的网络表现,让竞争对手大为惊叹。当然更可怕的还是QQ的庞大用户群,大家又陷入“如果QQ强势介入该怎么办”的痛苦的思考中,这个问题在中国互联网界是无解的,即使有解也是逞一时口舌之快,唯有的做法是在腾讯想清楚风险决定大规模做之前,尽可能的有更多的市场积累和伙伴关系积累。
    不止一次我被别人问到,为什么P2P流媒体在中国可以发展起来。我的回答总很简单:因为它解决了实际问题——在中国这种恐怖复杂的网络下,让广大网民看起了流畅的视频。在P2P流媒体出来之前,大家在网上看视频仅仅限于某个区域的小区宽频,极少的人数在极其分散的时间去看影片。如果要说一个热门事件,比如美国911,想放点视频让大家一起看,这绝不可能,不管是CCTV还是Sina都出不起这个钱来买带宽,所以那个时候,新浪的所有新闻都是文字和图片的;但在后来放超女,数十万人一起在网上看同样节目变成了现实,全国各地大家可以看,看的还挺流畅,就用自己512k的ADSL。这在当时简直就是奇迹,严格的说:P2P流媒体的核心价值是让用户在接近播放码流率的物理带宽下,在指定的时间下载到指定的数据。虽不要求片片不丢,但是务必要保证平均下载速度。这对下载策略,节点选择和任务调度都提出了很高的要求,重复了几个数据分片或者错误的判断了节点性能就可能导致下载速度无法跟上。平均下载速度不够,实时观看的基本需求就无法保证了。
    P2P流媒体的学术研究大抵也是围绕这个方面,刚才说的CoolStreaming 的Infocomm的文章《 CoolStreaming/DONet: A Data-Driven Overlay Network for Efficient Live Media Streaming》,是对这个实时要求的近乎完美的抛砖引玉,时隔3年后,而另一篇《A Measurement Study of a Large-Scale P2P IPTV System》从测量的角度全面阐释了P2P流媒体的架构和本质,个人认为它是P2P实时流媒体的收官大作了。
    到现在为止说的都是流媒体技术中的直播,可以说直播在中国市场的竞争是相当残酷的,06年中, CoolStreaming的创始人张欣研在北京创办了光芒国际宣称高调复出,而到了06年11月,第一家宣称风投的MySee就被此领域洗牌出局,07年初,光芒国际也渐渐退出市场。到07年初,P2P流媒体技术中,直播已经被大家研究的很透彻的(收官之作也完成了,X Hei, KW Ross),直播第一和直播第十之间的技术差距也是微乎其微,大家觉得剩下的就是运营和推广的事情了。也就在这一年,另外一个主角——P2P点播粉墨登场了。
    之前大家都说点播难,一会某某网通说P2P点播试运营失败,一会又有学术论文上说,单纯的P2P点播是不可能商用的。可一摆到商业舞台上,很多技术难点都被重点投入迅速解决了,并且几家好像串通好了似的,一家解决了,家家都搞定。07年被在工业界被称为点播元年,年初,PPStream和PPLive先后推出点播平台,年末的时候UUSee也宣称自己支持了点播技术。
    点播确实比直播难,如果以直播的带宽节省技术指标来衡量点播的话。业内直播峰值带宽节省能到达40000倍,点播能到200倍就很不错了。当然200倍已经是很不错的数据,这意味着我以前一年要花2000万购买的带宽,现在只要花10万块就可以搞定。06年前,大家觉得P2P点播难,是因为总想着把P2P点播按照P2P直播去做,全内存Cache而没有磁盘Cache。另一方面,点播不同于直播的方面在于,用户可以从头观看内容,也可以拖动进度条到指定的位置,这确实大大降低了每个人看影片的重叠程度,成为阻碍P2P进行下去的障碍。于是学者么搞了一大堆模型来研究如何增加每个人看的影片内容和别人所持有内容的重叠度。这里面最有名的要数 07年Sigcomm Microsoft Raymond 的《Can internet video-on-demand be profitable》对影片重叠度的建模 和 陈斌(GridCast的作者)的一篇《RINDY: A Ring Based Overlay Network for Peer-to-Peer on-Demand Streaming》。我不是说这些建模没有意义,但是P2P点播系统一旦引入了磁盘缓存,用户可以在自己硬盘上缓存自己曾经看过的影片,那么资源重叠度的问题就被从另一个角度简单彻底结局了。
    有时候,我在想只要往后退一步,可能就能有非常简单的算法来解决看似复杂的问题。好在,人们并没有教条,而是快乐勇敢的接受了新事物。从那以后,所有的商用P2P点播软件都有了磁盘缓冲, 陈斌做的GridCast也可是用了磁盘的缓冲,并将其升华成一篇IPTPS的大作《A Measurement Study of a Peer-to-Peer Video-on-Demand System》,采用方法简单了,档次完全不一样了,也可以站在更高的高度去解决问题了。

小议微视频
    P2P流媒体在中国发展是很猛的,很多国外的科研机构甚至把中国的产品拿过来做Research,UUSee和PPLive就是两个例子,无数研究这两个系统的论文表明,这两家系统在学术上的影响力。国外的视频发展也没闲着,从05年2月,YouTube就已经在美国红红火火的发展起来,他开始倡导的是短视频,即使在06年被Google收购,YouTube一直保持很高的人气,也带进了中国的一批模仿者,诸如六间房,土豆,酷六…数的出响当当名号的也有十几家。有人要问,这些短视频不都是宣称用CDN来传输么,跟我们今天”P2P那点事”有何关系。
    关系大着呢,前一两年的发展大家容量小,CDN尚能承受的起,流量上去(比如月PV 1个亿,是传视频不是传相片)带宽成本就上去了,用户体验就下来了,这不,就需要P2P了。于是乎,大家开始陆续有了自己的加速器,土豆有了自己的“土豆飞速”,酷六有了自己的“极速酷六”。这个时候,P2P第一次完全不因为概念获得了成功,这些新生的产品甚至不宣传自己的加速器是P2P的就获得了很大的用户量,也为各自的厂商带来了实际的好处。
微视频给互联网用户带来两个新的驱动力:一个是用户自己上传自己制作的内容(UGC),一个是分享。在短视频中,用户的分享被抬到了新的高度,用户可以在看完视频后异常方便的选择分享给自己的好友。

牛人和P2P
    如果把P2P作为一个实际的功能,而不是作为一个概念炒作的话,P2P本身有很多好玩的故事体现着它无穷的魅力,这里就不多介绍那些每次必讲的老掉牙的BT,Emule什么的,换点新口味。
    说几个名字响当当名字。
    2001年,Ray Ozzie(注明的Lotus软件的开发大牛)创立了Groove Networks公司,开发Groove Virtual Office,此软件意在使用P2P技术营造一个互联网协同工作空间。2005年3月,Groove被微软以1.2亿美元收购,而Groove的创始人 Ray Ozzie成为微软的CTO,现在的Office2007里面,已经可以看到Groove的身影了。
    另外一个是Bill Joy, 这个哥们被《财富》杂志誉为“网络时代的爱迪生”,在Sun做了二十一年的首席科学家。从NFS系统,到Sun Spark处理器,到后来的Java jini, 如果这些你不太熟悉的话,Vi总该熟悉了吧。做了这么有影响力的东西,Joy有一天突然提出来不干了,要去做一些更伟大的事情,于是就有了后面的JXTA。 Jxta的构想可伟大了,这是一个统一的P2P平台,在这上面可以非常简易的开发P2P的上层应用,好在这个项目还没有完全成熟,否则的话,一批的P2P的基础应用就可能从此消亡了。
    Stoica是我刚刚接触P2P领域接触的第一个大牛,还在CMU读书的时候,他的一篇Chord的paper堪称完美之作,也彻底征服了我。Chord第一次把DHT(Distributed Hash Table)拉下神坛,写了一篇让大家都看得懂的结构化P2P,后来Stoica又开始基于Chord做分布式文件系统,布设多种上层应用。若干年后,再一次听闻此牛,发现已经放弃UCBerkely的研究工作,去创业去了,而且还是跟着另一个大大牛——CMU的一个全职Professor Hui Zhang,号称要做世界上最大的P2P内容(流媒体)分发网络(http://www.rinera.com/ )。这个世界真是疯了,牛校的全职正教授也要在P2P上创业。

新新概念和用户规模
    在中国,概念炒作永远是时髦的(全世界可能都是这样),一个好的概念可能就意味着一个大的项目,一批量的风险投资。我个人是不怎么排斥概念的宣传的,毕竟这能让更多人知道这个名头,从而愿意去尝试名头下面深层次的东西。
    当下这种新新概念仍在继续,2008年,被提及最多的就是P2P搜索、P4P和云计算了。其实说白了都很简单P2P搜索是把抓取资料的过程从服务器下放到客户端;P4P是将P2P的网络传输把运营商的利益充分考虑进来,做到真正的可控制,可管理;云计算是更大的概念了,是把计算机的计算能力通过互联网传输,呵呵,说白了,就是能充分利用众多计算机的计算资源,并能切分分配这些资源。
    说到两句云计算,我还真的没有区分出和之前的“网格计算”的差异,不过好歹是新的概念,慢慢理解再慢慢掌握吧。 
    说了这么多概念,P2P到底难不难。拿这个问题去问任何一个有些P2P真实开发经验的工程师,我打包票,绝大部分都说不难。实践者都说不难为啥学术界还研究的一身是劲,工业界对它的呼身也是居高不下。
先插一个小故事,硅谷有个做网络通信的腰缠万贯的商人,临死前竖着一根手指,他的子女不解就问他还有什么遗愿,他放下手指说了句“带宽”就断气了。对于互联网而言,带宽是最宝贵的资源,在有限的带宽下如何充分的利用更为关键。P2P在这点上做得相当到位,很多公司也想在这里开源节流。
    那为什么大家都说不难呢,个人认为问题的瓶颈在于用户的规模。一个应用如果就可怜的几个人,几十个人再用。能谈得上什么P2P,除了仅存的学术意义,其他什么都没有。但如果是百万千万的用户,情况就大不一样了。一个小的P2P的策略的调整,整个网络就可以省出好几个G的带宽出来。在中国这样的带宽贵国环境里,这就意味着成百上千万的价值。在此情况下,这些研究的工作、优化的工作意义就不得了了。

一违背
    刚才举的们每个例子几乎都强调了对运营商的节省带宽和 对加速下载对用户体验的提升。我们还没有讲对公平性的违背,P2P产生初期是一个平等的非官方的产品,诸如BT、 EDonkey,都是靠着大家以对等的姿态加入到这个P2P大家庭,没有第三方干预,没有额外运营,没有数据污染,这个阶段很多公平性因素被考虑进来,诸如BT的Tit-tat策略,BT阻塞算法(Choking algorithm),最优疏通(optimistic unchoking),反对冷落(anti-subbing)等。可以说这些公平性策略是非常精妙的算法,基本可以让系统达到“帕累托有效”(Pareto efficient),即任何重新改变资源配置的方法,都不可能在没有其他人受损的情况下收益。
    如此,BT和EDonkey(Emule)在全球市场有广泛的用户,大家可以在这些平台下载到丰富的资源。但注意,这是全球范围,而非中国。
    到了中国,公平性的考虑走不通了,从新新成功的软件可以看到,中国的P2P取而代之的是贪婪下载(Greedy Downloading)。贪婪这个词在现实生活中是个贬义词,在计算机系统中真的是个简单实用的褒义算法。从中国流行的P2P流媒体软件,还是下载软件迅雷,旋风,大家为了追求下载速度都彻头彻脑的抛弃了公平性。节点只有有资源(计算资源,存储资源,带宽资源)就会被贪婪的利用(当然,好的公司会在不侵害用户体验的前提下做这些工作)。正因为此,中国的下载软件BitComet超过了BT,迅雷、旋风又超过了BitComet。而在流媒体领域,正是这种不顾及公平性的贪婪利用,才使中国的流媒体充分发飙。 
    平心而论,这种不顾及公平性的贪婪下载是有风险的,如果在用户不可知的行为下“充分”利用了用户计算机资源,都有点流氓软件的味道。但中国的互联网公司在这一点上考虑的很周到,第一,就是这些应用真正覆盖了用户的迫切需求,应用不是强加的,为了使用这些服务,提供一些计算资源,用户的心理也就平衡了,毕竟,比起真金白银的付账,这些“虚”的计算机资源就算不上什么了;第二,是第三方信任机制和公平机制的介入,刚才说的Pareto是指没有资源配置方法的改变,而如果,有了虚拟的货币(如Q币),或者虚拟的等级来区分下载角色之间的优先级差异,很多问题就变得明朗了。
    有时候,想想也好笑,在纯粹的P2P的世界中,花了十多年研究的节点之间的信任模型,只要Q币一介入(也可能是其他的度量衡),这些模型看起来就非常的不实际了。

新的方向
    刚才说了很多传统意义的P2P产品和这些产品的特征,也说了在中国,依靠着加速和节省带宽,P2P事业轰轰烈烈的壮大起来,但这远不是终点。
    中国的网络基础建设在不断的发展,带宽、存储和计算能力都在大踏步替身;很多因为在ADSL下孕育的P2P应用在3-5年后的网络条件下不一定适用;而P2P自身并不是万能,它需要一个基于其上的上层应用,并且在人数规模达到一定水平后才能充分发挥其特点。
    限于篇幅,本文不去预言接下来P2P的发展方向了,不过我还是比较坚信,在整体范围内,P2P的思想会被应用到越来越多的软件设计思想中,P2P也能实现从一个概念,发展成一系列的应用,最终向软件开发意识的转变了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值