P2P 网络是一种分布式的网络系统。在 P2P 网络中,多个计算机或节点共同组成一个网络,而不需要中心服务器来协调各计算机。
在 P2P 中,网络本身就是服务
在传统的服务器端/客户端应用中,服务器通常为客户端提供服务,这个过程被称为服务”消费”。但在 P2P 网络中,每个节点都同时提供和使用着服务。也可以说,“网络即服务”。
现有的 P2P 网络和 P2P 技术
现在已经有许多 P2P 网络和 P2P 技术在运行。其中 P2P 网络有: BitTorrent, LimeWire, Kazar (file sharing), Skype (VoIP), Joost (TVoIP), Hamachi (VPN)等。P2P 技术有:JXTA, Jini, OpenP2P 等。
每个 P2P 网络和 P2P 技术都有自己的目的和协议栈。有的是开放的,有的则不是。有的被用于全球性的网络(包括上千万的节点),有的则被用于较小型的工作组(包括 10 到 20 个节点)。
全球范围的 P2P 网络
在这部分教程,我将关注全球范围的 P2P 网络——如何让上千万个网络节点在没有中心服务器的情况下工作。像这样的 P2P 网络也能在较为小型的工作组中使用,但小型工作组的 P2P 技术在全球范围的 P2P 网络中却不大适用。
我会尽力涉及这两种 P2P 原理,尽我所能更多的谈及 P2P 网络在实践中的成就。这是个范围很广的主题,所以我可能得将它分为几个小的教程。
原理部分基于 Pastry, Tapestry, Chord 和 Kademlia 这些 P2P 网络算法。如果你想更深入了解可以到维基百科查询这些网络系统的相关信息。
P2P 视频教程
以下是我录制的一个教程短片:http://www.youtube.com/embed/kXyVqk3EbwE
欢迎联系我
如果你对我所写的关于 P2P 网络的内容有什么不同的看法,或者有什么评论、问题等,欢迎通过电子邮件联系我。不必担心你会是第一个联系我的人。你可以点击“关于”找到我的电子邮箱地址。