Main Page

From Gnutella2
Revision as of 16:57, 7 March 2009 by Dcat (talk | contribs) (→‎News)
Jump to navigation Jump to search

Gnutella2 Developer Network

Welcome to the Gnutella2 Developer Network. The Gnutella2 Developer Network (or G2DN) is a convenient central location for discussing, developing and documenting all aspects of Gnutella2. Like the Gnutella2 platform itself, this website is designed to evolve through community support and participation. Everyone is free to contribute discussion, proposal documents, developer resources or any other relevant material.

Although the G2DN is primarily geared toward developers and technical enthusiasts, users of Gnutella2-enabled software are also welcome to participate. Those who are new to Gnutella2 may wish to check out some of the Gnutella2-powered software.


Feel free to contribute to the wiki after reading Gnutella2:Community Portal to learn about editing policy.

Mailing List

To allow communication among developers of Gnutella2 clients, there exists a mailing list. You can access it too via regular news reader at the news-to-mail gateway Gmane (list page here).

The Gnutella 2 Network

  1. What is Gnutella2
  2. Gnutella2 Standard
  3. Network Architecture
  4. Node Types and Responsibilities
  5. Background / Archive

The Protocol

  1. TCP Stream Connection and Handshaking
  2. UDP Transceiver
  3. Packet Structure
  4. Datatypes
  5. Basic Network Maintenance
  6. Known Hub Cache and Hub Cluster Cache
  7. Node Route Cache and Addressed Packet Forwarding
  8. Query Hash Tables
  9. Object Search Mechanism
  10. Search Security
  11. Search Description
  12. Search Acknowledgement
  13. Search Results
  14. Simple Query Language and Metadata
  15. Server for Uploading
  16. Client for Downloading
  17. User Profile Challenge and Delivery

Root Packets

  • /CRAWLA - Crawler Answer
  • /CRAWLR - Crawler Request
  • /HAW - Hub Advertisement Walker
  • /KHL - Known Hub List
  • /KHLR - Known Hub List Request
  • /KHLA - Known Hub List Acknowledgement
  • /LNI - Local Node Information
  • /PI - Ping
  • /PO - Pong
  • /PUSH - Push
  • /QKA - Query Key Acknowledgement
  • /QKR - Query Key Request
  • /Q2 - Gnutella2 Query
  • /QA - Query Acknowledgement
  • /QH2 - Gnutella2 Query Hit
  • /QHT - Query Hash Table
  • /UPROC - User Profile Challenge
  • /UPROD - User Profile Delivery


Additional Information

Since Gnutella2 somehow evolved from the original Gnutella protocol you might find the following links useful: