|
p2p文件共享工具历史大汇报
( Q/ f# v2 l' y& S0 Gp2p共享又称p2p档案共享,p2p文件分享(file sharing)。文件共享是指主动地在网络上(互联网或小的网络)共享自己的计算机文件。P2P文件共享使用P2P(Peer-to-Peer)模式,文件本身存在用户本人的个人电脑上,如果没有人共享,网络中将不会有文件可以被下载。大多数参加文件共享的人也同时下载其他用户提供的共享文件。有时这两个行动是连在一起的。网络中的所有文件都由使用者自己提供,使用者在网络中搜索其他使用者共享的文件,并按着一定协议,相互交换共享文件。
( o; q$ d! j+ y* q/ r- U( k; b4 y# k* j5 t7 J* }
(请注意,中国媒体使用的p2p下载这个词是一个坏词汇,它曲解了p2p文件共享的本义,让人们误将其作为一种下载工具认识和使用,对p2p文件共享的发展起着非常恶劣的影响)4 m# t- ^% | E! f. t6 W( @
6 ?. Z4 P/ @) j& W7 m, I: t/ p
Napster是第一个大型的,为许多人使用的文件共享工具。1998年,美国东北波士顿大学的一年级新生、18岁的肖恩范宁(Shawn Fanning)为了能够解决他的室友的一个问题——如何在网上找到音乐而编写了一个简单的程序,这个程序能够搜索音乐文件并提供检索,把所有的音乐文件地址存放在一个集中的服务器中,这样使用者就能够方便地过滤上百的地址而找到自己需要的MP3文件,这就是Napster的由来。它本来是一个中央集中的工具,它只共享MP3文件,音乐工业RIAA在对它进行法律控告后成功地将它关闭了。Napster有一个中心的、在它上面报道的用户的MP3文件的目录,它还包括IRC似的聊天室和即时通讯功能。几乎所有新的大的文件共享服务在设计上都以它为榜样。文件共享有许多不同的网络协议,而基于每种不同的协议实现了丰富多彩的p2p文件共享应用软件和工具,每一种工具都基于一种或多种p2p共享协议实现了网络中用户之间进行文件交换和分享的用途,以下列举的是最常用和最重要的p2p共享协议及其应用工具。
5 v6 r- ~. `- }1 z9 @5 F7 t, d
7 k9 Q0 l! {7 }' p J0 \: L1.OpenNap(前身为Napster)
- A. `6 m/ |3 ?; a' C+ ?' I. n: B" M& d5 b. ?% P; K4 q
OpenNap是对原来的Napster客户端程序改变后来的,今天依然有人在发展它,WinMX等程序使用它。
4 [7 e d( O& K9 ~
! s2 ^4 k0 Y( {" ~1 F" A8 a; F2.Gnutella和Gnutella2
) l8 I$ y2 p4 U1 T* o6 _" N' r- C
: D5 d; W: D& B9 \+ _7 n当Napster陷入法律困境时,2000年3月,美国在线公司(America Online)的Nullsoft的两名工程师贾斯廷.弗兰克尔(Justin Frankel)和汤姆.佩珀(Tom Pepper)瞒着公司开发了Gnutella,Gnutella是第一个真正的非中心的客户端。此后这个协议获得了很大的发展。Gnutella对文件共享有深刻的影响。是目前最流行的p2p共享网络,客户端有BearShare、Gnucleus、Morpheus、Swapper、XoloX Ultra、LimeWire、和Phex。) O( \. B* |7 a" y6 B% l$ z _
3 ?5 w P' ?# z( w+ iGnutella2本来是对Gnutella的一个改进和扩展,它的发展人是Shareaza的创始人迈克尔.斯多克斯。它提供了一个扩展的数据包格式、基于UDP的搜索算法和许多其它扩展比如数据包压缩等等。今天现代的Gnutella客户端程序都支持这些功能。
; j% Q# D6 L2 ~6 h/ E
$ r6 F! k, v: x: w; o4 P) k0 Z3.FastTrack E; y1 ~6 N& |1 E/ Q2 V q: |
; P0 U' ?" w# EFastTrack和Kazaa是Scandinavians、Niklas Zennstrom和Janus Friis设计的,2001年3月,在一家荷兰公司Consumer Empowerment的产品中最先使用。FastTrack的第一个客户端程序是KaZaA,它的协议与Gnutella2很相似。从2002年到2003年它是最大的用户网,但2005年它退到了第三名。iMesh,Morpheus和Grokster也主要使用FastTrack,它们使用互相不兼容版本的协议。此外开放源代码的GiFT也可以用来连入FastTrack网络。
) b4 c2 ]! N) {8 T: c" f% r8 M& ~, h5 T, f9 F
4.Ares$ V- q" T9 D2 k% J2 v
- r' G3 M* [9 l
Ares是一个类似Gnutella的很普及的网络,其标准和最普及的Ares Galaxy客户端于2005年3月是美国P2P客户端中第六常用的,Ares Galaxy客户端还包含一个文件共享聊天室方便使用者交流。
! n5 W( `' U( Q7 H- s
" x& ~& d, `* M3 n. m9 y' z5.Direct Connect
' V9 h a5 w. K7 C: r3 |: K- L0 F2 A; H4 d7 _( C- M( w) O
Direct Connect是一种常用于小的网络和大学内部网络中的协议,它尤其适用于这些小网络环境中。DC++(资源共享大师)是其最常见的客户端程序,由Neo-Modus公司开发的,是一个开放源码的免费的可用于文件交流,同时又可以作为聊天工具。& h7 ? a7 R/ t- L( w& B" q
' k1 C% v. A+ z6 x) a
6.eDonkey2000(电驴), d% I' h$ ]8 g" ] T. b: u p
5 h% Y) L2 i# a& w! J# \
eDonkey2000(ed2k)由MetaMachine公司的创始人Jed McCaleb和Sam Yagan在2000年创立,是一种档案分享网络,最初用于共享音乐、电影和软件。与多数文件共享网络一样,它是分布式的;文件基于点对点原理传输,而不是由中枢服务器提供。客户端程序连接到ed2k网络来共享文件。而ed2k服务器作为一个通讯中心,帮助用户在ed2k网络内查找文件。它的客户端和服务端可以工作于Windows、Macintosh、Linux、UNIX操作系统。任何人都可以作为服务器加入这个网络。由于服务器经常变化,客户端会经常更新它的服务器列表。ed2k的客户端为eDonkey2000 (即MetaMachine公司的客户端,中文叫电驴) ,2005年,电驴败诉,被判罚向RIAA赔款3000万美元并且永久关闭其网络。
9 }9 [4 _2 F) O1 l o9 h$ F: v" k
( g$ u' R4 r3 L @$ b如今广为流传的基于ed2k的客户端为eMule,中文名称电骡,创始人为2002年05月13日本名Hendrik Breitkreuz(亨德里克.布雷特刘兹)的Merkur,他不满意当时的eDonkey2000客户端,并且坚信自己能做的更出色,于是着手开发。他凝聚了一批原本在其他领域有出色发挥的程序员在他的周围,eMule开源工程就此诞生。他的目标是将eDonkey的优点及精华保留下来,并加入新的功能以及使图形界面变得更好。目前eMule的最新版本是0.49b,已经成为了全球最流行的开源p2p文件共享客户端。
% q' [. X) s f" G# T$ F* I/ j5 `; D5 {
aMule (Another eMule P2P Client 或 All-Platform' p2p client based on eMule) 是一个开源的 P2P 文件共享程序。由deltaHF等人开发,跟 eMule 类似,aMule 可应用于 eDonkey 网络协议,现在也支持 KAD 网络,所不同的是,aMule 可在各种操作系统下运行,除了Windows ,Linux和 Mac OS,还包括各种 Unix-like 系统。0 {: L- f# O2 S ]( R: F0 j5 N$ I
+ e1 R, ~# ?* _: T
7.Kademlia
: X X5 c$ M4 X. `; J( {) X+ e* D- q/ q" c0 X
2002年纽约大学的年轻学者Petar Maymounkov 与David Mazières发表了论文《Kademlia: A Peer-to-peer Information System Based on the XOR Metric》,Kademlia是由所设计的点对点 (P2P) 重叠网络,以达成非集中式的点对点 (P2P) 电脑网络。它规制了网络的结构及规范了节点间的通讯和交换资讯的方式。Kademlia节点藉以实作分布式杂凑表 (DHT,distributed hash table) 以储存资料。Kademlia 被用来进行档案分享。透过进行 Kademlia 关键字搜寻,任何人可以在档案分享网络中寻找资料以下载东西。由于没有任何中央服务器储存盘案列表的索引,因此这项工作是平均的由所有的客户端担当。
5 i' i4 c& C, [, R: N
& K2 p% s+ Y4 O: o目前公开使用Kademlia的网络有Overnet,Kad Network,DHT等。电驴eDonkey,此外还有mlDonkey客户端使用了Overnet。电骡eMule使用的为Kad Network。BitTorrent使用的为DHT。# }, N5 V& i9 J3 ], [" ]; N
+ ~, T$ K I' n u/ F8.BitTorrent
2 ] Z, W/ B4 B5 S0 [) c8 R, p8 @) I1 T- H8 n( ~! f
BitTorrent协议(简称BT,俗称比特洪流、BT下载)是一个网络文件传输协议,它能够实现点对点文件分享的技术。由布莱姆•科亨(Bram Cohen)设计,2002年在CodeCon发表首个BT软件BitTorrent。它以Python写成,以MIT许可证发布,起初为免费开源,BitTorrent成为文件共享社区使用最广泛的软件很大程度是由于其开源性质,开发者能够利用原始的BitTorrent源代码创造自己的产品,基于BT的客户端包括了Azurues、BitComet、Transmission,uTorrent等,2007年由于一些商业公司利用BT进行恶意的商业目的而宣布不再开源。2006年12月7日,BitTorrent收购了uTorrent,uTorrent成为BitTorrent官方客户端。 b: x$ I9 `6 ?, {* _: V3 l6 [5 g
8 s" _$ W q Y' c, j7 e+ W! d2 o, o
9.OpenFT(Open FastTrack)
" W: u2 C# L: i& j R3 r$ T
# j) [3 V! n$ \) vOpenFT是一个对等的(P2P)网络,来自The giFT Project,节点提交共享文件的列表到其它节点来保持跟踪那些文件在网络中是可用的。这减少了带宽的消耗,从附加代价内存的搜索请求和处理在存储信息的节点上的功率。共享列表的传输是不完全递归的:一个节点仅能传输它的共享文件列表到一单个搜索节点,很少选那个节点的“父节点”,和那些文件的列表将不会被进一步传送给其它节点。基于OpenFT的客户端giFT可以通过插件等支持其他p2p网络,开源跨平台,KCeasy 是一个giFT在windows平台上的前端程序。
, O d9 l' r5 X' m% V |
|