protoko‚y peer2peer

44
Protokoły PEER2PEER Krzysztof Kostałkowicz

Upload: others

Post on 12-Sep-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protoko‚y PEER2PEER

Protokoły PEER2PEER

Krzysztof Kostałkowicz

Page 2: Protoko‚y PEER2PEER

Sieć komputerowa

Zbiór komputerówpotrafiących się  komunikować

Page 3: Protoko‚y PEER2PEER

Struktura logiczna sieci

● Model scentralizowanyklient­serwer

● Model rozproszonypeer to peer

Page 4: Protoko‚y PEER2PEER

Klient ­ serwer

Page 5: Protoko‚y PEER2PEER

Peer to Peer

Page 6: Protoko‚y PEER2PEER

Model hybrydowy

Page 7: Protoko‚y PEER2PEER

Ukryte P2P

Page 8: Protoko‚y PEER2PEER

Przetwarzanie rozproszone

Page 9: Protoko‚y PEER2PEER

Klient/serwer a P2P

● Symetria● Skalowalność● Liczba połączeń● Niezawodność● Bezpieczeństwo● Spam● Łatwość  zarządzania

Page 10: Protoko‚y PEER2PEER

Zastosowania

● Wymiana danych– lokalnie (SMB/CIFS)– zdalnie

● Streaming● Chat (IRC DCC)● Przetwarzanie danych (SETI, ?)● Wikipedia

Page 11: Protoko‚y PEER2PEER

Historia● IRC, usenet● Napster

–Napisany przez studenta–Powstał w 1999–Procesy sądowe w 2000–Zamknięty w 2001–Reaktywacja w 2003

● BitTorrent ­ 2001

Page 12: Protoko‚y PEER2PEER

Cechy protokołów

● Zdecentralizowany● Hierarchiczny● Zapewnia anonimowość● Obsługuje szyfrowanie● Ściąganie plików w częściach● Sprawdzanie poprawności● Efektywne wyszukiwanie

Page 13: Protoko‚y PEER2PEER

Protokoły● ANts P2P● Ares● BitTorrent● Direct Connect● DNS● eDonkey● FastTrack● Freenet● GNUnet● Gnutella● Gnutella2● JXTA● Kad Network

● KDP, SDDP● Krawler● MANOLITO/MP2P● MFPnet● Napster● OpenNap● P2PTV● PDTP● Peercasting● Pichat● Usenet● WPNP● Windows Peer­to­Peer

Page 14: Protoko‚y PEER2PEER

DNS / SMTP

Mail User Agent Mail Transport Agent

Page 15: Protoko‚y PEER2PEER

Napster

● Mocno scentralizowany● Klient wysyła serwerowi listę  

swoich zasobów● Wyszukiwanie wykonywane 

przez serwer● Transfery bezpośrednie● Inżynieria wsteczna

Page 16: Protoko‚y PEER2PEER

Direct Connect

● Powstał w 1999 (licealista)● Podobny do IRC● Klient łączy się  z hubem 

(hubami)● www.hublist.org – nie działa● Inżynieria wsteczna

Page 17: Protoko‚y PEER2PEER
Page 18: Protoko‚y PEER2PEER

Direct Connect – model

● Wszyscy użytkownicy widoczni● Operatorzy● Upload/download slots/queue● Rozmiar zasobów● Polityka huba● Użytkownicy aktywni/pasywni● Hashowanie TTH (Advanced DC)

Page 19: Protoko‚y PEER2PEER

Direct Connect – operacje

● Wyś l ij/pobierz listę  plików● Chat (globalny i prywatny)● Szukanie (wyniki bezpośrednio)● Ściąganie pliku● Kick i ban● Rozłącz połączenie

Page 20: Protoko‚y PEER2PEER

Direct Connect – oszustwa

● Lista plików● Rozmiar zasobów● Zajętość  slotów● Transfer● Rozłączanie, wychodzenie● Huby oficjalnie dopuszczają  

jedynie DC++

Page 21: Protoko‚y PEER2PEER

Gnutella

● Stworzony w 2000● Udział w rynku ponad 40%

(2005)● Klient miał być  na GPL● Inżynieria wsteczna

Page 22: Protoko‚y PEER2PEER

Gnutella

Pełna decentralizacja!

Page 23: Protoko‚y PEER2PEER

Gnutella ­ bootstrapping

● Dystrybucja klienta● GWebCaches● UDP host caches● IRC

Page 24: Protoko‚y PEER2PEER

Gnutella ­ połączenia

● Węzły pobierane od sąsiadów● Limit połączonych węzłów● Niedziałające zapominane● Niepróbowane zapamiętywane

Page 25: Protoko‚y PEER2PEER

Gnutella ­ szukanie

● DFS z maksymalną  głębokością(wersja 0.4 b=5 d=7 : 97656)

● Wyniki wracają  tą  samą  drogą  co zapytanie

