Distributed Hash Tables i ich zastosowania

Podobne dokumenty
DHT Distributed Hash Table (Rozproszona Tablica Mieszająca)

Keszowanie i systemy peer-to-peer. Paulina Kania i Łukasz Osipiuk

SIEĆ DHT SZYBKO I ANONIMOWO?

Podstawy Informatyki. Metody dostępu do danych

Drzewa poszukiwań binarnych

Tadeusz Pankowski

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Definicja pliku kratowego

Wyszukiwanie w BST Minimalny i maksymalny klucz. Wyszukiwanie w BST Minimalny klucz. Wyszukiwanie w BST - minimalny klucz Wersja rekurencyjna

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Algorytmy i Struktury Danych, 9. ćwiczenia

Wykład 6. Drzewa poszukiwań binarnych (BST)

. Podstawy Programowania 2. Drzewa bst - część druga. Arkadiusz Chrobot. 12 maja 2019

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Sieci komputerowe. Wykład 12: Sieci peer-to-peer. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Listy, kolejki, stosy

Algorytmy i Struktury Danych

Porządek symetryczny: right(x)

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Bezpieczniejsze DHT. Paweł Wiejacha. 25 marca Paweł Wiejacha Bezpieczniejsze DHT

Wstęp do programowania

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Wykład 2. Drzewa poszukiwań binarnych (BST)

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

Algorytmy i Struktury Danych.

Przykładowe B+ drzewo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

System plików ReiserFs

Algorytmy i struktury danych

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Wykład 8. Drzewa AVL i 2-3-4

Struktury systemów operacyjnych

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Drzewa wyszukiwań binarnych (BST)

Drzewa czerwono-czarne.

Instrukcja obsługi programu altbackup

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Sortowanie. Bartman Jacek Algorytmy i struktury

Protokoły PEER2PEER. Krzysztof Kostałkowicz

Sortowanie bąbelkowe

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Wstęp do programowania

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Tablice z haszowaniem

E S - uniwersum struktury stosu

Tablice z haszowaniem

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

XML i nowoczesne technologie zarządzania treścią 2007/08

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Teoretyczne podstawy informatyki

Algorytmy i struktury danych. wykład 5

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Podstawy Informatyki Metody dostępu do danych

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Sterowanie ruchem w sieciach szkieletowych

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

ALGORYTMY I STRUKTURY DANYCH

Algorytmy i struktury danych

Zadanie projektowe nr 1

2 Kryptografia: algorytmy symetryczne

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 7

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Sieci komputerowe Warstwa transportowa

Programowanie obiektowe

Haszowanie (adresowanie rozpraszające, mieszające)

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Wykład 7 Abstrakcyjne typy danych słownik (lista symboli)

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Strategia "dziel i zwyciężaj"

ALGORYTMY I STRUKTURY DANYCH

Analiza algorytmów zadania podstawowe

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Programowanie obiektowe

Tribler - nowe podejście do P2P

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wstęp do programowania

Lista, Stos, Kolejka, Tablica Asocjacyjna

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Drzewa AVL definicje

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Dynamiczne struktury danych

Spis treúci. Księgarnia PWN: Wayne Lewis - Akademia sieci Cisco. CCNA semestr 3

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych.

Transkrypt:

Distributed Hash Tables i ich zastosowania Seminarium z Systemów Rozproszonych, 2005/2006

Spis treści 1 Czym sa DHT? Typowe zastosowania 2 3 Sieci P2P Cooperative File System

Czym sa DHT? Typowe zastosowania 1 Czym sa DHT? Typowe zastosowania 2 3 Sieci P2P Cooperative File System

Czym sa DHT? Czym sa DHT? Typowe zastosowania Co to jest? Cechy: Klasa systemów rozproszonych. Struktura danych <klucz, dane>. Majac dany klucz można uzyskać dane. Odporność na awarię wezłów. Niski koszt wyszukania odpowiedniego węzła w stosunku do rozmiary sieci. Duża wydajność.

Czym sa DHT? Czym sa DHT? Typowe zastosowania Co to jest? Cechy: Klasa systemów rozproszonych. Struktura danych <klucz, dane>. Majac dany klucz można uzyskać dane. Odporność na awarię wezłów. Niski koszt wyszukania odpowiedniego węzła w stosunku do rozmiary sieci. Duża wydajność.

Typowe zastosowania Czym sa DHT? Typowe zastosowania Sieci P2P 1 Overnet zamknięta implementacja protokołu (edonkey, MLdonkey) 2 Kad Network emule, MLdonkey, amule 3 wiele innych sporo aplikacji P2P implementuje własne sieci oparte na protokole. Rozproszone systemy plików 4 CFS Cooperative File System Inne 5 DDNS (Distributed DNS) 6 Rozproszone cache owanie stron WWW

Typowe zastosowania Czym sa DHT? Typowe zastosowania Sieci P2P 1 Overnet zamknięta implementacja protokołu (edonkey, MLdonkey) 2 Kad Network emule, MLdonkey, amule 3 wiele innych sporo aplikacji P2P implementuje własne sieci oparte na protokole. Rozproszone systemy plików 4 CFS Cooperative File System Inne 5 DDNS (Distributed DNS) 6 Rozproszone cache owanie stron WWW

Typowe zastosowania Czym sa DHT? Typowe zastosowania Sieci P2P 1 Overnet zamknięta implementacja protokołu (edonkey, MLdonkey) 2 Kad Network emule, MLdonkey, amule 3 wiele innych sporo aplikacji P2P implementuje własne sieci oparte na protokole. Rozproszone systemy plików 4 CFS Cooperative File System Inne 5 DDNS (Distributed DNS) 6 Rozproszone cache owanie stron WWW

1 Czym sa DHT? Typowe zastosowania 2 3 Sieci P2P Cooperative File System

routowania, które zostały opisane po raz pierwszy w 2001 r. 1 2 CAN Content Addressable Network 3 Pastry 4 Tapestry, które zostały opisane po 2001 r. 5 6 DKS Distributed K-ary System 7 Bamboo

routowania, które zostały opisane po raz pierwszy w 2001 r. 1 2 CAN Content Addressable Network 3 Pastry 4 Tapestry, które zostały opisane po 2001 r. 5 6 DKS Distributed K-ary System 7 Bamboo

wstęp Założenia Węzły położone sa na okręgu mod 2 n. Za przechowywanie danych o kluczu k odpowiedzialny jest następnik k, czyli węzeł o najmniejszym id k. Podczas podłaczania i odłaczania z sieci może nastapić migracja danych. Czasy operacji Wyszukiwanie klucza O(log(n)) Podłaczenie do sieci O(log 2 (n)) Odłaczenie od sieci O(log 2 (n))

wstęp Założenia Węzły położone sa na okręgu mod 2 n. Za przechowywanie danych o kluczu k odpowiedzialny jest następnik k, czyli węzeł o najmniejszym id k. Podczas podłaczania i odłaczania z sieci może nastapić migracja danych. Czasy operacji Wyszukiwanie klucza O(log(n)) Podłaczenie do sieci O(log 2 (n)) Odłaczenie od sieci O(log 2 (n))

Przykładowa sieć Rysunek: Przykładowa sieć Przykładowa sieć dla n = 3 zawierajaca 3 węzły.

Struktury danych Każdy węzeł w sieci posiada następujace informacje o sieci: następnik kolejny węzeł na okręgu poprzednik poprzedni węzeł na okręgu tablice finger[k] dla danego k węzeł, który jest w odległości 2 k od naszego Całkowity rozmiar struktur danych w węźle to O(log(n)). Istotne jest, żeby te informacje były aktualne.

Przykładowa sieć Rysunek: Przykładowa sieć Tablice finger[k] dla przykładowej sieci.

Wyszukiwanie klucza Wyszukanie klucza odpowiada znalezieniu następnika dla id. n.findsuccessor(id) n = FindPredecessor(id); return n.successor; n.findpredecessor(id) n = n; while (id (n, n.successor]) n = n.closestprecedingfinger(id); return n ; n.closestprecedingfinger(id) for i = m downto 1 if (finger[i].node (n, id)) return finger[i].node; return n;

