第2章 第一代P2P网络:混合式 P2P体系 这 章讲述代表性的混合式P2P网络Napster和 BitTorrent。“混合式”在这里指的是C/S与P2P的混合,它 反映了网络工作模式从C/S到P2P的过渡,Napster正是如 此。发展到后来的BitTorrent网络相当于分散化的多个 Napster的集合,由此可见分布式的思想在混合式P2P网络 里有着更深层次的渗透。 2.1 Napster-一P2P网络的先驱 Napster是世界上第一个应用性P2P网络,也是混合式 P2P体系最杰出的代表,它以不可抗拒的影响力向世界传达 了P2P的独特思想,展现了P2P的巨大潜力,是P2P网络当 之无愧的先驱。 2.1.1 Napster出现的背景和它创造的奇迹 l999年l8岁的Shawn Fanning开发出Napster,它提供 服务允许音乐迷们交流MP3文件。与传统的提供音乐下载 的网站不同的是,Napster服务器里没有一首歌曲,它只是提 供一个空间供音乐迷们将自己硬盘上的歌曲文件共享(用户 发送歌曲索引信息到服务器)、搜索其他用户共享的歌曲文件
!0 ª ê ü O @ ö , $ Y E =!= P Q H/&4()* } L1(<$**)+($+$YE,y¡¸þ,$ 9*:M =!= ,$Y"1 ð6PQèoëE 9*:k =!=,‘x"H/&4()*Þ$/ $-f k ¨ : , L1(<$**)+(P Q R V z ° Ï Ù , V m H/&4()*,XY"áÊe°±E,NZy$YE =!= PQ ¸’iïð,yF$ $"! -./0123!!!#$#$%&45 H/&4()*$%´0m,]ö =!= PQ"F$$YE =!=Z²)£2,O@"1ªwÊõ},IJt¼%)¤ 6 =!=,7 NZ"f36 =!=,N+t"$ =!=PQV /æz,À2$ !"#"# $%&’()*·.J¸¹{º»¼J½¾ AEEE9AU¡,:8/,+>/++1+D-2 H/&4()*"1Yñ ½¾ô+O){[ab ?=Nm|$M)³,YñO)0m ,P¦wc,$"H/&4()*½¾¿¸Ó0ü|}"1$Y ñ0møñO){[¥¨Úë,|}m|{y%]É -¤|}¤À<=k½¾¿&#£¤«Æ]É{y,|}m|
27 第2章第一代2p网终:没合式P2P传系 并到其他Napster用户硬盘上去下载歌曲。尽管Napster的工作原理听起来并不 新奇,它所用到的软件技术也是计算机领域以前就有的,但是,它却是最先在互联 网上让用户之间不经过服务器直接交换文件的应用体系。Napster无意中采用了 P2P模式、打破了客户/服务器模式的瓶颈,它背后隐藏的巨大的P2P世界也从此 浮出水面。 Napster发布后,在短短半年时间里吸引了5000万注册用户,最高时超过 6100万用户,这在计算机网络领域是一个从未有过的奇迹。Napster创造的奇迹 同时也揭示了在互联网时代普通人也具有改变世界的能力一当Shawn Fanning 最初在波士顿的东北大学校园开发Napster软件的时候,他只不过是想和弗吉尼 亚的朋友共享MP3歌曲文件,而随后这个民间小软件影响了整个世界。 2.1.2 Napster网络的工作原理 图2.I.1是Napster的工作原理图,Napster网络由两个部分组成:Napster 网站+Napster用户。 napster.com P peer Q query S server R response D file download 、P 图2.1.1 Napster工作原理图 (来自[Saroiu et al.,2003] Napster网站(图2.1.1中napster..com)是一个服务器机群。每个服务器保 存一部分用户的共享文件索引信息,所有的服务器互联、整合起来对网站外面的 Napster用户提供统一的访问接口,在每个用户看来他们访问的都是同一个服务器。 每个Napster用户(图2.1.1中peer)连接到机群中的一台服务器,他将愿意与其 他用户共享的文件信息发送给服务器(图2.1.1中server),服务器记录这些信息以及 该用户的位置,并将它们做成一条索引添加到原有索引表中。当用户想要查询一个 文件时,首先将“查询”消息发送给与其相连的服务器(图2.1.1中Q:query),该服 务器收到Q以后,与其他服务器协作处理查询消息Q,处理完成后将“回复”消息 (图2.1.1中R:response)返回给用户,这条消息包含一个表单,列有所查到的所有 匹配的文件索引。收到R以后,用户在表单中选择他想要的文件,根据文件索引中 对应的位置与其他用户直接建立连接下载文件(图2.1.1中D:file download)
, # - ,01 "# " #$)234 "# " 56 !& ^k«Æ H/&4()*]ÉëÒ0m|}$1¬ H/&4()*,èo-C::^w rº"1â]k,É|RSF$!"#êÒ,"Ý$"1³$)ÀySz Pw]É/w䑽¾¿&UaÎm|,,]Z²$H/&4()*æ¢ü]6 =!=ëE#uv6ÈÉ*½¾¿ëE,ìí"1~¨t,N+, =!=%F 2Án$ H/&4()*-±¨"yËË·9d¸ ÅÀ6 F""" ¹í ¢]É")d Ó‘ GA""¹]É"¡y!"#PQÃ$0m «‘,º»$H/&4()*µ¶,º» cdFA6ySzPdOé_’FÌ45%,ht’’’V :8/,+>/++1+D ):y,n+¢A - H/&4()*É|,dW"Æw‘$Z} b,{y ?=N|}m|"!@¨¡mÎÏÉ|IJ6Ûm%$ !"#"! $%&’()*VWJXY¿À !BABA$ H/&4()*,èo-C"H/&4()*PQá¯m°Ð)H/&4()* P¦dH/&4()*]É$ !$"!"! 7&8/0,*LMN9O %:¨-:/*$1’)(/0B"!""N. H/&4()*P¦%!BABA+/&4()*B#$%&$0m½¾¿#$m½¾¿r >0°]É,{ym|¤À<="â,½¾¿Sz#ÛY:;P¦×n, H/&4()*]ÉYñ³0,7Uõ"ym]É0:Æ[7,ã$c0m½¾¿$ m H/&4()*]É%!BABA&))*&TUk#,0W½¾¿"Æ¥S¢M« Æ]É{y,m|<=-¤7½¾¿%!BABA4)*6)*&"½¾¿ÒÓ¡¹<=ª¦ 6]É,Å&"^¥1[+Ð0/¤Àék-¤À@$V]ÉZ>?0m m|d"üÀ¥+>?,~=-¤7M«RT,½¾¿%!BABA ‘)a’)*5&"6½ ¾¿úk ‘ ª¨"M«Æ½¾¿-oBC>?~= ‘"BC-Ш¥+9c,~= %!BABA X)*)4&$+4)&897]É"¡/~=ÙÛ0m@¦"Æâ>k,â ëì,m|¤À$úk Xª¨"]Éy@¦ÆZ,m|"¸Ám|¤À ;,,Å&M«Æ]É&U $TU0mm|%!BABAM)V10)3$,+0$/3&$
28 对3网终:锋构、应用5设计 Napster网站一方面维护所有Napster用户的共享文件索引,另一方面监控系 统中每个用户的状态,比如跟踪记录用户所报告的连接带宽和用户已连入 Napster网络的时间,以及发现哪些用户已经掉线等。这些信息对Napster系统的 运作有重要的意义:首先,对于那些掉线的用户,必须在服务器中去掉该用户对应 的文件索引,以保证文件索引的时效性;其次,当服务器收到用户的查询消息后, 返回给该用户的回复消息中也包含了其他用户的连接带宽、连接时间等信息,这些 信息对于该用户选择与哪些用户建立什么样的连接是很有帮助的。 2.1.3 Napster的性能分析 文献[Saroiu et al.,2002;2003]和[SGG02]对Napster做了详细的测量和分 析,他们通过Crawler(爬虫)工具来测量Napster网络。网络爬虫的工作原理大致 如下[Sen and Wang,2004]:“爬虫”首先作为一个结点加入P2P网络并与其他一 些结点主动建立TCP连接,然后通过现有邻居获取更多结点信息、建立更多的连 接,同时,“爬虫”结点记录下它与其他结点交换的信息以供后续分析。爬虫技术是 “带宽密集型”的,因为它需要维持很多条TCP连接;同时,爬虫技术也是“侵犯 型”的,因为爬虫自身参与到网络中来并对网络产生了影响,从而导致测量结果的 不准确性(读者可以与物理学中著名的“测不准原理”相类比)。 根据他们的观察,Napster网站机群由大约160台服务器组成,每个用户只和 其中一台服务器建立连接,当这台服务器收到用户的查询消息时,它首先检索自己 的索引以获得与它连接的所有“本地用户”的共享文件信息,然后检索其他服务器 的索引以获得与其他服务器连接的“远程用户”的共享文件信息。 当新的用户加入Napster网络时,它告诉服务器自己的连接带宽,Napster服 务器记录这个值并向其他用户提供这个值,这对于系统的工作很有帮助,根据带宽 信息用户可以选择与哪些用户建立什么样的连接。然而,许多Napster用户(大约 25%)加入网络时并不告诉服务器它的连接带宽,更坏的情况,许多用户故意告诉 服务器比其实际带宽低很多的连接带宽,从而阻碍别的用户从它下载文件。 虽然Napster将所有的用户看成平等的成员,但是Napster用户之间在能力 上却有着巨大的差异,也就是P2P所讲的结点“异构性”。就网络连接设施而言, 约25%的用户使用低带宽的调制解调器(Modem,64Kbps),约50%的用户使用较 高带宽的连接(Cable,DSL,T1或T3),约20%的用户使用高带宽连接(至少 3Mbps),详见图2.1.2。就用户连接时间而言,超过50%的用户连接时间低于 1h,不到10%的用户连接时间高于6h。 在理想情况下,Napster希望它的每个用户都能在下载的同时提供一些文件 上传,这样的网络才高效、平衡。然而,在实际的Napster网络中,很多用户都是自 私的,约20%一40%的用户几乎从来不提供文件共享而只是下载别人的文件,即
!’ !"#$)%&#’()*+ H/&4()*P¦0Dn³sâ H/&4()*]É,{ym|¤À"I0Dn² ³m ] É , h O"Õ / Ò Ó ] É â 3 4 , T U } ] É Ö T j H/&4()*PQ,d"ª¦-3ܹ]ÉÖä4¶$¡¹<=; H/&4()*²³, 1o,¢£)üÀ";zò¹4,]É")òy½¾¿Ò46]É;, ,m|¤À"ªrGm|¤À,dö(«ð"V½¾¿úk]É,>?~=¨" 8976]É,9c~=FÙÛ6«Æ]É,TU#TUd¶<="¡¹ <=;z6]ÉMܹ]É $ÕÖó,TU$ûÈÉ,$ !"#"+ $%&’()*JqÁ] m§-:/*$1’)(/0B"!""!(!""N.}-:CC"!.; H/&4()*+6Èû,‘}° ó"Æ[_‘ 9*/,0)*%î&èÌ:‘ H/&4()*PQ$PQî,èo-C+§ /0-:)+/+3S/+D"!""O.)+î,üÀop0m´µéj =!=PQ^M«Æ0 ¹´µÃ3 $ <9=TU"?¨_‘3ÔÕѸV´µ<=# $V,T U"cd"+î,´µÒÓ01M«Æ´µaÎ,<=ªñ¨°ó$îRS$ +PXô,,"p1M³"ûV/ <9= TU(cd"îRSF$+ ô,,"pî¨æ MkPQ:^;PQ©K6IJ" !ħ‘´Ò, wèÞö%ìØÊªMC¢÷ø,+‘wè-C,R(Õ&$ ¸ÁÆ[,9"H/&4()*P¦#á+«AG"W½¾¿Ð"m]É} «0W½¾¿ $TU"V¡W½¾¿úk]É,>?~=d"1üÀ_¤¨Ú ,¤ÀªÑ=M1TU,â+åH]É,,{ym|<="?¨_¤«Æ½¾¿ ,¤ÀªÑ=M«Æ½¾¿TU,+õ]É,,{ym|<=$ Vr,]Ééj H/&4()*PQd"14p½¾¿¨Ú,TU"H/&4()*½ ¾¿ÒÓ¡m!^¼«Æ]ÉYñ¡m!"¡;z²³,èoûÈÉ"¸Á <=]ÉʪMܹ]É $ÕÖó,TU$?!"+V H/&4()*]É%+« !F\&éjPQd^w4p½¾¿1,TU"û,ùú"+V]Én¢4p ½¾¿Õ«÷øGûV,TU" !;ë,]É 10mm|$ Ê? H/&4()*¥â,]É0ж,ÐÑ"Ý$ H/&4()*]É/yht ³’N+,3½"F$ =!=âê,´µ+½ö,$PQTUáá!4" «!F\,]É\]G,®[¿%?$3)%"GOI7&4&"«F"\,]É\]b , T U %9/70)"M:R"<A þ <N&"« !"\ , ] É \ ] T U %W » N?7&4&"Èe!BAB!$]ÉTUd!4"Ó‘F"\,]ÉTUdGz A8"wkA"\,]ÉTUdzG8$ yCZùú0"H/&4()*1,m]Éãhy0m,cdYñ0¹m| )"¡ó,PQÈ#n$?!"y÷ø, H/&4()*PQ"ûV]Éã$¨ u,"«!"\%O"\,]É7 :wYñm|{y!$0më’,m|"
29 第2章第一代P2p网终:没合式P2P停集 T 4%2% Unknown □Unknown DSL 22% ▣14.4Kbps 14% ☐28.8Kbps 14.4Kbps ▣33.6Kbps 3% 口56.7Kbps 28.8Kbps ▣64 Kbps 1% 口128Kbps 33.6Kbps ▣Cable 1% Cable 口1DSL 56.7Kbps 33% ▣T1 15% 128Kbps 64Kbps 口T3 3% 2% 图2.1.2 Napster用户所报告的连接带宽和连接设备 (图片来自[Saroiu et al..,2003]) 使对于不自私的结点,绝大部分也只提供少量的文件共享。相反,Napster中真正 提供文件共享的,是网络中少数的约1%的结点,它们才是Napster真正的文件提 供者。上述现象在P2P领域中也被称为“Free Riding”(搭便车)。 对Napster网络性能,我们做如下总结: (I)Napster网络中的用户功能上平等,但实际能力差异很大,结点异构性表 现在连接带宽、时延、连接时间、共享文件数等多个方面。 (2)许多Napster用户不报告或者错误地报告它的连接带宽给Napster服务 器,这不利于整个网络的高效工作。 (3)Napster网络中存在很多自私结点,它们只下载文件,几乎从来不上传。 自私结点对于整个网络来说几乎是没有贡献只有消耗的。 基于上面的分析,Napster或者类Napster的P2P网络在设计、优化时必须考 虑这样三个问题:对结点异构性,系统应该有机制针对不同的结点能力采取不同 的措施,让它们扮演不同的角色:对用户信息的报告,系统应该有方法鼓励正确的 报告或者限制错误报告;对自私结点,系统必须有方法鼓励上传,有限制或禁止自 私结点使用网络的权利。 2.1.4 Napster的陨落和它的现状 Napster创造了计算机网络领域从未有过的奇迹,然而,这个奇迹并没有持续 太久。Napster被多家唱片商以侵犯版权为由推上被告席而再次成为业界的焦 点,最终以Napster的陨落作为落幕。下文描述了Napster的陨落。之所以要详 细描述这一过程,其目的不仅在于Napster本身,更重要的是告诉人们P2P网络所 面临的最大困境:版权问题的法律纠纷
, # - ,01 "# " #$)234 "# " 56 !( !$"!"$ 7&8/0,*BPQRS-TUVW5TUXY %l:¨-:/*$1’)(/0B"!""N.& \;zw¨u,´µ"+°FYñ»,m|{y$Rð"H/&4()*PÞ Yñm|{y,"$PQ»¼,«A\,´µ"1[È$ H/&4()*PÞ,m|Y ñØ$ü3=y =!=ÃF2#p+>*))X131+D,%ò&$ ; H/&4()*PQöh"¡[+/0·´) %A&H/&4()*PQ,]Égh¶"Ý÷øht3½û+"´µ½ö@ 3yTU#d?#TUd#{ym|¼¶VmDn$ %!&+V H/&4()*]Éw34þØRSH341,TU7 H/&4()*½¾ ¿"¡wzÛmPQ,èo$ %N&H/&4()*PQ>yûV¨u´µ"1[0mm|"7 :w)$ ¨u´µ;zÛmPQ:¤7$Óç~,$ zn,°ó"H/&4()*þØ( H/&4()*, =!=PQyá!#×Ùd)òO ã¡óäm78);´µ½ö"²³,6#®V;wc,´µhtü¸wc ,á"w1[wc,\(;]É<=,34"²³,6DßÞÞ, 34þØç®RS34(;¨u´µ"²³)òDß)"ç®þÛ¨ u´µ\]PQ,Ö$ !"#", $%&’()*JÃÄ{ºJ.Å H/&4()*µ¶6!"#PQà «‘,º»"?!"¡mº»^Ó" :c$H/&4()*2Vºl窧ÖpáQ24ý!KðÐpñ, µ")|ª H/&4()*,op^$0mü6 H/&4()*,$/âªÈ ûü¡0‘"«_,wxyz H/&4()*åæ",$4p’[=!=PQâ nµ,)+NQ)§Ö78,߬®$
30 对3网终:练构、应周5设计 可能从来没有一个行业像唱片业这样,生存会因为一个小小的软件而受到如 此沉重的威胁。1999年10月31日,原告之一BMG公司和Napster达成和解协 议,舆论认为这表明唱片业意识到通过数字方式发布音乐将是不可阻挡的潮流,消 灭Napster也无法阻止其他模仿Napster的服务商出现,因此还不如与之合作改 变Napster,将Napster的5000万用户变成自己的客户,将之变成在线音乐销售的 渠道。但随之而来的困境是如何防止那些Napster的模仿者继续免费提供歌曲。 1999年12月7日,美国唱片业协会(RIAA)代表环宇音乐、索尼音乐、华纳音 乐、百代唱片、BMG等七大唱片公司以违反版权保护法为由把Napster公司推向 法庭。他们称Napster向网民提供MP3文件共享软件侵犯了音乐版权,要求法院 关闭该公司并判其赔偿损失1亿美元。 2o00年2月,美国旧金山第九巡回上诉法院的三名法官就音乐网站Napster 版权纠纷案做出裁决,认为它侵害了各大唱片公司的版权,并且认为Napster一直 明白它的用户在侵权却对这种侵权行为采取忽视和纵容的态度。但是三名法官并 没有应唱片公司的要求,决定立即关闭Napster网站,而是把最初的判决送回给低 一级的地方法院。法官们说,这项裁决内容过于复杂,需作进一步澄清。错综复杂 的法律过程和长达58页的判决书反映了现在既缺乏与互联网相关的版权法,也缺 乏相应的司法实践。 但是,不管Napster案的结果如何,都不能改变Napster背后的技术和思想给 互联网带来的影响:“魔鬼”已经钻出了“魔瓶”,而“魔瓶”也已经被打破了。对于 唱片界来说,至少它们销售唱片的方式被彻底改变了。下一个可能是好莱坞的电 影工业,因为压缩技术和宽带网络将使得人们能在网络上轻易地传输整部电影,视 频和音频就数据量而言已不存在鸿沟。另一方面,网络上已经出现了许多试图推 出“合法化的Napster”模式的公司,譬如由Napster的创办人之一创办的 Lightshare..com和Flycode.com,利用一个集中的站点提供收费的音乐下载。传 统方式下用户每次从网站下载的时候,网站都必须向电信部门交流量费。使用 P2P则使得这部分费用不再存在了,因此网站获得更多的利润,而用户也可以得到 更便宜的音乐。 2oo0年5月5日,美国地区法官Marilyn Hall Patel做出判决,依据《美国 2000年数字版权法》,Napster的“安全港”资格被取消。 2000年6月,美国唱片业协会(RIAA)和美国音乐出版协会(NMPA)向加利 福尼亚州北地区联邦地方法院起诉Napster公司,请求法院禁止在社会上流通 Napster公司的MP3文件交换软件“Napster”。 2000年7月11日,参议院围绕Napster展开的诉讼召开听证会,无果而终。 一些议员敦促国会立法,以澄清Napster公司是否违反了知识产权法;而支持 Napster一方的人却认为国会不应该现在就介入双方的争端,以免影响新技术的
"* !"#$)%&#’()*+ Êh :Ó0mÌññlñ¡ó"K>¸p0mÏÏ,É|!fk/ ,k¡$AEEE9A"±NAN"-4/0 L?C ݪ} H/&4()*¤Ð}[- ."¢¬Õp¡@.lñ¢qk_‘¼ÞDE-±O)¥$wÊ;£,$b"~ ¤ H/&4()*Fæß;Û«Æë H/&4()*,½¾ç23",w/M/Yo4 5 H/&4()*"¥ H/&4()*,F"""¹]É5ШÚ,ÈÉ"¥/5ÐyO)a¥, ¦8$Ý@/!:,NQ$/Ûò¹ H/&4()*,ëØ$LMYñ|}$ AEEE9A!±TN"ùplñ-¸%X.KK&O@P§O)#¤O)#p£O )#Ol#L?C ¶¨+lݪª©ð§Örsßpá H/&4()*ݪQ¼ ߨ$Æ[# H/&4()*¼PÎYñ ?=Nm|{yÉ|6O)§Ö"6ß_ ©°6ݪ^ª««¬9A½ùÞ$ !"""9!±"ùpáC®´¯°9pß_,äøß©O)P¦ H/&4()* §Ö®[+2±\"Õp1²6l+lݪ,§Ö"^)Õp H/&4()*0& .E1,]ÉyÖ³;¡qÖÌpü¸de}~,O|$Ý$äøß©^ Ó,lݪ,6"\X$ ©° H/&4()*P¦"!$):,ª\¤97G 0,HDß_$ß©[¤"¡Ð±\q~‘zcd"MoÜ0¿³$R´cd ,߬‘}b¤FUV,ª\àð63yÌßâMSzPR©,§Öß"Fß âR,,ªß÷$ Ý$"w¬ H/&4()*[,´Ò/"ãwh45 H/&4()*~¨,RS}NZ7 SzP:,IJ)+µ¶,Öä26+µì,"!+µì,FÖä2uv6$;z l:¤"W»1[a¥l,DE2·ÿ456$00mÊh$, Ièñ"p¹®RS}PQ¥\=’[hyPQXH)úÛÂI"e q}Oq¼Á!4Öw>yº»$I0Dn"PQÖä236+VÍQ 2+Y ß Ù , H/&4()*,ë E , Ý ª"¼ / á H/&4()* , µ õ ’ / 0 µ õ , R1D8(48/*)B#$% } >05#$3)B#$%"]0mX,¦µYñúM,O)0m$) ³DE0]Éð P¦0m,dW"P¦ã)ò¼Â<ôabM$\] =!=\=¡°M]wK>y6"P¦Ñ=V,½"!]ÉFʪ=k ò¾,O)$ !"""9F±FN"ùpH©ß© ?/*105+ ;/00=/()0+2ª\":Á1ùp !"""9¼Þ§Öß2"H/&4()*,+z.¿,Ô2¸~$ !"""9G±"ùplñ-¸%X.KK&}ùpO)2§-¸%H?=K&¼é BbnH©zÀHDß_p H/&4()*ݪ"56ß_Ûyø¸b_ H/&4()*ݪ, ?=Nm|aÎÉ|+H/&4()*,$ !"""9T±AAN" ._q H/&4()*f,pÁ#:G¸"æÒ!|$ 0¹.ÑÂÃp¸$ß"ª³ H/&4()*ݪ$Û©ð6q©Öß(! !" H/&4()*0D,’³Õpp¸w,63yjèD,ùÿ"ªLIJrRS,