classify
According to the degree of centralization
Pure P2P:
* A node is both a client and a server.
* No central server.
* No central router.
* such as Gnutella.
Heterogeneous P2P:
* There is a central server, which stores information of nodes and responds to requests for such information.
* The node is responsible for publishing this information (because the central server does not save files), letting the central server know what files it wants to share, and letting the nodes in need download their shareable resources.
* The address used by the routing terminal is referenced by a set of indexes to obtain an absolute address.
* Just like the original Napster.
Hybrid P2P:
* It has the characteristics of pure P2P and hybrid P2P.
* such as Skype.
According to the network topology
Structured P2P:
* There is link information between peer-to-peer systems, forming a specific regular topology.
* When a resource needs to be requested, look for it according to the rules of topological structure. If there is one, it must be found.
* such as chords, yes.
Unstructured P2P:
* Point-to-point interconnection forms a random mesh topology.
* When a resource point needs to be requested, TTL is usually set through broadcast search, even if it exists, it may not be found.
* such as Gnutella.
Loosely structured P2P:
* Point-to-point interconnection forms a random mesh topology.
* When a resource needs to be requested, guess and search according to the existing information, which is between structured P2P and unstructured P2P.
* such as Freenet.