# FAQ

## Généralités

- Qu'est-ce que Gnutella ?
- Qu'est-ce que GTKG ?
- Cette application utilise trop de bande passante !
- Que sont les Ultrapeers et les noeuds feuilles ?
- Pourquoi gtk-gnutella dit-il qu'il est bloqué par un pare-feu alors qu'il ne l'est pas ?

## Compiler depuis le code source

- Comment faire pour que Configure cesse de me poser toutes ces questions ?

## Les connexions Gnutella

- Quel est le bon nombre de connexions ?
- Dois-je rediriger un port sur mon pare-feu ?
- Comment puis-je configurer la redirection de ports ?
- Est-ce que gtk-gnutella utilise l'UDP ?
- Que signifie « [FC] » ?
- Pourquoi je perds des connexions gnet lorsqu'un envoi est en cours ?
- Que signifient toutes ces choses dans la colonne Drapeaux ?
- Quel est le sens du « ! » lorsqu'il précède un nom de logiciel ?
- Que veut dire « Version néfaste bannie, mise à jour requise » ?
- Que veut dire « Version obsolète, veuillez mettre à jour ?
- Pourquoi mon proxy HTTP ne marche-t-il pas ?
- Comment puis-je augmenter le délai de déconnexion ?
- Comment le mode automatique choisit-il entre le fait d'être ultrapeer ou noeud feuille ?

## Les recherches

- Comment puis-je obtenir plus de résultats ?
- Comment puis-je ignorer les fichiers qui n'ont pas de hachage SHA1 ?
- Où est donc passé la boîte de recherche ?
- Que sont les recherches « passives » ?

## Les téléchargements

- Que veut dire l'état « Ignore la requête [SHA1|nom & taille] » ?
- Que signifie « Pas d'URN sur le serveur » ?
- Pourquoi le même fichier est-il téléchargé X fois ?
- Qu'est-ce que le « swarming » ?
- Qu'est-ce qu'un « chunk » ou « bloc » ?
- Qu'est-ce que le « maillage du téléchargement » ?
- Qu'est-ce qu'une « requête push » ?
- Pourquoi est-ce que gtk-gnutella rajoute .OK à la fin des noms de fichier ?
- Je n'arrive pas à télécharger ce fichier !
- Dans l'onglet des téléchargements, quelle est la différence si le texte est gris au lieu de noir ?

## Les envois

- Que veut dire « Normalisé » ?

## GTK+ 2.x

- Gtk2 est troooop lent.
- Les caractères non ASCII s'affichent en tant que _ (tiret bas).

## Generalités

### Qu'est-ce que Gnutella ?

Gnutella est un réseau décentralisé d'échange d'informations pair à pair. À l'heure actuelle vous pouvez publier et télécharger des fichiers de tout type via le réseau Gnutella. Pour plus d'informations, voyez l'article de Wikipédia sur Gnutella.

### Qu'est-ce que « GTKG » ?

Nous utilisons souvent les contractions GTKG ou gtkg pour nous référer à gtk-gnutella (parce que c'est plus court). GTK vient de GTK+ qui est la bibliothèque logicielle utilisée pour l'interface graphique de gtk-gnutella.

### Cette application utilise trop de bande passante !

À l'heure actuelle vous pouvez essayer une ou plusieurs des solutions suivantes si vous utilisez une ligne lente (modem 56K) :

- Utiliser le mode noeud feuille. Vous pouvez changer le mode de pair dans le panneau de configuration sous l'onglet Gnutella. Une icône dans la barre d'état indique dans quel mode gtkg s'exécute.
- Limiter le nombre de connexions Gnutella que vous avez.
- Si vous acceptez les connexions entrantes, activez Préférer les connexions compressées dans Fichier>Préférences>Bande passante.
- Même si vous avez une connexion lente, il est important de partager des fichiers. Avec le swarming, les autres peuvent télécharger des petits blocs de chez vous, de sorte que même une connexion lente, multipliée par de nombreuses sources sur gnet (réseau Gnutella), apporte une formidable contribution. Si vous avez un modem 56K, vous pouvez régler Limites de bande passante pour le trafic HTTP - Vitesse d'envoi cumulé 1K/s de façon à avoir la majorité de votre bande passante pour le téléchargement.
- Désactivez le bouton sur le coin gauche en bas de l'interface graphique une fois que vos téléchargements auront démarré. Cela vous déconnectera du réseau Gnutella. Nous recommandons de ne PAS faire cela. Vous ne pourrez pas trouver des sources alternatives additionnelles depuis le réseau et les autres utilisateurs ne pourront pas effectuer des recherches sur vos fichiers.

### Que sont les Ultrapeers et les noeuds feuille ?

Depuis la version 0.92, gtk-gnutella a implémenté les ultrapeers et les noeuds feuilles. Cela divise les clients sur gnet en noeuds feuilles qui ne se connectent qu'aux ultrapeers, et en ultrapeers qui se connectent à de nombreux noeuds feuilles et à un nombre réduit d'autres ultrapeers. (cf. Quel est le bon nombre de connexions ?).

Les ultrapeers ne doivent pas être bloqués par un pare-feu et on attend d'eux des durées de fonctionnement longues (plus de deux heures), ils doivent également avoir assez de bande passante en surplus à donner au réseau gnet. Les ultrapeers routent les requêtes depuis leurs noeuds feuilles et les les noeuds feuilles envoient à leurs ultrapeers des tables QRP qui contiennent les hachages des mots-clefs qui correspondent aux fichiers qu'ils partagent. Lorsqu'un ultrapeer reçoit une correspondance sur une table de routage de requêtes, il relaie la requête au noeud feuille correspondant. Le résultat est un trafic gnet très réduit pour chaque noeud feuille, libérant de la bande passante pour le partage et les téléchargements (qui ont toujours lieu directement en p2p). Les ultrapeers peuvent aussi agir en tant que push-proxies (mandataires pour les requêtes push) pour les noeuds feuilles se trouvant derrière un pare-feu.

### Pourquoi gtk-gnutella dit qu'il est bloqué par un pare-feu alors qu'il ne l'est pas ?

gtk-gnutella a besoin de recevoir une connexion entrante pour déterminer si vous pouvez être joint depuis l'extérieur. Jusqu'à ce moment-là, il part du principe qu'il y a un pare-feu qui bloque le port TCP configuré pour écouter les connexions. Si vous voulez accélérer la détection, utilisez un navigateur web, telnet ou un outil similaire et connectez-vous depuis l'extérieur au port qui écoute les connexions. Si la connexion est refusée ou ignorée, alors il est très probablement impossible de vous joindre depuis l'extérieur à cause d'un pare-feu, un NAT mal configuré ou un élément similaire qui bloque le port. Vous pouvez essayer un port d'écoute TCP différent car certains FAI (fournisseur d'accès Internet) bloquent le port par défaut de Gnutella (6346). Voyez aussi Dois-je rediriger un port sur mon pare-feu ?

## Compiler depuis le code source

### Comment faire pour que Configure cesse de me poser toutes ces questions ?

Vous pouvez lancer le script `Configure` de la façon décrite ci-dessous pour qu'il utilise les réglages par défaut. Il se comporte alors comme si l'ancien script `configure` était appelé depuis autoconf aux débuts du développement.

`$ ./Configure -ders`

Vous pouvez aussi définir les options de compilation depuis la ligne de commande. Voici un exemple qui va configurer gtk-gnutella pour qu'il :

- accepte les réglages personnalisés (`-O`). Sans cela, tous les paramètres ci-dessous seront sans effet.
- utilise GTK1 et qu'il active le shell distant (`-D gtkversion=1 -D remotectrl=y`)
- compile pour un microprocesseur Pentium disposant du jeu d'instructions MMX (`-Dccflags="-march=pentium -mmmx"`).
- compile les informations de débogage tout en désactivant toutes les optimisations du compilateur (`-Doptimize="-g -O0"`).

`$ ./Configure -ders -O -D gtkversion=1 -D remotectrl=y -Dccflags="-march=pentium -mmmx" -Doptimize="-g -O0"`

## Les connexions Gnutella

### Quel est le bon nombre de connexions ?

En mode feuille, 3 ultrapeers, en mode ultrapeer, 32/40 (minimum/maximum) ultrapeers et autour de 100 noeuds feuilles. Le nombre réel doit dépendre de la bande passante disponible. Si vous avez activé « Préférer les connexions compressées », la quantité de bande passante utilisée sera nettement inférieure. Vous ne devriez jamais utiliser toute votre bande passante pour les connexions gnet. Particulièrement avec une connexion asymétrique câble/DSL, vous pouvez facilement saturer votre trafic entrant en produisant trop de trafic sortant (souci de TCP/IP). Utilisez au plus la moitié de votre bande passante sortante pour les connexions gnet.

Depuis l'adoption de "high outdegree" (nombre élevé de connexions) dans la version 0.95 vous devriez avoir 32/40 connexions aux autres ultrapeers. Le nombre de connexions aux noeuds feuilles dépend de votre bande passante et de la vitesse de votre microprocesseur. En tant que minimum absolu, un ultrapeer devrait se connecter à 20 noeuds feuilles et il est nettement préférable de se connecter à 100 ou davantage de ces noeuds. Observez les odomètres de bande passante dans le coin en bas à gauche de l'interface graphique et utilisez la commande top pour prendre connaissance des détails de l'utilisation du microprocesseur. Augmentez le nombre de connexions aux noeuds feuilles jusqu'à atteindre la quantité maximale de bande passante et les ressources systèmes que vous voulez attribuer au partage de fichiers.

Les réglages de bande passante vous aideront à régler encore plus finement l'utilisation de bande passante par gtk-gnutella.

### Dois-je rediriger un port sur mon pare-feu ?

Vous n'avez pas besoin de rediriger un port pour que gtk-gnutella puisse fonctionner, mais sa performance sera décuplée si vous le faites. Si gtk-gnutella pense que vous êtes bloqué par un pare-feu, il ne montera aucun résultat « push » puisque vous ne pourrez pas les télécharger de toute façon. Même quand les autres ne peuvent pas se connecter directement chez vous, ils peuvent quand-même télécharger des fichiers depuis votre noeud en utilisant une requête push. Vous pouvez configurer le port que gtk-gnutella utilise pour écouter les connexions. Le réglage Port d'écoute est situé dans Fichier->Préférences->Réseau.

### Comment puis-je configurer la redirection de ports ?

Vous pouvez trouver des instructions pour les routeurs les plus populaires sur http://www.portforward.com/routers.htm. Essayez http://www.canyouseeme.org/ pour vérifier la redirection de votre port.

### Est-ce que gtk-gnutella utilise l'UDP ?

Oui, depuis la version 0.95 gtk-gnutella peut utiliser l'UDP en plus du TCP.

### Que signifie « [FC] » ?

FC signifie « flow control », c'est-à-dire contrôle de flux.
En général, vous devriez vous assurer que les clients auxquels vous êtes connecté ne font pas du contrôle de flux : regardez l'état FC dans la colonne Drapeaux. En règle générale, si vous avez plus d'un noeud qui fait du contrôle de flux à un moment donné, c'est que vous n'avez pas assez de bande passante dédiée à gnet, donc vous avez un effet néfaste sur le réseau : il faut soit que vous baissiez le nombre de connexions, soit que vous activiez l'option Préférer les connexions compressées, soit encore que vous augmentiez la limite de la bande passante sortante.

### Pourquoi je perds des connexions gnet lorsque que j'ai un envoi en cours ?

Essayez de limiter la bande passante. Si cela n'aide pas à résoudre le problème, il se peut que votre FAI filtre ou limite le trafic Gnutella. Essayez de modifier le port de Gnutella dans les réglages de gtk-gnutella relatifs au réseau.

### Que signifient toutes ces choses dans la colonne Drapeaux ?

Ici, pour chaque connexion vous pouvez voir son type et certains de ses réglages. Notez que les push-proxies sont implémentés dans la version 0.92.1c et celles qui sont plus récentes.

      012345678AB (offset)
      NIrwqxZPFhE
      ||||||||||+ indique une connexion cryptée avec TLS (Encrypted)
      |||||||||+- limitation partielle (h) ou totale (f) des recherches
      ||||||||+-- contrôle de flux (F), ou données sur le fil d'attente (d)
      |||||||+--- nous somme un push-proxy pour le noeud (P) ou bien le noeud est notre push-proxy (p)
      ||||||+---- indique si Rx, Tx ou les deux (Z) sont compressés
      |||||+----- nous avons envoyé notre QRT de dernier hop à un UP (X), ou sommes en train de le faire (x)
      ||||+------ nous avons envoyé/reçu une QRT, ou sommes en train d'en envoyer/recevoir une (q)
      |||+------- indique si le noeud peut être écrit (writable)
      ||+-------- indique si le noeud peut être lu (readable)
      |+--------- type de connexion : (Incoming (entrante), Outgoing (sortante), Ponging (envoi de pong))
      +---------- mode de pair : Ultra, feuiLle, ou ancien (c'est-à-dire Normal)

### Quel est le sens du « ! » lorsqu'il précède un nom de logiciel ?

Cela indique que le nom de logiciel (User-Agent) pourrait être faux mais cela peut aussi être dû à un faux-positif causé par une horloge qui ne serait pas à l'heure d'un côté ou de l'autre.

### Que veut dire « Version néfaste bannie, mise à jour requise » ?

Parfois, on découvre que des clients ont un bogue ou un comportement qui est nuisible au réseau gnet. Par exemple, gtk-gnutella-0.92b avait un bogue qui générait une quantité de requêtes excessives mettant la pression sur le système de GWebCache. De tels bannissements sont exceptionnels, normalement restreints à des versions spécifiques, et l'auteur du logiciel est informé du bannissement ainsi que de ses raisons.

### Que veut dire « Version obsolète, veuillez mettre à jour » ?

Il est important de mettre à jour les versions de gtk-gnutella qui ont plus d'un an parce qu'il leur manquera des fonctionnalités importantes pour la santé et la capacité de montée en charge du réseau gnet. De plus, les versions instables (de développement) sont bannies au bout de 90 jours.

### Pourquoi mon proxy HTTP ne marche-t-il pas ?

Votre proxy HTTP doit supporter la méthode `CONNECT` parce qu'un `GET` normal ne marche pas avec les connexions Gnutella. C'est une extension du protocole HTTP et principalement supportée par les proxies SQUID. Elle est aussi souvent désactivée parce qu'elle pourrait être considérée comme un problème de sécurité par votre FAI. À l'heure actuelle, le support des proxies - de même que pour SOCKS - n'est pas très bon. Les développeurs n'utilisent pas de proxies mais si vous pensez que vous pouvez corriger ce problème, nous apprécierions votre contribution.

### Comment puis-je augmenter le délai de déconnexion ?

Si votre connexion Internet souffre d'une latence élevée, augmenter les délais de déconnexion (timeout) pourraient se révéler utile. Allez à Fichier->Préférences->Interface utilisateur et activez le mode expert. À présent, vous aurez bien plus de réglages à modifier lorsque vous irez sur Fichier->Préférences->Gnutella.

### Comment le mode automatique choisit-il entre le fait d'être ultrapeer ou noeud feuille ?

Pour être promu au mode ultra, les conditions suivantes doivent être remplies :

1. Il doit y avoir plus que 8192 octets/s de bande passante sortante disponible.
2. Si les ordonnanceurs de bande passante sont activés, les noeuds feuille ne doivent pas être configurés pour voler toute la bande passante HTTP sortante.
3. Si l'ordonnanceur Gnet sortant est activé, il doit y avoir au moins 256 octets/s par connexion gnet (ultrapeer ou normal c'est-à-dire ancien (legacy)).
4. Globalement, il doit y avoir 32 octets/s par feuille configurée plus 256 octets/s par connexion gnet.

## Les recherches

### Comment puis-je obtenir plus de résultats ?

Le nombre de résultats que vous recevez dépend en grande partie de la possibilité des autres à se connecter directement à vous (cf. redirection de port) t du nombre de connexions aux autres hôtes.

### Comment puis-je ignorer les fichiers qui n'ont pas de hachage SHA1 ?

Sans objet de nos jours : tous les noeuds supportent SHA1.

### Où est donc passée la boîte de recherche ?

Les recherches doivent maintenant être entrées dans la boîte Recherche qui se trouve tout en haut.

### Que sont les recherches « passives » ?

Une recherche passive retournera tous les résultats qui passent à travers gtk-gnutella. En filtrant ces résultats, les recherches passives peuvent être utiles.

Si vous êtes en mode ultra, c'est que beaucoup de résultats de recherches passent déjà à travers votre noeud en plus des résultats de vos recherches. Vous pouvez tirer avantage de cela pour effectuer des recherches sans générer de trafic gnet supplémentaire. Par exemple, sur mon ultrapeer avec 200 noeuds feuilles, j'ai ouvert une recherche passive et filtré les résultats pour que seuls ceux qui contiennent le nom linux soient affichés. Au bout d'environ une heure j'avais approximativement 1500 résultats. Évidemment, plus la recherche est populaire, et plus vous êtes patient, plus cette technique devient utile.

Si vous êtes en mode feuille, alors les seuls résultats de recherche qui passeront à travers gtk-gnutella seront ceux de vos propres recherches, donc la technique décrite ci-dessus ne sera pas utile. Mais il existe un autre moyen d'utiliser les recherches passives qui n'est utile que dans le mode feuille. Par exemple, si vous démarrez une recherche passive et la filtrez pour n'afficher que les fichiers mp3, alors tous les fichiers mp3 de toutes vos recherches actives seront commodément agrégés dans un onglet de recherche. En ouvrant plusieurs recherches passives avec des filtres différents, vous pouvez afficher des types de fichiers différents dans chacune de ces recherches.

## Les téléchargements

### Que veut dire l'état « Ignore la requête [SHA1|name & size] » ?

Cela signifie que gtk-gnutella a ce fichier enregistré en tant que terminé (complet) dans sa base de données. Cette base de données se trouve habituellement dans `~/.gtk-gnutella/done.sha1` et `~/.gtk-gnutella/done.namesize`. À l'heure actuelle, il n'existe aucun moyen d'enlever ou de modifier une entrée dans cette base de données depuis l'interface graphique, mais vous pouvez éditer le fichier avec n'importe quel éditeur de texte lorsque gtk-gnutella n'est pas en cours de fonctionnement. Si vous ajoutez ou enlevez quelque chose de l'un des deux fichiers, faites la même chose avec l'autre.

### Que veut dire « Pas d'URN sur le serveur » ?

Cela signifie que gtk-gnutella veut télécharger un nouveau fichier depuis un hôte, mais que cet hôte ne fournit pas la valeur SHA1 pour le fichier en question. Comme le fichier est nouveau (pas encore téléchargé partiellement), gtk-gnutella ne peut pas vérifier le recouvrement pour s'assurer que le fichier chez l'hôte est bien celui que vous désirez. Dans un tel cas gtkg se base sur la valeur SHA1 fournie par l'hôte distant, mais vu qu'aucune valeur SHA1 n'est fournie, gtk-gnutella n'a aucun moyen de s'assurer que le fichier qu'il veut télécharger et le fichier présent sur l'hôte distant sont vraiment les mêmes.
Si ces messages vous ennuient, vous pouvez activer l'option Premier bloc optimiste depuis Fichier->Préférences->Téléchargements (n'oubliez pas d'activer le mode expert depuis l'onglet interface utilisateur pour visualiser cette option).

### Pourquoi le même fichier est-il téléchargé X fois ?

Vérifiez la colonne Intervalle. Cela s'appelle le swarming. gtk-gnutella essaye de télécharger le fichier en plusieurs blocs et le prendra de plusieurs sources en parallèle si c'est possible.

### Qu'est-ce que le « swarming » ?

Le swarming décrit la capacité à télécharger un fichier donné depuis de multiples hôtes en parallèle. gtk-gnutella essayera automatiquement de trouver des sources additionnelles pour tout fichier sur fil d'attente en utilisant le maillage de téléchargement et en surveillant les résultats routés.

### Qu'est-ce qu'un « chunk » ou « bloc » ?

