Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Einführung in P2P Netzwerke

Einführung in P2P Netzwerke

Wer seine Anwendung nicht als zentralisierte Client / Server Architektur, sondern in einem dezentralisierten P2P Netzwerk betreiben möchte hat einige Herausforderungen zu bewältigen. Nach der Hochzeit von Napster und BitTorrent erleben neuen Medienplattformen wie Odysee und PeerTube mit P2P Technologie eine neue Renaissance. Ohne auf direkte Implementierungsdetails einzugehen bespreche ich in diesem Vortrag wichtige Grundlagen, die für den Einstig in die P2P Welt notwendig sind. Im besonderen Fokus stehen dabei die Vor und Nachteile der verschieden Algorithmen wie sich die einzelnen Peer finden und welche Probleme dabei auftreten können.

C59c6666e76977dde33948515fdb3a90?s=128

ElmarDott

March 13, 2022
Tweet

More Decks by ElmarDott

Other Decks in Technology

Transcript

  1. Ch e mn i t z e r L i

    nu x Ta g e 2022 © 2022 ElmarDott Eine Einführung in P2P Netzwerke?
  2. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Con s u l t an t El ma r Do t t (M. Schulz) studierte an der HS Merseburg Diplominformatik und twittert regelmäßig über alle möglichen technischen Themen. Seine Schwerpunkte sind hauptsächlich Build und Konfiguration Management, Software Architekturen und Release Management. Seit über fünfzehn Jahren realisiert er in internationalen Projekten für namhafte Unternehmen umfangreiche Webapplikationen. Er ist freier Consultant / Trainer. Sein Wissen teilt er mit anderen Technikbegeisterten auf Konferenzen, wenn er nicht gerade wieder einmal an einem neuen Fachbeitrag schreibt. https://elmar-dott.com + Consultant + Writer + Speaker + Trainer +
  3. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Ag e nd a Einführung in P2P Topologie Eigenschaften GUID Routing Tabelle Distanzfunktion
  4. © 2022 Ch e mn i t z e r

    L i nu x Ta g e E i ng e n s c ha f t e n • kommen ohne zentralen Server aus • P2P sind verteilte, dezentralisierte Netzwerke • Client = Server => (Node) Peer | Das Netzwerk ist der Dienst!
  5. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Cl i e n t -S e r v e r v s P2P
  6. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Vo r & Na c h t e i l e ☑ günstig zu betreiben ☑ zuverlässig ☑ gut skalierbar ☑ geringe administrative Aufwände ☑ transparent ☒ Anfällig für Cyberangriff ☒ Backup ist schwer umzusetzen ☒ illegale Inhalte ☒ Performanz
  7. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Ne t zwe rk Ty p e n Unstrukturierte Netzwerke sind am leichtesten aufzubauen, können aber unter Umständen sehr Ressourcen fordernd (CPU, RAM, ..) sein. Strukturierte Netzwerke erlauben es einzelnen Peers sehr effizient nach Objekten zu suchen. Je nach Anwendung haben sie eine spezifische Architektur um Aufgaben zu bewältigen. Sie können meist schlechter mit starken Abwanderungsraten der Peers umgehen. Gemischte Netzwerke vereinen die klassische Client-Server Architektur mit P2P Technologien. Sie zeichnen sich durch eine sehr gute Performance aus.
  8. © 2022 Ch e mn i t z e r

    L i nu x Ta g e D i e n s t e • Messaging • FileSharing (Search) • Boardcasting • Payments
  9. © 2022 Ch e mn i t z e r

    L i nu x Ta g e To p o l og i e
  10. © 2022 Ch e mn i t z e r

    L i nu x Ta g e He ra u s f o rd e r u ng e n A) Konnektivität (Connectivity) – legt fest wie einzelne Teilnehmer sich in das Netzwerk verbinden können. Dazu gehört auch die Möglichkeit über Firewalls oder NAT hinweg zu kommunizieren. B) Adressierbarkeit (Addressability) – stellt sicher das Peers im Netzwerk eineindeutig identifiziert werden können. C) Auffindbarkeit (Routability) – ermittelt den Status eines Teilnehmers im Netzwerk und organisiert wie dieser erreicht werden kann. Algorithmen: • Chord • Kademila • Tapsty • Pasty
  11. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Ge n e ra l U s e r ID GUID identifiziert einen Teilnehmer im Netzwerk eindeutig, denn die IP Adresse eines Peers kann sich ändern. Die GUID kann eine ganzzahlige Nummer zwischen 1 bis N sein. Dabei stellt die Obergrenze von N die maximale Anzahl von Peers innerhalb eines Netzwerks dar. Der GUID wird die IP Adresse und der zugehörige Port zugewiesen. GUID: IP:Port > 0001:127.0.0.1:80
  12. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Rou t i ng t a b l e Ab einer ‚gewissen‘ Anzahl von Peers im Netzwerk wird es schwierig diese in einer einzigen Routig Table (hosts) zu verwalten. Daher bildet man Unternetzwerke, z. B. nach einer Distanzfunktion. Jeder Peer sucht nach den ihm nächstgelegene Peers um sie zu referenzieren. CELL | GUID | IP | PORT | DISTANCE ----------------------------------------------------------------------------------- 0001 | 000.000.005 | 127.0.0.1 | 80 | 1
  13. © 2022 Ch e mn i t z e r

    L i nu x Ta g e D i s t an z f u n k t i on Peer 2 referenziert auf: {1, 3, z & A} weil sie zu ihm die geringste Distanz D¹ = 1 haben. • D² = {6, 4} • D³ = {5} Chord Distance Function: http://www.dblab.ntua.gr/~gtsat/collection/p2p%20proximity/Indexing%20the%20Distance %20Using%20Chord%20-%20novakzezula05delos.pdf
  14. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Imp l e m e n t i e r u ng libp2p • Open Source • verfügbare Implementierungen: JavaScript, Go, Rust • Java & Python sind angekündigt • Kademila Algorithmus
  15. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Re f e r e n z e n [1] https://joinpeertube.org [2] https://odysee.com [3] https://developpaper.com/kademlia-protocol/ [4] https://en.wikipedia.org/wiki/Chord_(peer-to-peer) [5] https://en.wikipedia.org/wiki/Tapestry_(DHT) [6] https://libp2p.io [7] https://jenkov.com/tutorials/p2p/index.html
  16. © 2022 Ch e mn i t z e r

    L i nu x Ta g e Cr e d e n t i a l s --------------------------------------------------------- Homepage : https://elmar-dott.com GitHub : https://github.com/ElmarDott AnchorFM : https://anchor.fm/elmar-dott Twitter : https://twitter.com/ElmarDott Speaker Deck : https://speakerdeck.com/elmardott Lbry : https://lbry.tv/@elmar.dott:8 BitChute : https://www.bitchute.com/channel/3IyCzKdX8IpO/ --------------------------------------------------------- Danke / thank you / Gracias
  17. None