FAQ
Allgemeines
- Was ist Gnutella überhaupt?
- Was ist GTKG?
- This eats up too much bandwidth!
- Was sind Ultrapeers und Blattknoten?
- Wieso behauptet gtk-gnutella, es sei hinter einer Firewall, obwohl das nicht der Fall ist?
Übersetzen der Sourcen
Gnutella-Verbindungen
- Wie viele Verbindungen sind ratsam?
- Muss meine Firewall speziell konfiguriert werden?
- How do I configure port forwarding?
- Verwendet gtk-gnutella UDP?
- Was bedeutet "[FC]"?
- Wieso verschwinden Gnutella-Verbindungen, während eines Uploads?
- What does this stuff in the Flags column mean?
- Was bedeutet ein vorangestelltes "!" im User-Agent-Feld?
- What does "Harmful version banned, upgrade required" mean?
- What does "Outdated version, please upgrade" mean?
- Wieso funktioniert der HTTP-Proxy nicht?
- Wie kann ich die Timeout-Einstellugen ändern?
- How does auto mode decide between ultra and leaf?
Suchen
- Wie bekomme ich mehr Suchtreffer?
- Wie kann ich Treffer ohne SHA1 ignorieren?
- Wo gebe ich Suchanfragen ein?
- Was ist eine
passive
Suche? - Wieso sind einige Suchergebnisse nicht entzifferbar?
Downloads
- What does the status "Ignoring requested [SHA1|name & size]" mean?
- What does the status "No URN on server" mean?
- Wieso wird dieselbe Datei mehrmals heruntergeladen?
- What is "swarming"?
- What is a "chunk"?
- What is the "download mesh"?
- What is a "push request"?
- Wieso hängt gtk-gnutella Dateinamen ein
.OK
an? - I got a file that just won't download!
- In the downloads pane, what does it mean if the color of the text is grey instead of black?
- Welche Kodierung wird für Dateinamen benutzt?
Uploads
GTK+ 2.x
Allgemeines
Was ist Gnutella überhaupt?
Gnutella ist ein dezentrales Peer-to-Peer Netzwerk zum Datenaustausch. Derzeit wird es hauptsächlich dafür genutzt, Dateien jeglicher Art zu anzubieten und herunterzuladen. Die moderne Variante des Gnutella-Protokolls ist durch das offizielle GDF-Wiki dokumentiert. Weitere Informationen zu Gnutella findet man auch im infoAnarchy wiki.
Was ist GTKG
?
Wir sprechen oft von GTKG anstatt gtk-gnutella, einfach weil es kürzer ist. GTK bezieht sich auf GTK+, das für die grafische Oberfläche von gtk-gnutella benutzt wird.
This eats up too much bandwidth!
At the moment you can try one or more of the following things if you are a user on a slow line (modem):
- Run as a leaf node. You change the peermode setting in the configuration panel under GnutellaNet. An icon in the statusbar indicates in which mode you are running.
- Limit the number of gnet connections you have.
- If you are able to receive incoming connections, enable Prefer compressed connections in the Bandwidth control options.
- Even if you are on a slow connection, it's still important to share files. With swarming, people can upload small chunks of files from you, so even a slow connection, multiplied by many sources on the gnet, makes a tremendous contribution. If you have a 56K modem, you can set Bandwidth limits for HTTP traffic - Cumulative upload rate to 1K/s so you still have the majority of your bandwidth for downloading.
- Depress the lower-left button in the GUI after your downloads have started. This will disconnect from the Gnutella network. We strongly advise you to NOT do that. You won't be able to get more alternate locations from the net and people won't be able to search your files.
Was sind Ultrapeers und Blattknoten?
gtk-gnutella unterstützt den Ultrapeer- und Leaf-Modus seit Version 0.92.
Dadurch werden Peers im Gnutella-Netwerk in Ultrapeers, die sich zu
anderen Ultrapeers sowie Blattknoten verbinden, und Blattknoten
(Leaves
), die sich zu wenigen Ultrapeers verbinden, unterteilt.
Siehe auch: Wie viele Verbindungen sind ratsam?.
Ultrapeers dürfen nicht durch eine Firewall blockiert sein und sollten lange Betriebszeiten haben (mehr als ein paar Stunden) und dem Gnutella-Netwerk genügend Bandbreite zur Verfügung stellen können. Ultrapeers leiten Suchanfragen von ihren Blattknoten. upload to their ultrapeers QRP tables which contain hashes of keywords that will match files shared by the leaf. When an ultrapeer gets a hit on a query routing table, it relays the query to the corresponding leaf node. The result is very low gnet traffic for each leaf node, freeing bandwidth for sharing and downloading (which still occur directly p2p.) Ultrapeers can also act as push-proxies for firewalled leaf nodes.
Wieso behauptet gtk-gnutella, es sei hinter einer Firewall, obwohl das nicht der Fall ist?
Solange gtk-gnutella keine eingehende Verbindung sieht, wird davon
ausgegangen, dass der konfigurierte TCP-Port durch eine Firewall blockiert
wird.
If you want to speed up the detection, use a web browser, telnet or similar
and connect to the listening port from the outside. If the connection is
refused or dropped, then you are very probably really unreachable due to a
firewall which blocks the port, a misconfigured NAT or similar. You might
want to try a different listening TCP port because some ISPs block the
default Gnutella port (6346).
See also,
Do I need to forward a port on my firewall?
.
Übersetzen der Sourcen
Wie bringe ich Configure dazu, keine Fragen zu stellen?
Das Configure
-Skript kann folgendermaßen aufgerufen
werden, damit die Default-Einstellungen gewählt werden:
$ ./Configure -ders
Die Compile-Optionen können ebenfalls per Kommandozeile übergeben werden. Hier ein Beispiel, das gtk-gnutella so konfiguriert, dass
-
...benutzerdefinierte Einstellungen akzeptiert werden:
-O
. Ohne dies haben die im Weiteren genannten Parameter keinen Effekt. -
...das Gtk+ 1.2 Front-End genutzt und die Remote-Shell zur Verfügung
steht:
-D gtkversion=1 -D remotectrl=y
. -
...Compiler-spezifische Optionen genutzt werden, z.B. Optimierung
für einen Pentium und MMX-Support unter GCC:
-Dccflags="-march=pentium -mmmx"
. -
...Debug-Informationen enthalten sind und alle Optimierungen deaktivert
sind:
-Doptimize="-g -O0"
.
Die Kommandozeile sähe dann wie folgt aus:
$ ./Configure -Oders \
-D gtkversion=1 \
-D remotectrl=y \
-Dccflags="-march=pentium -mmmx" \
-Doptimize="-g -O0"
Gnutella-Verbindungen
What is a good number of connections?
In leaf mode 3 ultrapeers, in ultrapeer mode 32/40 (minimum/maximum) ultrapeers and around 100 leaf nodes. The actual number should depend on the available bandwidth. If you have set "Prefer compressed connections," bandwidth used will be much lower. You should never use up all your bandwidth with gnet connections. Especially on an asymmetric cable/DSL connection you can easily starve your incoming traffic by producing too much outgoing traffic (TCP/IP issue). Use at most half of your outgoing bandwidth for gnet connections.
Since the adoption of "high outdegree" in version 0.95 you should have 32/40 connections to other ultrapeers. The number of leaf connections to use depends on your bandwidth and the speed of your cpu. As an absolute minimum an ultrapeer should connect to 20 leaf nodes and it's much better to connect to 100 or more. Watch the bandwidth odometers on the lower left of the gui and use the top command to keep track of cpu usage. Increase the number of leaf connections until you reach the maximum amount of bandwidth and system resources you wish to devote to this purpose.
The bandwidth control settings will help you further fine-tune gtk-gnutella's bandwidth usage.
Do I need to forward a port on my firewall?
You don't need to forward any ports for gtk-gnutella to work, but it
will perform much better if you do. If gtk-gnutella thinks you are
firewalled, it will not show any "push" results since
you wouldn't be able to download those anyway.
Even when people cannot connect directly to you, they can still download
files from your node using a push request.
You can configure the port gtk-gnutella listens on. The setting
Listen port is located in the Settings->Preferences->Network.
How do I configure port forwarding?
You can find instructions for most popular routers at http://www.portforward.com/routers.htm. Try http://www.canyouseeme.org/ to check your port forwarding.
Does gtk-gnutella use UDP?
Yes, starting with version 0.95 gtk-gnutella can also use UDP in addition to TCP.
What does "[FC]" mean?
The FC means "flow control".
In general, you should make sure that servents to which you are connected do
not flow control. Watch for the trailing [FC] indication at
the end of the Info string (you may need to drag the right
edge past the window to trigger the underlying scroll bar), or look at the
FC state in the Flags column. As a rule of thumb, if
you have more than one node flow-controlling at a given time, you don't have
enough outgoing bandwidth dedicated to gnet, and therefore you are harming
the network: either decrease the amount of connections, enable the
Prefer compressed connections option or raise the outgoing
bandwidth limit.
Why do I lose gnet connections when I have an upload?
Try to do bandwidth limiting. If that doesn't help, maybe your provider throttles gnutella traffic. Try changing your gnutella port in the network settings of gtk-gnutella.
What does the stuff in the Flags column mean?
You can see the type and some of the settings of a connection here. Note push-proxies are implemented in 0.92.1c and later.
012345678AB (offset) NIrwqxZPFhT ||||||||||+ indicates a TLS-tunneled connection |||||||||+- hops flow triggered (h), or total query flow control (f) ||||||||+-- flow control (F), or pending data in queue (d) |||||||+--- we are push-proxy for node (P) or node is our push-proxy (p) ||||||+---- indicates whether Rx, Tx or both (Z) are compressed |||||+----- we sent our last-hop QRT to remote UP (X), or are sending one (x) ||||+------ we sent/received a QRT, or are sending/receiving one (q) |||+------- indicates whether node is writable ||+-------- indicates whether node is readable |+--------- connection type: (Incoming, Outgoing, Ponging) +---------- peer mode: Ultra, Leaf, or Legacy (a.k.a. Normal)
What's the meaning of a leading "!" in the User-Agent name?
This indicates that the User-Agent name is possibly faked but it could be a false-positive caused by a bad clock on either side.
What does "Harmful version banned, upgrade required" mean?
Sometimes, servents are discovered to have a bug or behaviour that is harmful to the gnet. For example, gtk-gnutella-0.92b had a bug that generated excessive queries which hammered on the GWebCache system. Such banning is exceptional, usually restricted to specific versions, and the servent's author is informed about the banning.
What does "Outdated version, please upgrade" mean?
Versions of gtk-gnutella more than one year old are banned, since they lack features that are important to the rapidly evolving gnet's health and scalability. In addition, unstable versions are banned after 90 days.
Why doesn't my HTTP proxy work?
Your HTTP proxy must support the method CONNECT
because a normal GET
doesn't work with Gnutella connections. This is an extension to the HTTP
protocol and mainly supported by SQUID proxies. It's also often deactivated
because it might be considered a security problem by your provider. At the
moment, the proxy support - also for SOCKS - isn't very good. The developers
don't use proxies but if you think you can fix it, we would appreciate
your patches.
How can I increase the timeouts?
If your internet connection suffers from high latency it might help to increase the timeouts. Go to Settings->Preferences->User Interface and tick Expert mode. Now, you'll find a lot more settings to change when you go to Settings->Preferences->GnutellaNet.
How does auto mode decide between ultra and leaf?
In order to be promoted to ultra mode the following conditions must be met:
- There must be more than 8192 bytes/s outgoing bandwidth available.
- If bandwidth schedulers are enabled, leaf nodes must not be configured to steal all the HTTP outgoing bandwidth.
- If Gnet out scheduler is enabled, there must be at least 256 bytes/s per gnet connection (ultrapeer or normal aka legacy).
- Overall, there must be 32 bytes/s per configured leaf plus 256 bytes/s per gnet connection available.
Searches
How can I get more results?
The number of results you get depends heavily on whether people are able to connect to you (see port forwarding) and on the number of connections to other hosts.
How can I ignore files with no SHA1?
Click with right mouse button on a search result without a SHA1 and select "Drop results...->with the same urn:sha1" from the popup menu. That will drop all results with this SHA1 - in this case none - from your results. You'll miss a lot of spam.
Where did the search entry box go?
Searches are now entered in the Search:
box in the sidebar.
What are "Passive" searches?
A passive
search will return all the search results that
pass through gtk-gnutella. By
filtering these results,
passive searches can be useful.
If you are in ultra mode, many search
results are already passing through your node besides the ones for your own
searches. You can take advantage of this to make searches without generating
any extra gnet traffic. For example, on my ultrapeer with 200
leaf nodes, I opened a passive search and
filtered the results to display only hits with the name
eminem
. Within an hour or so I had about 1500 results.
Obviously, the more popular the search, and the more patient you are, the
more useful this technique is.
If you are in leaf mode, then the only search results that will pass through gtk-gnutella will be those from your own searches, so the above technique won't be useful. But there is another way to use passive searches that is only useful in leaf mode. For example, if you start a passive search and filter it to display only mp3 files, then all mp3 files from all your open searches will be conveniently aggregated in one search window. By opening more passive searches with different filters, you can display different file types in each.
Why are there unreadable results?
The standard encoding in the modern Gnutella network is UTF-8. All queries and results should be encoded this way. Unfortunately, there is still many legacy software that does not convert textual data (like filenames and queries) to UTF-8 but uses arbitrary character sets instead. gtk-gnutella tries to detect the used character set but this cannot be perfect. It may also replace characters with underscores if they cannot be converted to UTF-8.
Downloads
What does the status "Ignoring requested [SHA1|name & size]" mean?
This means that gtk-gnutella has that file recorded as complete in its
database. This database is usually located in
~/.gtk-gnutella/done.sha1
and ~/.gtk-gnutella/done.namesize
.
At the moment, there is no way to remove or modify
an entry of that database from the gui, but you can edit the file with any
text editor while gtk-gnutella is not running. If you add or remove something
from one of the files, do the same to the other.
What does the status "No URN on server" mean?
This means that gtk-gnutella wants to download a new file from a host, but
that host does not provide a SHA1 hash for the file. Since the file is new
(not yet partially downloaded), gtk-gnutella cannot do an overlap check to
verify that the file on the host is really the file you want. In such a case
it relies on the SHA1 provided by the remote host, but if no SHA1 is
supplied, then gtk-gnutella has no way of assuring that the file it wants to
download and the file on the remote server are really the same.
If you get annoyed by those messages you can activate the Optimistic
first chunk option in the Settings->Preferences->Download.
Why is the same file downloaded X times?
Check the Range column. This is called swarming. gtk-gnutella tries to get the file in chunks and will get it from multiple hosts in parallel, if possible.
What is "swarming"?
Swarming describes the ability to download a single file from multiple hosts in parallel. gtk-gnutella will automatically try to find additional sources for any queued file using the download mesh and by monitoring routed results.
What is a "chunk"?
A chunk is another word for part of a file. When gtk-gnutella runs in swarming mode it will retrieve multiple chunks of a downloading file until it has downloaded the complete file. The Range column shows you which chunk you are currently downloading.
What is the "download mesh"?
When you download a file from a host that supports the download mesh, it will tell you about additional sources for the requested file (provided it knows of any). Those will then be used for swarming
What is a "push request"?
The push request is a facility to download files from hosts you cannot
connect to directly (because they are firewalled). Well, you cannot
connect to those hosts, but they probably can connect to you. To
tell a remote host to connect to your host so that you can download
a file from the remote host you send a push request to it.
If you download a file using a push request and you loose contact to
the host which originally returned the result for that file to you,
then the push route is lost and you can no longer download this
file.
Therefore push routes are quite fragile.
You can't make use of push requests when you are behind a firewall
(see port forwarding).
Why does gtk-gnutella append a .OK to my file names?
You probably haven't set up different directories for downloaded files, temporary files and bad files.
I got a file that just won't download!
If you don't see a smiling yellow icon with sunglasses in the statusbar, you should try to change that. See the section about firewalls.
Otherwise if gtk-gnutella says it has only a few sources for the file (best seen in the fileinfo subtab in the downloads pane) then this can have two reasons:
- the file is a rare one
- You selected a version of the file that is unique. Chances are that there may be a more common version. A file can become unique e.g. when somebody changes the mp3info on an mp3 file or otherwise does some custom modification to the file.
You can try to search for the file again and see if you find another version which is more common. It's usually a good indication if the "#" shows a number for a file. The larger the number, the better are the chances that you can get it quickly.
In the downloads pane, what does it mean if the color of the text is grey instead of black?
It means that the file is received over a push route.
Welche Kodierung wird für Dateinamen benutzt?
gtk-gnutella kodiert Dateinamen als UTF-8 per Default. Manche Anwendungen haben Darstellungsprobleme, wenn die locale-Einstellung nicht UTF-8 verwendet. Im schlimmsten Fall koennen solche Anwendungen dann auch nicht auf die Dateien zugreifen. Die Kodierung bzw. der zu verwendende Zeichensatz kann mithilfe der Umgebungsvariable G_FILENAME_ENCODING geändert werden. Dies hat Einfluss auf fast alle Anwendungen, die Gtk+ oder GLib verwenden.
Falls nicht systemweit UTF-8 genutzt wird, empfiehlt es sich entweder G_FILENAME_ENCODING="UTF-8,@locale,ISO-8859-1" oder G_FILENAME_ENCODING="@locale,UTF-8,ISO-8859-1" zu verwenden.
Das erste Element in der Liste definiert den zu verwendenden Zeichensatz
beim Speichern neuer Dateien. Die folgenden Elemente sind Namen von
Zeichensätzen, die zum Konvertieren von existierenden Dateinamen benutzt
werden. Für Westeuropäer ist es empfehlenswert ISO-8859-1
an die
Liste anzuhängen, wenn Dateien freigegeben sind, die Zeichen aus diesem
Zeichensatz im Dateinamen enthalten. In anderen Regionen der Welt sollte
der jeweils angebrachte Zeichensatz in die Listen mitaufgenommen werden.
In den meisten Fällen, erledigt sich dies durch "@locale". Dies steht für den Zeichensatz der von den locale-Eingestellungen genutzt wird. In der Regel sind Dateinamen mit diesem Zeichensatz kodiert. Die Liste kann beliebige weitere sekundäre Zeichensätze enthalten. Werden Dateinamen nach UTF-8 konvertiert, dann wird das der erste Zeichensatz genutzt, der eine erfolgreiche Konvertierung liefert. Die Zeichensätze werden in der angegebenen Reihenfolge durchprobiert. Zeichen, die nicht konvertiert werden können, werden durch einen Unterstrich ersetzt. Das heißt, falls eine Datei mit einem arabischen oder japanischen Dateinamen heruntergeladen wird, ergibt eine Konvertierung nach ASCII oder ISO-8859-1 einen Dateinamen, der kaum oder gar keine Information mehr enthält. Aus diesem Grund ist es ratsam, überall UTF-8 zu verwenden.
gtk-gnutella unterstützt G_FILENAME_ENCODING seit Version 0.96 unabhängig davon ob Gtk+ 1.2 oder Gtk+ 2.x zum Einsatz kommt.
Uploads
What does "Normalized" mean?
This shows the total amount of bytes uploaded for the file divided by the file size.
GTK+ 2.x
Gtk2 ist laaaaaaaaangsam
Gtk+ 2.x benutzt ein komplexes und mächtiges Font-Rendering. Es besteht aber Anlass zur Hoffnung, dass künftige Versionen stärker optimiert sind. Wenn die Performanz tatsächlich unakzeptabel ist, sollte man stattdessen Gtk+ 1.2 benutzen. Der Performanzunterschied sind allerdings gering, wenn man eine Ansicht wählt, bei der wenig passiert und am besten das Fenster minimiert.