Montage d'un réseau P2P

Vous avez des fichiers volumineux à recevoir ou à expédier? Pas question d'utiliser le courriel, l'espace alloué par votre FAI déborderait en un rien de temps. Il s'agit donc de considérer l'échange FTP en duplex.

Voici comment monter votre propre réseau P2P.

Le FTP en duplex

Le FTP est l'un des nombreux protocoles IP que l'on retrouve sur Internet. HTTP en est un autre. À titre d'exemple, le protocole FTP vous permet de publier vos pages HTML sur votre serveur Web, c.-à-d. de les télécharger en amont en utilisant un client FTP, ex. FTP Expert, Cute FTP, FTP Voyager ou l'excellent gratuiciel FileZilla.

Protocole FTP

Communication Client Serveur.

Un téléchargement en amont signifie que le transfert se fait du client vers le serveur, tandis qu'un transfert en aval se fait du serveur vers le client.

Le client FTP envoie en plus des données proprement dites des commandes au serveur: PUT (pour envoyer un fichier ), CD (pour changer de répertoire sur le serveur), LCD (pour changer de répertoire local), GET (pour mettre un fichier du serveur sur votre disque). Il en existe plusieurs autres. En communication client-serveur, l'initiative du téléchargement appartient au client. Mais dans ce cas, évidemment, le sens du transfert est inversé et se fait de serveur à client. C'est ce mode (GET) que nous utilisons pour du P2P à deux.

Comment?

L'idée est de monter sur chaque ordinateur local  et à distance, à la fois un serveur FTP et un client FTP.

Serveurs et clients FTP

Communication par FTP

Sur chaque machine tourne donc un serveur FTP. Vous lancez votre client FTP pour télécharger en aval un fichier sur votre ordinateur. La machine distante, elle, fait un téléchargement en amont, soit l'inverse.

Les contraintes techniques

Le pare-feu

D'abord, il y a le problème du pare-feu. Il est vivement conseillé d'en installer un si vous voulez utiliser votre machine comme serveur. Il faut savoir que le FTP se fait généralement sur le port 21; il suffirait donc que votre pare-feu libère ce port. Mais ce sont les commandes qui passent sur le port 21. Les données, elles, passent généralement sur le port 20 (ou un port différent). Le plus simple est d'utiliser ZoneAlarm, un pare-feu gratuit pour utilisation personnelle, et qui se débrouille de lui-même. À noter que si vous êtes paranoïaque, en assumant que le port 21 est connu de tous les fouineurs du monde, vous pouvez décider que votre serveur FTP utilisera un autre port, plus exotique, disons le 5554. Dans ce cas alors, il faut que le client de la machine distante se connecte bien évidemment sur ce port au lieu du 21 habituel. Mais restons simples et contentons-nous du port 21 classique.

La sécurité

Le client distant ne devrait avoir accès qu'à un seul répertoire: celui dans lequel vous avez rangé les fichiers que vous offrez en partage. Il est certes déconseillé de permettre l'accès à tout votre disque dur. En effet, le protocole FTP permet entre autres de supprimer des répertoires et des fichiers à distance. De plus, il est sage de s'en tenir à des autorisations minimums sur le répertoire de partage. Typiquement lecture pour les fichiers et listage pour le répertoire.

Le débit

Ce type d'échange de fichiers n'est réservé en principe qu'à ceux qui jouissent d'un raccord haut débit. Et même dans ce cas, il faut savoir qu'un abonnement LNPA (ou câble) conventionnel n'autorise que 512 Kbits en aval et 128 Kbits en amont. Donc, le débit du serveur est limité à 128 Kbits. Même si le client, lui, peut télécharger à 512 Kbits, du serveur, les transferts, au mieux, ne se feront qu'à 128 Kbits, ce qui se traduit par 16 Ko/secondes. À titre d'exemple, dans le meilleur des cas, il vous faudra environ 13 heures pour télécharger un DIVX de 700 Mo, sous des conditions optimales. Ne vous attendez donc pas à ce qu'un fichier vous parvienne rapidement. Par contre, vous êtes normalement assuré de la qualité de ce que vous téléchargez et sûr d'avoir le fichier complet, comparé à un réseau de p2p classique.

Du fait des nombreux problèmes sur les produits Microsoft et des menaces de rupture de la communication, il est impératif que le client FTP soit en mesure d'effectuer une reprise. À titre d'exemple, imaginons que vous transfériez un DIVX de 700 Mo et que la communication coupe au bout de 300 Mo transférés. Vous relancez votre client (en espérant que le serveur d'en face soit toujours actif). Tout recommencer serait absurde. S'il est capable de reprise, le client FTP ne téléchargera que les 400 Mo restants, à la condition que le serveur d'en face puisse, lui aussi, gérer la reprise. De toute évidence, ces reprises n'ont rien à voir avec Info 680 où l'on vous casse les oreilles ad nauseam avec 15 minutes de nouvelles «reconstituées», extraites d'un journal à sensation imprimé la veille.

Un exemple concret

Nous ne devrions donc utiliser que des logiciels en licence GPL, voire en open source GPL; (cf. Projet Filezilla — oui, petit Bill ne billera pas). À titre d'exemples, utilisons respectivement:

Bullet proof FTP pour le serveur, un logiciel commercial.

Leech pour le client, un gratuiciel en développement.

Marche à suivre

Tout d'abord, créez un répertoire pour y mettre les fichiers à partager.

La configuration de Bullet FTP à présent. Allez dans les options et n'autorisez que les téléchargements en aval, pour des raisons de sécurité. Créez ensuite le compte utilisateur de votre interlocuteur, c'est-à-dire un nom d'ouverture de séance et un mot de passe, et donnez-lui accès au répertoire de partage avec les autorisations minimales (par défaut). À noter qu'on peut, à l'aide de liens, donner accès à d'autres répertoires et même à votre lecteur CD, ce qui peut être parfois très utile.

Relancez Bullet FTP, pendant que votre interlocuteur fait de même: les deux ordinateurs tournent donc.

L'interlocuteur vous transmet l'adresse IP dynamique de sa machine, ainsi que votre nom d'ouverture de séance et mot de passe et vous lancez Leech FTP, créez un signet avec ces données et démarrez la connexion.

Vous voyez maintenant le répertoire partagé de votre interlocuteur et n'avez plus qu'à télécharger le (s) fichier (s) mis à votre disposition.

IP fixe

Puisqu'avec LNPA, l'IP dynamique change à chaque connexion et plutôt que d'envoyer un courriel à vos correspondants afin de leur communiquer ladite adresse IP chaque fois qu'elle change, vous pouvez utiliser les services (gratuits) d'un serveur qui vous permettra d'automatiser la procédure.

En effet, le serveur qui gère les DNS dynamiques attribuera un nom de domaine unique et invariable à votre machine. Ce service convertit une adresse IP en un nom de domaine, facilement mémorisable.

Par exemple, dyndns.org. Vous vous enregistrez et créez un compte client blablabla.net. Vos amis, au lieu de noter dans leur signet de Leech, l'adresse IP de votre machine, par exemple 12.345.67.89, noteront blablabla.net.

Mais cela suppose pour l'instant que vous fassiez à la main les mises à jour, c.-à-d. que vous communiquiez au service la nouvelle adresse de votre machine pour qu'il fasse toujours correspondre blablabla.net à votre nouvel IP qui est maintenant 98.765.43.21, par exemple.

Heureusement, vous pouvez automatiser cette mise à jour grâce à un petit gratuiciel à installer sur votre machine. Par exemple, DeeEnEs en propose un en version française. Une fois installé, il se branchera régulièrement au serveur dyndns pour lui communiquer éventuellement toute modification de votre adresse IP.

Grâce à cette petite merveille, le Leech de votre correspondant pourra continuer à télécharger tranquillement, même après un changement d'adresse IP chez-vous.

Un dernier truc

Cette procédure n'est pas réservée à deux personnes à la fois. Si vous le désirez, vous pouvez vous mettre à trois, quatre, dix et même monter votre propre réseau P2P personnel. L'ennui, c'est que le débit, lui, reste bien entendu très limité. Si vous êtes à deux sur un même serveur, le débit par personne passe de 16 à 8 Ko/seconde, et ainsi de suite. Les temps de téléchargement sont donc multipliés par deux, trois, etc. Pour cette même raison, il n'est pas très utile de télécharger plus d'un fichier à la fois.

En revanche, vous pouvez créer plusieurs utilisateurs autorisés avec Bullet Proof, ainsi Loulou1 pourra télécharger pendant que Loulou2 ne télécharge plus. Elle pourra ainsi partager le nouveau fichier récupéré de son réseau communautaire de type eDonkey.