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网络算法。如果你想更深入了解可以到维基百科查询这些网络系统的相关信息。
=====================================================
本微信静态数据存储由七牛云存储提供!七牛专为移动时代开发者提供数据安全托管、双向传输加速以及图片、音视频等数据处理的一站式服务。