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.

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?

    View Slide

  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 +

    View Slide

  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

    View Slide

  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!

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  17. View Slide