Wyszukiwanie klucza Wyszukanie klucza odpowiada znalezieniu następnika dla id. n.findsuccessor(id) n = FindPredecessor(id); return n.successor; n.findpredecessor(id) n = n; while (id (n, n.successor]) n = n.closestprecedingfinger(id); return n ; n.closestprecedingfinger(id) for i = m downto 1 if (finger[i].node (n, id)) return finger[i].node; return n;

Wyszukiwanie klucza Wyszukanie klucza odpowiada znalezieniu następnika dla id. n.findsuccessor(id) n = FindPredecessor(id); return n.successor; n.findpredecessor(id) n = n; while (id (n, n.successor]) n = n.closestprecedingfinger(id); return n ; n.closestprecedingfinger(id) for i = m downto 1 if (finger[i].node (n, id)) return finger[i].node; return n;

Przykładowe wyszukiwanie Rysunek: Przykładowe wyszukiwanie Każdy krok wyszukiwania zmniejsza odległość o połowę. Oczekiwany czas wyszukiwania O(log(n)).

Dołaczenie węzła do sieci Rysunek: Dołaczenie węzła Tablice finger[k] po dołaczeniu nowego węzła.

Odłaczenie węzła z sieci Rysunek: Odłaczenie węzła Tablice finger[k] po odłaczeniu istniejacego węzła.

podsumowanie Zalety Dobra wydajność. Wady Skomplikowana implementacja. Duża wrażliwość na awarię węzłów. Brak równoległości przy wyszukiwaniu.

wstęp Założenia Oparta na metryce XOR. Informacje o strukturze sieci sa aktualizowane podczas wyszukiwania danych. Prawdopodobieństwo, że węzeł pozostanie w sieci jest zależne od czasu pobytu w tej sieci. Czasy operacji Wyszukiwanie klucza O(log(n)) Podłaczenie do sieci O(log(n)) Odłaczenie od sieci brak akcji

wstęp Założenia Oparta na metryce XOR. Informacje o strukturze sieci sa aktualizowane podczas wyszukiwania danych. Prawdopodobieństwo, że węzeł pozostanie w sieci jest zależne od czasu pobytu w tej sieci. Czasy operacji Wyszukiwanie klucza O(log(n)) Podłaczenie do sieci O(log(n)) Odłaczenie od sieci brak akcji

Statystyki dla sieci Gnutella Rysunek: Prawdopodobieństwo pozostania w sieci Prawdopodobieństwo, że dany węzeł pozostanie w sieci kolejne 60 minut zależy od tego jak długo węzeł w danej sieci jest. Oś X czas. Oś Y prawdopodobieństwo.

Idea tablicy routingu Rysunek: Drzewo węzłów Chcemy mieć kontakty w każdym poddrzewie. Dla każdego poddrzewa trzymamy conajwyżej k kontaktów. Rozmiar tablicy routingu jest proporcjonalny do ilości poddrzew O(log(n))

Metryka XOR Definicja d(x, Y ) = X Y Intuicja Różnice w wyższych bitach bardziej wpływaja na odległość niż te w niższych. 100101 000111 odległość = 2 5 + 2 1 = 34 Interpretacja geometryczna Węzły w tym samym poddrzewie sa bliżej niż węzły w różnych poddrzewach.

Struktury danych Informacje o węzłach przechowujemy jako trójki <adres IP, port UDP, ID węzła> Dla każdego 0 i < 160 przechowujemy tzw. k-koszyk, czyli listę węzłów. W i-tym k-koszyku trzymamy co najwyżej k informacji o węzłach, których odległość od naszego węzła [2 i, 2 i+1 ). Dla małych i k-koszyki będa raczej puste. Tablica routingu jest drzewem k-koszyków. Informacje sa aktualizowane podczas wyszukiwania kluczy. Wielkość struktur danych O(log(n)).

Struktury danych Informacje o węzłach przechowujemy jako trójki <adres IP, port UDP, ID węzła> Dla każdego 0 i < 160 przechowujemy tzw. k-koszyk, czyli listę węzłów. W i-tym k-koszyku trzymamy co najwyżej k informacji o węzłach, których odległość od naszego węzła [2 i, 2 i+1 ). Dla małych i k-koszyki będa raczej puste. Tablica routingu jest drzewem k-koszyków. Informacje sa aktualizowane podczas wyszukiwania kluczy. Wielkość struktur danych O(log(n)).

Struktury danych Informacje o węzłach przechowujemy jako trójki <adres IP, port UDP, ID węzła> Dla każdego 0 i < 160 przechowujemy tzw. k-koszyk, czyli listę węzłów. W i-tym k-koszyku trzymamy co najwyżej k informacji o węzłach, których odległość od naszego węzła [2 i, 2 i+1 ). Dla małych i k-koszyki będa raczej puste. Tablica routingu jest drzewem k-koszyków. Informacje sa aktualizowane podczas wyszukiwania kluczy. Wielkość struktur danych O(log(n)).

Struktury danych Rysunek: Tablica routingu Ogólny schemat tablicy routingu.

Struktury danych Rysunek: Tablica routingu Przykładowa tablica routingu dla k = 2.

Wyszukiwanie węzła Cel: Znalezienie k najbliższych węzłów dla podanego celu T {0, 1} 160. Algorytm rekurencyjny: findnode n (T ) zwraca wszystkie kontakty z pierwszego niepustego k-koszyka, który jest najbliżej T. Wyszukiwanie: n o = nasz węzeł N 1 = findnode n0 (T ) N 2 = findnode n1 (T ) gdzie n 1 N 1... Kończymy, gdy w którymś kroku nie uzyskamy żadnego nowego węzła. Wyszukiwanie można urównoleglić.

Wyszukiwanie węzła Cel: Znalezienie k najbliższych węzłów dla podanego celu T {0, 1} 160. Algorytm rekurencyjny: findnode n (T ) zwraca wszystkie kontakty z pierwszego niepustego k-koszyka, który jest najbliżej T. Wyszukiwanie: n o = nasz węzeł N 1 = findnode n0 (T ) N 2 = findnode n1 (T ) gdzie n 1 N 1... Kończymy, gdy w którymś kroku nie uzyskamy żadnego nowego węzła. Wyszukiwanie można urównoleglić.

Wyszukiwanie węzła Cel: Znalezienie k najbliższych węzłów dla podanego celu T {0, 1} 160. Algorytm rekurencyjny: findnode n (T ) zwraca wszystkie kontakty z pierwszego niepustego k-koszyka, który jest najbliżej T. Wyszukiwanie: n o = nasz węzeł N 1 = findnode n0 (T ) N 2 = findnode n1 (T ) gdzie n 1 N 1... Kończymy, gdy w którymś kroku nie uzyskamy żadnego nowego węzła. Wyszukiwanie można urównoleglić.

Wyszukiwanie węzła Rysunek: Wyszukiwanie klucza Każdy kolejny skok zbliża nas do szukanego węzła.

Umieszczenie i znajdowanie informacji Umieszczenie danych 1 Liczymy klucz dla danych (np. przy pomocy SHA-1) 2 Znajdujemy k węzłów leżacych najbliżej danego klucza. 3 Do każdego z węzłów wysyłamy żadanie umieszczenia pary <klucz, dane>. Znajdowanie danych o podanym kluczu 1 Wyszukujemy węzły dla celu równego danemu kluczowi. 2 Przy czym w każdym kroku algorytmu dla znalezionych węzłów sprawdzamy czy nie posiadaja one szukanych danych. 3 Po znalezieniu danych zapisujemy je dodatkowo w cache u najbliższego węzła, który tych danych nie posiadał.

