WorkshopDocumentation/Partage-De-Contenu-Peer-to-Peer

De fablabo
Aller à : navigation, rechercher

Copyright (C) 2014 Mathieu Goessens <gebura@poolp.org>

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Présentation Peer-to-Peer

Objectifs: découvrir les technologies et outils peer-to-peer, et réfléchir à leur adéquation pour des besoins de documentation et de partage entre labfabs.

Introduction aux technlogies Peer-to-Peer

Slides: http://gebura.eu.org/~geb/p2p-web-challenges-and-perspectives2.pdf

La diffusion de contenu sur Internet

  • Modèle client serveur: un serveur puissant, n clients.
  • Avec le temps, ce modèle se complexifie à cause de l'augmentation des volumes de données (contenus riches), de l'augmentation du nombre de clients etc.
  • Le modèle client serveur actuel repose plutôt sur un grand nombre de serveurs.

Cela pose de nombreux problèmes:

  • coûts
  • dissymetrie de trafic
  • vie privée: toute les données sont stockés au même endroit
  • résistance aux attaques
  • [...]

Pour tous ces problèmes, ce sont les utilisateurs qui en payent le prix.

  • coûts : pubs
  • dissymetrie de traffic: problèmes réseaux, sites lents.
  • vie privée
  • faciliter à éteindre certains sites (wikileaks)

Pour certains de ces problèmes, les technologies peer-to-peer proposent des solutions.

Les technologies peer-to-peer

En quelques mots:

  • des "noeuds" égaux, à la fois client et serveur, s'échangeant des choses entre eux, sans rôle particulier.
  • utilisatés pour du stockage, de la distribution de contenu, de calculs etc
  • aux origines, internet était peer-to-peer.

Trois grand modèles:

  • centralisé
  • structuré
  • non structuré
le modèle peer-to-peer centralisé

Un serveur joue le rôle de coordinateur.

  • Les noeuds voulant offrir une ressource (contenu, puissance de calcul...), en informe ce serveur.
  • Les noeuds voulant utiliser une ressource (récupérer un contenu...), demandent au serveur qui renvoie la liste des noeuds proposant cette ressource.
  • les noeuds discutent en suite directement entre eux.

Caractèristiques:

  • Simple: se code en quelques dizaines/ centaines de ligne
  • Efficace: le serveur connait tout, il peut donc proposer les meilleurs peers (même ville, même fai, noeud moins chargé...).
  • Peu solide: tout repose sur ce serveur

Exemple:

  • Trackers bitTorrent
  • Napster (coupé, lorsque le serveur central a été éteint).
Le modèle peer-to-peer structuré

En quelques mots:

  • Les noeuds fonctionnent avec une structure forte. Exemple: une DHT un tableau de donnée distribué.
  • Les noeuds savent joindre quelques voisins et peuvent ainsi router des messages.
  • Les noeuds ont des adresses, les données aussi, les noeuds sont responsables des données les plus proches d'eux.

Caractéristiques:

  • Simple: un tableau (get/push) donc très generique
  • On ne peut faire des recherches que sur des valeurs exactes
  • Bonne propriétés mathématiques sur les temps de transfert des messages, mais pas forcément suffisant
  • Il faut un moyen de joindre le réseau: demander au réseau local, à un serveur distant...
  • Les noeuds sont obligés de se pinger régulièrement pour maintenir les tables de routages etc

Exemples:

  • Kadmelia (eMule , BitTorrent DHT)
Le modèle peer-to-peer non structurés

En quelques mots:

  • Les noeuds sont connectés de manière +/- random, sans structure forte.
  • Les messages sont diffusés à la manière d'une rumeur, ou d'une maladie, chaque noeud qui reçoit un message le transfert X fois

Caractèristiques:

  • Simple à faire marcher
  • Moins couteux qu'une DHT car moins de messages de contrôle.
  • Comme la diffusion des messages est probabiliste, on ne peut pas s'assurer que tout le monde reçoive le message. Pas adapté à tous les cas d'usages donc.

Exemples:

  • Infrastructure internet
    • BGP (routage)
    • Serveurs IRC
    • Serveurs Usenet
  • Gnutella
  • BitTorrent Peer-Exchange (PEX)

Quels usages ?

  • Partager des données entre labfab ?
  • Travailler à plusieurs sur ces données ? Plus ou moins en même temps ?
  • Partager l'hebergement des données ? (et les téléchargement)
  • Archiver des données ?

Ces questions pourront amener à des réponses différentes et donc à des choix de technologies différents.

Quelques exemples de technologies peer-to-peer