The remainder of this document is concerned with the Gnutella2 network architecture, which is the most substantial part of the Gnutella2 initiative and forms the core of the Gnutella2 standard.
The Gnutella2 network architecture consists of several key components:
- Node types and responsibilities for self-organising network topology
- TCP stream connection handshake negotiation and compression encoding
- UDP reliable/semi-reliable transceiver stack and encapsulation protocol
- Gnutella2 common tree packet structure (basic protocol)
- Basic network maintenance packet types
- Known hub cache and hub cluster cache
- Node route cache and addressed packet forwarding
- Query hash table, superset table and exchange packet types
- Gnutella2 object search mechanism, client and server roles, forwarding rules, filtering rules, security
- Local search responder with simple query language and metadata
- HTTP/1.1 server for upload queuing and servicing
- HTTP/1.1 client for download scheduling and transfer
- User profile challenge and delivery packet types
Note that a typical peer to peer application utilising Gnutella2 will have many additional components related to its core function. This list covers only components with an obvious network interaction, and should not be used as an exhaustive design guide. A typical file sharing application may have in excess of 120 components at the core level.