P2P技术

P2P 技术科普
迅雷,msn,skype,pplive, ppstream, BT…… 铺天盖地的 P2P 应用已然一定程度上改变了我们上网的习惯,方式以及质量。如果你想了解 P2P 技术,又懒得找,懒得看那些繁琐,模棱两可又及其抽象的中文资料,这里应该是一个你想来的地方。 我的目的是用比较俗的语言来对 P2P 技术做一个系统的介绍。这里,我会尽量避开不必要的术语,只告诉并解释你需要知道的。当然我不是什么专家,不过请你相信我回尽量保证我所提供信息的准确性和严谨性。我们没有任何商业目的,您的每一次点击都将对我国的慈善事业做出一份贡献。在此谨代表站长 kakarott 先生向诸位表示感谢。在 P2P 技术之前,网络中的所有人大多都是通过一种叫做 “客户端 / 服务器” 的模式被组织在一起。一个服务器向很多客户提供服务。举个例子吧: kaka 有一台机子,里面存有全套的央视春晚,他想把他的挚爱分享给所有人。于是不论是通过广告还是别的什么方式,很多人知道了 kaka 有这个资源的消息。通过网络,他们就可以向 kaka 建立连接并从他的机子上下载。这样就形成了一个以 kaka 为中心的小型网络。这当中,kaka 是服务器,其他人都是客户端。如图一:图 1-1这样的模式中,对服务器的性能及相应带宽要求比较高,如果有成千上万的人都想下春晚,kaka 的海淀在线肯定就操蛋了。当然一般的公司不会用一个家用电脑做服务器。假设有存在一个特别强大的服务器,以及足够的带宽。我们来看看这种模式天生的一些弱点:P2P 技术就是要解决上述的问题已达到如下的效果: 所有人的资源都可以被别人找到并使用。没有哪个人特别重要,人人平等(peer-to-peer 就是这个意思),任何一个人失灵都不会导致网络的死亡。这里以 Gnutella 为例,对 P2P 基本原理进行介绍。 Gnutella 是一种典型的 P2P 网络,很具代表性,以其为基础的软件有 Limewire。这种网络里,没有服务器。用户之间任意连接,如图二左所示:图 1-2Kaka 认识 ‘日天’‘curt’‘威’, 日天认识‘小胖’,威认识‘候泡’,Curt 认识 ‘路’。当然真正的网络有至少有成百上千个用户,这里只是展示一个小的局部。