For example, I will remember each message I have received. I forward each message I receive as appropriate, unless I have already seen the message. If I have seen the message, that means I have already forwarded it, so everyone I forwarded it to has already seen it, and so on. So I just forget about the duplicate and save everyone the trouble. The GnutellaNet has no hierarchy.
Every server is equal.
Every server is also a client. Each Gnutella server only knows about the servers that it is directly connected to. This provides amazing anonymity. Unfortunately, the combination of having no hierarchy and the lack of a definitive source for a server list means that the network is not easily described. Connecting to a server After making the initial connection to the server, you must handshake.