Page 26: Protoko‚y PEER2PEER

Gnutella ­ transfery

● Bezpośrednio (HTTP)● Push Request – wysyłane tą  

samą  drogą  co zapytanie● Push Proxy – wysyłane do 

ultrawęzła (tunelowanie)

Page 27: Protoko‚y PEER2PEER

Gnutella ­ wady

● Duży koszt wyszukiwania● Wolne węzły bezużyteczne● Zapytania docierały do 

niewielkiej części węzłów

Page 28: Protoko‚y PEER2PEER
Page 29: Protoko‚y PEER2PEER

Gnutella ­ usprawnienia

● Ultrawęzły – szukanie(wer. 0.6 w   3u, u   32u d=4)→ →

● Wyniki wracają  bezpośrednio do ultrawęzła szukającego

● Query Routing Protocol● Dynamic Queuing

(wstrzymywanie wyszukiwań)

Page 30: Protoko‚y PEER2PEER

Query Routing Protocol

● Zasób – lista słów kluczowych● Hash: słowo   l iczba→● Klient ma wektor booli,

przesyła go do ultrawęzła● Ultrawęzeł nie przesyła zapytań  

do (ultra)węzłów które na pewno nie mają  zasobu

Page 31: Protoko‚y PEER2PEER

Gnutella ­ podsumowanie

● Decentralizacja● Hierarchia (nabyta)● Szukanie – słowa kluczowe● Przyjazny dla ogniomurków● Rozszerzenia.. .

Page 32: Protoko‚y PEER2PEER

FastTrack

● Powstał w 2001● Najbardziej popularny w 2003● Niekompatybilne odmiany:

– Kazaa– iMesh– Grokster

● Inżynieria wsteczna

Page 33: Protoko‚y PEER2PEER
Page 34: Protoko‚y PEER2PEER

FastTrack ­ cechy

● Podobny do Gnutelli  0.6● Częściowo scentralizowany● Hierarchiczny

(superwęzły – autopromocja)● Szyfrowanie● Hashowanie UUHash (MD5+CRC)● System reputacji (0­1000)

Page 35: Protoko‚y PEER2PEER

eDonkey

● Powstał w 2000 (eDonkey2000)● W 2004 najbardziej popularny● W 2005 przegrany proces, 

strona projektu skasowana● Sieć  nadal dostępna● Alternatywny (eMule)● Inżynieria wsteczna

Page 36: Protoko‚y PEER2PEER

eDonkey ­ cechy

● Scentralizowany● Łączenie serwerów w sieci

(hierarchia)● Ściąganie w kawałkach● Hashowanie

Page 37: Protoko‚y PEER2PEER
Page 38: Protoko‚y PEER2PEER

eDonkey ­ cechy

● Pliki w kawałkach 9.5mb● Suma kontrolna MD4● Szukanie po metadanych● Schemat adresowania URI

ed2k://|file|The_Two_Towers­The_Purist_Edit­Trailer.avi|14997504|965c013e991ee246d63d45ea71954c4d|/

Page 39: Protoko‚y PEER2PEER

eDonkey ­ rozszerzenia

● eDonkey2000 – plugin do BT● Odmiany protokołu:

– Overnet– Kad (eMule)

Page 40: Protoko‚y PEER2PEER

FreeNet

● Powstał w 1999 (student)● Decentralizacja● Brak hierarchii● Szyfrowanie● Transfery tylko pośrednie● Pełna anonimowość!

Page 41: Protoko‚y PEER2PEER

Popularność

● 2000,2001 – Napster● 2002,2003 – FastTrack● 2004 – eDonkey● 2005,2006,2007 – BitTorrent

Page 42: Protoko‚y PEER2PEER

Tabelka

Napster DC

nie nie tak tak nie nie tak ?

nie nie nie tak tak tak nie ?

nie nie nie nie nie nie tak ?

Szyfr. nie nie nie nie tak nie tak ?

Części nie tak* nie tak* tak tak nie ?

nie tak* nie tak* tak tak nie ?

Otwarty nie nie nie nie nie nie tak tak

Gn­la 0.4 Gn­la 0.6 FastTrack eDonkey FreeNet BitTorrent

Decentr.

Hier.

Anon.

Popr.

* ­ jako rozszerzenie

Page 43: Protoko‚y PEER2PEER

Inne zastosowania

● Bioinformatyka● Sciencenet● Wojsko● Biznes● Telewizja● Telekomunikacja

Page 44: Protoko‚y PEER2PEER

Linki

● http://www.cs.huji.ac.il/labs/danss/presentations/emule.pdf● http://www.cs.washington.edu/homes/gribble/papers/mmcn.pdf● http://ntrg.cs.tcd.ie/undergrad/4ba2.02/p2p/index.html● http://en.wikipedia.org/wiki/Peer­to­peer

Pytania?