Known GGEP Extension Blocks

From Gnutella Developers

<< Known HTTP Download Headers | Known Vendor Messages >> | Main Page

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

Metadata:[1] (; XML: [2] (

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.

ALT alternate locations 6 bytes per alternate location Query Hits [3] ( array of {byte[4] ipv4_address; uint16_little_endian port;} ?
AUTH Webserver Authentication ~30 bytes QHD Private Area [4] ( 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. [5] ( 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 [6] ( See referenced message. ?
GTKG.IPV6 IPv6 address/support 16 bytes or none All message types [7] ( 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 [8] ( 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 ? ? GTKG
GUE This node supports GUESS 0 Pong (empty) There is no payload. SWAP, LIME
H File hash 21-22 bytes

Query Hit between the NULs, Query after the NUL. If supported, set bit 12 of MinSpeed.

[9] ( 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 [10] ( Fully qualified hostname, ASCII. GTKG
IP Remote IPv4 Peer Address (F2F related) 0 bytes (Ping); 6 bytes (Pong) Ping (Request); Pong (Reply) [11] ( 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 [12] ( 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 [13] ( 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 ?

[14] (

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 [15] ( See referenced document. SWAP
SWAP.s Servent Info 100 bytes QHD Private Area [16] ( 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 ( 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 >> | Main Page