Un bloc est synonyme d'une partie d'un fichier. Lorsque gtk-gnutella est exécuté en mode swarming, il essayera de télécharger plusieurs blocs d'un fichier jusqu'à ce qu'il ait téléchargé le fichier en entier. La colonne Intervalle montre les blocs qui sont téléchargés à un moment donné.

### Qu'est-ce que le « le maillage de téléchargement » ?

Quand vous téléchargez un fichier depuis un hôte qui supporte le maillage de téléchargement, il vous communiquera les sources additionnelles pour le fichier demandé (s'il en connaît). Celles-ci seront alors utilisées pour le swarming.

### Qu'est-ce qu'une « requête push » ?

Les requêtes push permettent de télécharger des fichiers depuis des hôtes auxquels vous ne pouvez pas vous connecter directement (parce qu'ils sont bloqués par un pare-feu). Eh bien, vous ne pouvez pas vous connecter à ces hôtes mais eux peuvent probablement se connecter à vous. Pour dire à un hôte distant de se connecter à votre hôte pour que vous puissiez télécharger un fichier depuis l'hôte distant, vous lui envoyez une requête push.
Si vous téléchargez un fichier en utilisant une requête push et que vous perdez le contact avec l'hôte qui, originellement, vous avait retourné le résultat au sujet de ce fichier, alors la route push est perdue et vous ne pouvez plus télécharger ce fichier. Les routes push sont donc assez fragiles. Vous ne pouvez pas utiliser les requêtes push lorsque vous êtes bloqué par un pare-feu ou routeur (cf. redirection de port).

### Pourquoi est-ce que gtk-gnutella ajoute .OK à la fin des noms de fichier ?

Vous n'avez probablement pas choisi des répertoires différents pour les fichiers téléchargés, les fichiers partiels et les fichiers corrompus.

### Je n'arrive pas à télécharger ce fichier !

Si vous ne voyez pas une icône jaune souriante avec des lunettes de soleil dans la barre d'état, vous devriez essayer de l'obtenir. Voyez la section sur les pare-feu.

Autrement, si gtk-gnutella dit qu'il n'a que quelques sources pour le fichier (plus visible dans le sous-panneau informations de fichier dans l'onglet des téléchargements), alors cela peut avoir deux raisons :

- le fichier est rare
- Vous avez choisi une version unique du fichier. Il est possible qu'il y ait une autre version plus répandue. Un fichier peut devenir unique par exemple lorsque quelqu'un change les métadonnées d'un fichier mp3 ou s'il apporte d'autres modifications particulières au fichier.

Vous pouvez essayer de rechercher à nouveau le fichier et voir si vous ne trouvez pas une autre version plus répandue. Si le « # » affiche un nombre pour un fichier, c'est généralement bon signe. Plus le chiffre sera grand, plus les chances de pouvoir l'obtenir rapidement augmenteront.

### Dans l'onglet des téléchargements, quelle est la différence si le texte est gris plutôt que noir ?

Cela signifie que le fichier est réceptionné depuis une route push.

## Les envois

### Que veut dire « Normalisé » ?

Cela montre la quantité totale d'octets envoyés pour un fichier donné divisée par la taille de ce fichier.

## GTK+ 2.x

### Gtk2 est troooop lent.

Réglez la variable d'environnement `GDK_USE_XFT` sur 0 et voyez si cela est utile. Cela désactive l'anticrénelage dans GTK2 qui utilise beaucoup le microprocesseur. La bibliothèque GTK2 est bien plus lente que la bibliothèque GTK1. Donc sur une machine lente, vous devriez considérer l'utilisation de la bibliothèque GTK1.

### Les caractères non ASCII s'affichent en tant que _ (tiret bas).

Réglez la variable d'environnement `LC_CTYPE` ou `LC_ALL` sur une valeur appropriée à l'encodage que vous utilisez. Par exemple, si vous utilisez des caractères spéciaux allemands dans les noms de vos fichiers, réglez la sur `de_DE.ISO8859-1`. Les valeurs valides dépendent de votre système d'exploitation, voyez la page man setlocale(3) pour les détails. Idéalement, tout le monde devrait utiliser l'encodage UTF-8 qui couvre pratiquement toutes les langues.