Known GGEP Extension Blocks
From Gnutella Developers
<< Known HTTP Download Headers | Known Vendor Messages >> | GDF
Summarizing table of GGEP extensions
The following table provides an overview of known GGEP extensions and links to further detailed information about their use. When allocating new extension IDs make sure you follow the namespace rules. It is recommendable that vendors use their own namespace to test features or introduce experimental extensions and only migrate them to the common namespace if they are considered truly useful.
| ID | Name | Est. Data Size | Locations | More Info URL | Format | Implemented by |
| < | LimeWire XML Metadata | Query, QHD Private area | (http://www.w3.org/TR/REC-xml) (http://www.limewire.com/developer/metainfo_searches.html) (http://www.limewire.com/developer/MetaProposal2.htm) | Well-formed XML. No need to include <?xml> declaration; XML can default to UTF-8. Should be compressed either at the GGEP or packet level, not both. COBS is not necessary. | LIME | |
| ALT | alternate locations | 6 bytes per alternate location | Query Hits | (http://groups.yahoo.com/group/the_gdf/message/17032) (http://gtk-gnutella.svn.sourceforge.net/viewvc/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/ALT) | array of {byte[4] ipv4_address; uint16_little_endian port;} | ? |
| AUTH | Webserver Authentication | ~30 bytes | QHD Private Area | (http://groups.yahoo.com/group/the_gdf/message/16997) | See referenced message. | SWAP |
| BEAR.UP | BearShare Ultrapeer(?) | 3 bytes | ? | ? | ? | BEAR |
| BH | Browse Host | 0 | QHD Private Area | Browse Host Extension | There is no payload. See referenced document. | SWAP, ZIGA, Phex, BEAR |
| CHAT | Chat support | 0 | QHD Private Area | ? | ? | BEAR |
| CT | Creation Time | 1-7 bytes | Query Hits | The creation time of the file, in seconds. (http://groups.yahoo.com/group/the_gdf/message/20053) | See referenced message. | LIME |
| DIPP | GnucDNA Peers/Peer request | Multiple of 6 bytes or zero. | Ping/Pong | Equivalent of GGEP IPP but contains GnucDNA peers only. | Same format as GGEP IPP. | GDNA |
| DNA | Request for GnucDNA peers resp. GnucDNA identication. | 0 | Ping/Pong | Equivalent of GGEP SCP but for GnucDNA peers only. Unlike SCP, it's also used as acknowledgment. | There is no payload. | GDNA |
| DU | Daily average uptime | 1-3 bytes | Pong | (http://groups.yahoo.com/group/the_gdf/message/7820) | See referenced message. | ? |
| GTKG.IPV6 | IPv6 address/support | 16 bytes or none | All message types | (http://article.gmane.org/gmane.network.gnutella.devel/11459/) | Without any payload this extension simply indicates general IPv6 support and connectivity; otherwise the payload is an IPv6 address (16 bytes). | GTKG |
| GTKG.TLS | TLS support indication | None | All message types | (http://article.gmane.org/gmane.network.gnutella.devel/11469/) | There's no payload for now. The presence of this extension merely indicates support for TLS encrypted (TCP) connections. | GTKG |
| GTKGV1 | Gtk-Gnutella Version | 12 bytes | QHD Trailer | (http://gtk-gnutella.svn.sourceforge.net/viewvc/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/GTKG-V1) | ? | GTKG |
| GUE | This node supports GUESS | 0 | Pong | (empty) | There is no payload. | SWAP, LIME |
| H | File hash in binary form | 21-22 bytes | Query Hit between the NULs, Query after the NUL. If supported, set bit 12 of MinSpeed. | (http://gtk-gnutella.svn.sourceforge.net/viewvc/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/H) | COBS encoded if in Query Hit. If supported, set bit 11 of MinSpeed. | GTKG, ZIGA |
| HNAME | HostName | Length of the hostname (4-255) | QHD Trailer | (http://groups.yahoo.com/group/the_gdf/messages/17507?expand=1) (http://gtk-gnutella.svn.sourceforge.net/viewvc/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/HNAME) | Fully qualified hostname, ASCII. | GTKG |
| IP | Remote IPv4 Peer Address (F2F related) | 0 bytes (Ping); 6 bytes (Pong) | Ping (Request); Pong (Reply) | (http://groups.yahoo.com/group/the_gdf/message/21362) | The Pong reports the public IPv4 address (big-endian, 4 bytes) + Port (little-endian, 2 bytes) of the Ping sender. | BEAR |
| IPP | IP Port | 6 bytes per peer | Pong | UDP Host Cache | Array of {byte[4] ipv4_address; uint16_little_endian port;} | LIME, GTKG |
| LF | Large File | typically 4-9 bytes | Query Hits | (http://groups.yahoo.com/group/the_gdf/files/Proposals/Working%20Proposals/GGEP/Extensions/LF.txt) (http://gtk-gnutella.svn.sourceforge.net/viewvc/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/LF) | See referenced document. | GTKG |
| LOC | Locale Preference | typically 2 bytes | Ping, Pong | Indicates the primary locale (language) preference of the peer. | Contains a standard Locale identifier: format 'll[_CC[_variant]]', where 'll' is a lowercase ISO639 language code, 'CC' is a uppercase ISO3166 country/region code, and 'variant' is a variant code (each subcode is 2 chars min, case is normally not significant but should be as indicated before; the locale identifier subcodes may be longer if needed, notably for language codes; see RFC 3066). | LIME |
| M | Meta | 1-4 bytes | Query | ? | Little-endian integer (variable length) representing a mask that indicates what kind of results are desired. | LIME |
| MCAST | Present when you are responding directly to a multicast query | 0 | QueryHit | (http://groups.yahoo.com/group/the_gdf/message/15458) | There is no payload. | SWAP |
| NP | No Proxy flag | 0 | Queries | For OOB Proxy by Ultrapeers, this flag denotes that the Query should not be proxied. | There is no payload. | LIME |
| PATH | Path of file | 32-64 bytes | Query Hits | ? | A server may return Query Hits for files within a folder, in response to Queries that match the name of the folder, but don't necessarily match the name of any file. The PATH field provides the name of the folder containing the file. To conserve global bandwidth, this field should only be used when the server user has specifically indicated that Queries should match files within folders. | BEAR |
| PHC | Packed Host Caches | ? | Pong | UDP Host Cache | See referenced document. | LIME |
| PUSH | A list of your push proxies | 6 bytes per proxy | QueryHit | (http://groups.yahoo.com/group/the_gdf/files/Proposals/Working%20Proposals/Push%20Proxy%20HTTP%20%28PPH%29/PushProxy_v06) | Array of {byte[4] ipv4_address, uint16_little_endian port;} | ? |
| QUAL | ? | 6 bytes | ? | ? | ? | BEAR |
| QUALTCP | ? | 6 bytes | ? | ? | ? | BEAR |
| QUALUDP | ? | 6 bytes | ? | ? | ? | BEAR |
| SCP | Supports Cached Pongs | 0 or 1 byte | Ping | UDP Host Cache | See referenced document. | LIME, GTKG |
| SWAP.q | Query Stuff | 16 bytes | Query | (http://web.archive.org/web/20050430064639/http://mywebpages.comcast.net/jthomas497/swapper/extensions/querystuff.html) | See referenced document. | SWAP |
| SWAP.s | Servent Info | 100 bytes | QHD Private Area | (http://web.archive.org/web/20050430064741/http://mywebpages.comcast.net/jthomas497/swapper/extensions/serventinfo.html) | See referenced document. | SWAP |
| TCPCUP | ? | 5 bytes | ? | ? | ? | BEAR |
| TT | ? | 5 bytes | ? | ? | ? | BEAR |
| UDPHC | UDP Host Cache | ? | Pong | UDP Host Cache | See referenced document. | LIME, GTKG |
| UDPCUP | ? | 5 bytes | ? | ? | ? | BEAR |
| UDPNFW | ? | 6 bytes | ? | ? | ? | BEAR |
| UP | Ultrapeer | 3 | Pong | ? | {VersionGuessStyle VersionUP, byte SlotsFreeUP, byte SlotsFreeLeaf} | ? |
| u | urn | ? | Query, Query Hit | HUGE (http://rfc-gnutella.sourceforge.net/src/draft-gdf-huge-0_94.txt) (http://gtk-gnutella.svn.sourceforge.net/viewvc/gtk-gnutella/trunk/gtk-gnutella/doc/public/GGEP/u) | See referenced document. | ? |
| VC | VendorCode | 5 | Pong | ? | {byte[4] VendorCode, VersionGuessStyle VersionUA} | ? |
| WH | Feature Selector (derived from "What is new") | typically 1 | Query | ? | Integer (little-endian, variable length). A value of 1 indicates that the query is a "What is new" request. The receiver should send the (3) newest files as reply. | LIME |
<< Known HTTP Download Headers | Known Vendor Messages >> | GDF