Umieszczenie i znajdowanie informacji Umieszczenie danych 1 Liczymy klucz dla danych (np. przy pomocy SHA-1) 2 Znajdujemy k węzłów leżacych najbliżej danego klucza. 3 Do każdego z węzłów wysyłamy żadanie umieszczenia pary <klucz, dane>. Znajdowanie danych o podanym kluczu 1 Wyszukujemy węzły dla celu równego danemu kluczowi. 2 Przy czym w każdym kroku algorytmu dla znalezionych węzłów sprawdzamy czy nie posiadaja one szukanych danych. 3 Po znalezieniu danych zapisujemy je dodatkowo w cache u najbliższego węzła, który tych danych nie posiadał.

Działania dodatkowe Ponowna publikacja danych Co godzinę każdy węzeł publikuje ponownie dane. Dodatkowo wymagane jest ponowna publikacja danych w ciagu 24 godzin przez węzeł, który te dane umieścił w sieci. Odświeżanie zawartości k-koszyków Jeżeli otrzymaliśmy wiadomość od węzła w. Jeżeli w k-koszyka przesuwamy go na poczatek listy. Jeżeli w / k-koszyka bierzemy węzeł v ostatni z odpowiedniego k-koszyka i pingujemy. Jeżeli v odpowiedział przesuwamy v na poczatek listy. Jeżeli v nie odpowiedział to usuwamy v z listy i na poczatek wstawiamy w.

Działania dodatkowe Ponowna publikacja danych Co godzinę każdy węzeł publikuje ponownie dane. Dodatkowo wymagane jest ponowna publikacja danych w ciagu 24 godzin przez węzeł, który te dane umieścił w sieci. Odświeżanie zawartości k-koszyków Jeżeli otrzymaliśmy wiadomość od węzła w. Jeżeli w k-koszyka przesuwamy go na poczatek listy. Jeżeli w / k-koszyka bierzemy węzeł v ostatni z odpowiedniego k-koszyka i pingujemy. Jeżeli v odpowiedział przesuwamy v na poczatek listy. Jeżeli v nie odpowiedział to usuwamy v z listy i na poczatek wstawiamy w.

Podłaczenie i odłaczenie z sieci Podłaczenie do sieci Musimy posiadać adres jakiegoś istniejacego węzła w. 1 Wstawiamy w do odpowiedniego k-koszyka. 2 Uruchamiamy operacje wyszukiwania z naszym ID jako celem. 3 Odświeżamy zawartość wszystkich k-koszyków. Podczas tej operacji nasz węzeł propaguje się w tablicach routingu innych węzłów. Odłaczenie z sieci Odłaczenie nie wymaga żadnej operacji. Po prostu się rozłaczamy.

Podłaczenie i odłaczenie z sieci Podłaczenie do sieci Musimy posiadać adres jakiegoś istniejacego węzła w. 1 Wstawiamy w do odpowiedniego k-koszyka. 2 Uruchamiamy operacje wyszukiwania z naszym ID jako celem. 3 Odświeżamy zawartość wszystkich k-koszyków. Podczas tej operacji nasz węzeł propaguje się w tablicach routingu innych węzłów. Odłaczenie z sieci Odłaczenie nie wymaga żadnej operacji. Po prostu się rozłaczamy.

podsumowanie Zalety Coraz częściej używane w sieciach P2P. Duża wydajność. Odporność na awarię węzłów. Duża ilość zastosowań. Prostota. Możliwość równoległego wyszukiwania.

Sieci P2P Cooperative File System 1 Czym sa DHT? Typowe zastosowania 2 3 Sieci P2P Cooperative File System

Sieci P2P Sieci P2P Cooperative File System Przechowywane informacje Dla danego klucza w DHT przechowujemy informacje o węzłach posiadajacych pliki o danym kluczu. Wyszukiwanie plików wg hasha (np. SHA-1) Wyszukiwanie plików po nazwie Nazwa każdego pliku dzielona jest na słowa kluczowe. Lista plików zawierajacych dane słowo kluczowe przechowywana jest w DHT.

