P2P网络是一种分布式的网络系统。在P2P网络中,多个计算机或节点共同组成一个网络,而不需要中心服务器来协调各计算机。
在传统的服务器端/客户端应用中,服务器通常为客户端提供服务,这个过程被称为服务消费。但在P2P网络中,每个节点都同时提供和使用着服务。也可以说,“网络即服务”。
每个P2P网络和P2P技术都有自己的目的和协议栈。有的是开放的,有的则不是。有的被用于全球性的网络(包括上千万的节点),有的则被用于较小型的工作组(包括10到20个节点)。
在这部分教程,我将关注全球范围的P2P网络——如何让上千万个网络节点在没有中心服务器的情况下工作。像这样的P2P网络也能在较为小型的工作组中使用,但小型工作组的P2P技术在全球范围的P2P网络中却不大适用。
我会尽力涉及这两种P2P原理,尽我所能更多的谈及P2P网络在实践中的成就。这是个范围很广的主题,所以我可能得将它分为几个小的教程。
原理部分基于Pastry, Tapestry, Chord 和Kademlia这些P2P网络算法。如果你想更深入了解可以到维基百科查询这些网络系统的相关信息。


