1
Propagating Server's Hostname
5
<Raphael_Manfredi@pobox.com>
11
Because most ISP today offer dynamic IP to their customers, the lifetime of
12
Gnutella's server IP addresses is short (around 24 hours).
14
This is counter-productive for the file-serving features of Gnutella, as
15
the queued downloads and the download mesh only record the IP addresses of
18
When users have some kind of dynamic DNS setup, it is possible for them
19
to provide a hostname that can be looked up through the DNS to yield
20
the corresponding IP address.
22
This proposal documents what is implemented in gtk-gnutella today (26/10/2003).
25
2. HOSTNAME CONFIGURATION
27
The GUI offers an optional configuration for a hostname. When supplied,
28
this hostname will be transmitted in the query hits generated by the host
29
and in the HTTP headers of the server's replies for downloaders to peruse.
31
It is NOT beeing used in the mesh entries yet. Servent authors are encouraged
32
to update their code to allow hostnames to be given as alternate locations,
33
in X-Gnutella-Alternate-Location or in X-Alt headers. For backward
34
compatibility, gtk-gnutella does not use the optionally configured hostname
35
in those headers and sticks to supplying the node's IP address only (as
39
3. HTTP HOSTNAME PROPAGATION
41
A Gnutella node serving files and knowing its hostname will tell uploaders
42
about it via the X-Hostname header, provided it is not firewalled:
44
X-Hostname: gnutella.example.com
46
It is up to the uploader to interpret this header. The header MAY not
47
be always present in the server's replies, even though the hostname is
48
known, to save bandwidth. In particular, follow-up HTTP/1.1 replies
49
SHOULD NOT contain it.
52
4. QUERY HIT HOSTNAME PROPAGATION
54
A Gnutella node replying to queries, knowing its hostname and not firewalled
55
SHOULD include its hostname in the trailer of its query hits, using the
56
"HNAME" GGEP extension.
58
This extension is defined as:
61
Where: Query Hit (trailer)
63
Date: Sun Oct 26 15:25:36 MET 2003
68
The "HNAME" extension carries the hostname of the Gnutella server, for
69
instance "gnutella.example.com". The payload does not include the
70
trailing NUL character at the end of the string.