Sieci P2P Sieci P2P Cooperative File System Przechowywane informacje Dla danego klucza w DHT przechowujemy informacje o węzłach posiadajacych pliki o danym kluczu. Wyszukiwanie plików wg hasha (np. SHA-1) Wyszukiwanie plików po nazwie Nazwa każdego pliku dzielona jest na słowa kluczowe. Lista plików zawierajacych dane słowo kluczowe przechowywana jest w DHT.

Przykłady zastosowania Sieci P2P Cooperative File System Overnet Zamknięta implementacja protokołu. edonkey MLdonkey Kad Network emule Inne MLdonkey amule Sporo aplikacji P2P implementuje sieci oparte na Kademlii. RevConnect

Przykłady zastosowania Sieci P2P Cooperative File System Overnet Zamknięta implementacja protokołu. edonkey MLdonkey Kad Network emule Inne MLdonkey amule Sporo aplikacji P2P implementuje sieci oparte na Kademlii. RevConnect

Przykłady zastosowania Sieci P2P Cooperative File System Overnet Zamknięta implementacja protokołu. edonkey MLdonkey Kad Network emule Inne MLdonkey amule Sporo aplikacji P2P implementuje sieci oparte na Kademlii. RevConnect

Sieci P2P Cooperative File System Cooperative File System wstęp Cechy System plików tylko do odczytu. Identyfikacja systemu plików po kluczu publicznym. Duża wydajność. Bezpieczeństwo. Odporność na awarię węzłów. System składajacy się z trzech warstw. 1 Warstwa systemu plików 2 DHash 3

Sieci P2P Cooperative File System Cooperative File System wstęp Cechy System plików tylko do odczytu. Identyfikacja systemu plików po kluczu publicznym. Duża wydajność. Bezpieczeństwo. Odporność na awarię węzłów. System składajacy się z trzech warstw. 1 Warstwa systemu plików 2 DHash 3

Trójwarstwowa budowa Sieci P2P Cooperative File System Warstwa systemu plików Interpretuje pliki jako bloki. Tworzy abstrakcję systemu plików dla aplikacji. DHash Odpowiada za przechowywanie bloków. Replikuje bloki w sieci. Odpowiada za znajdowanie danych w sieci. Przechowuje tablice routingu.

Trójwarstwowa budowa Sieci P2P Cooperative File System Warstwa systemu plików Interpretuje pliki jako bloki. Tworzy abstrakcję systemu plików dla aplikacji. DHash Odpowiada za przechowywanie bloków. Replikuje bloki w sieci. Odpowiada za znajdowanie danych w sieci. Przechowuje tablice routingu.

Trójwarstwowa budowa Sieci P2P Cooperative File System Warstwa systemu plików Interpretuje pliki jako bloki. Tworzy abstrakcję systemu plików dla aplikacji. DHash Odpowiada za przechowywanie bloków. Replikuje bloki w sieci. Odpowiada za znajdowanie danych w sieci. Przechowuje tablice routingu.

Trójwarstwowa budowa Sieci P2P Cooperative File System Rysunek: Schemat budowy Połaczenia pionowe to wywołania lokalnego API. Połaczenie poziome to wywołania RPC.

DHash Sieci P2P Cooperative File System Rysunek: Umieszczenie kopii bloku kwadrat główna kopia bloku kółka kopie bloku w następnikach węzła z kopia główna trójkaty kopie w cache ach węzłów na ścieżce wyszukiwania

Implementacja Sieci P2P Cooperative File System Rysunek: Schemat struktury Implementacja oparta jest o Self-certifying File System (SFS). Blok główny zawiera w sobie klucz prywatny. Żadna ze sprawdzanych przeze mnie wersji nie działała.

Implementacja Sieci P2P Cooperative File System Rysunek: Schemat struktury Implementacja oparta jest o Self-certifying File System (SFS). Blok główny zawiera w sobie klucz prywatny. Żadna ze sprawdzanych przeze mnie wersji nie działała.

Podsumowanie Sieci P2P Cooperative File System Cooperative File System Praca naukowa, która nie znalazła zastosowania w rzeczywistości. Pewnie pozostanie jako ciekawostka.