Peer System:gnutella
GNUTELLA is the first demonstrated distributed Peer-to-peer system.
A major issue for Napster is the indirect infringement, so Gnutella eliminates the servers altogether then uses the client to search and retrieve, so the client also acts as a servers, So Gnutella's client is also called servents (which is stitched together by server and client)
Neighbors means that the peer knows their IP address and port number and can send them a message (such as TCP).
A graph called an overlay graph was created in peers, which is called an overlay graph because it's a graph that's overlaid on top of the Internet
Each edge in the diagram is essentially the internet path of the underlying internet, but given the overlay, actual path in the underlying internet is not relevant, as long as these peers can talk to each Other.
How to find the specified file
The five main message types:
Query message: Queries that contain keywords
Queryhit: A response to query
Ping: To ensure that the list of neighbors is up-to-date, use ping and pong message
Pont: To ensure that the list of neighbors is up to date, use ping and pong message
Push: For file transfer
All fields of the message we discussed above use small-end storage in addition to the IP address
Peer System:gnutella