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



Podobne dokumenty
Sieci komputerowe. Wykład 8: Warstwa zastosowań: FTP i HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

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

Tribler - nowe podejście do P2P

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

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 0: O czym jest ten przedmiot. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Distributed Hash Tables i ich zastosowania

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 25

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

MASKI SIECIOWE W IPv4

Sieci komputerowe. Wykład 11: Podstawy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Zadania z sieci Rozwiązanie

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

DHT Distributed Hash Table (Rozproszona Tablica Mieszająca)

Sieci równorzędne, oraz klient - serwer

Wybrane działy Informatyki Stosowanej

FTP przesył plików w sieci

Praca w sieci równorzędnej

Instytut Informatyki Uniwersytet Wrocławski. Dane w sieciach. (i inne historie) Marcin Bieńkowski

Sieci komputerowe. Wykład 3: Protokół IP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski. Sieci komputerowe (II UWr) Wykład 3 1 / 24

Działanie komputera i sieci komputerowej.

SIECI KOMPUTEROWE. Podstawowe wiadomości

Wybrane działy Informatyki Stosowanej

Sieci komputerowe. Wykład 8: Wyszukiwarki internetowe. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Jarek Babel. Sieci peer-to-peersystem plików GI p. 1

Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Tadeusz Pankowski

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Protokoły PEER2PEER. Krzysztof Kostałkowicz

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

Ataki na serwery Domain Name System (DNS Cache Poisoning)

Kryteria ocen zajęcia komputerowe klasa 4

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

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

PHP: bazy danych, SQL, AJAX i JSON

Sprawozdanie Laboratorium 4

Skalowalne aplikacje internetowe wysokiej dostępności

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

Udostępnianie drukarek za pomocą systemu Windows (serwer wydruku).

Nowa usługa Centrum Komputerowego PŁ. Pliki w Chmurze. Serwis przechowywania i udostępniania danych. Prezentacja wprowadzająca

Tworzenie aplikacji bazodanowych

PODSTAWOWE PODZIAŁY SIECI KOMPUTEROWYCH

Trwały nośnik w Alior Bank

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Serwer proxy Squid. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Laboratorium nr 4 - Badanie protokołów WWW

Sieci komputerowe. Wykład 9: Elementy kryptografii. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

NetDrive czyli jak w prosty sposób zarządzać zawartością FTP

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Sieci komputerowe. Wstęp

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

Serwer nazw DNS. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Za dużo wpisów! Serwer nazw DNS. Marcin Bieńkowski

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

World Wide Web? rkijanka

Instrukcja dla instalatora systemu SMDP Enterprise/Professional

Przesyłania danych przez protokół TCP/IP

Programowanie współbieżne i rozproszone

ROZDZIAŁ 2. INTERNET. Lekcja 5. Temat: Przeglądanie stron internetowych

Sieci komputerowe. Wykład 9: Poczta elektroniczna. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Kopiowanie plików. 1. Z sieci wewnętrznej PK. System Windows

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

4. Podstawowa konfiguracja

Poradnik korzystania z usługi FTP

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Sieci VPN SSL czy IPSec?

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Dfs - Distributed File System SMB - Server Message Block. 18 grudnia 2002

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE WIADOMOŚCI I UMIEJĘTNOŚCI UCZNIÓW

Konfiguracja poczty IMO w programach Microsoft Outlook oraz Mozilla Thunderbird

DHL CAS ORACLE Wymagania oraz instalacja

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Metoda pomiaru site-centric

Obsługa poczty elektronicznej w domenie emeritus.ue.poznan.pl

Instrukcja konfiguracji funkcji skanowania

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Księgarnia internetowa Lubię to!» Nasza społeczność

Oprogramowanie OpenVPN jest oprogramowaniem darmowym, które można pobrać ze strony:

Firma Informatyczna ASDER. Prezentacja. Serwer danych zdalnych. Przemysław Kroczak ASDER

Trwały nośnik w T-Mobile Usługi Bankowe. Opis rozwiązania dla zapewnienia elektronicznym dokumentom publicznym postaci trwałego nośnika

Laboratorium podstaw telekomunikacji

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Laboratorium - Poznawanie FTP

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji:

Kompresja tablic obliczeń wstępnych alternatywa dla tęczowych tablic. Michał Trojnara.

Serwery Statefull i Stateless

Instrukcja obsługi aplikacji Karty Pojazdów dla Dealerów Samochodowych

Włączanie/wyłączanie paska menu

10.2. Udostępnianie zasobów

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Instrukcja obsługi serwera FTP v

Transkrypt:

Sieci komputerowe Wykład 12: Sieci peer-to-peer Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 12 1 / 36

Wprowadzenie Do tej pory mówiliśmy o architekturze klient/serwer. Wiele zastosowań: WWW, FTP,... Obrazek z prezentacji http://project-iris.net/talks/dht-toronto-03.ppt Sieci komputerowe (II UWr) Wykład 12 2 / 36

Wprowadzenie Model klient/serwer Ograniczenia modelu klient/serwer Kiepska skalowalność Awaria pojedynczego punktu (serwera) powoduje awarię całości Wymaga zarzadzania i administracji Niewykorzystane zasoby klientów Sieci komputerowe (II UWr) Wykład 12 3 / 36

Wprowadzenie Sieci peer-to-peer (P2P) Wszystkie komputery sa jednocześnie klientami i serwerami Każdy komputer może nawiazywać połaczenia z innymi (bez pośrednictwa znanego serwera) Brak centralnego miejsca z danymi Każdy wierzchołek jest autonomiczny (brak administracji) Sieci komputerowe (II UWr) Wykład 12 4 / 36

Sieci peer-to-peer Wprowadzenie Po co? Współdzielenie zasobów Rozproszone obliczenia Sieci komputerowe (II UWr) Wykład 12 5 / 36

Wprowadzenie Zalety sieci peer-to-peer Efektywne wykorzystanie zasobów (dyskowych i obliczeniowych) Skalowalność Niezawodność (trzeba zniszczyć dużo komputerów, żeby zniszczyć strukturę sieci). Zazwyczaj: replikowanie danych/obliczeń, równoważenie obciażenia. Sieci komputerowe (II UWr) Wykład 12 6 / 36

Popularne systemy P2P Popularne systemy P2P Sieci komputerowe (II UWr) Wykład 12 7 / 36

Popularne systemy P2P Współdzielenie plików......czyli najbardziej popularne zastosowanie P2P. Jak to działa: Użytkownik A podłacza się do sieci i zaznacza część plików jako udostępniane. Użytkownik B podłacza się do sieci, wyszukuje pliki i pobiera je bezpośrednio od użytkownika A. (Pojawiaja się oczywiście kwestie praw autorskich.) Sieci komputerowe (II UWr) Wykład 12 8 / 36

Napster Popularne systemy P2P Pierwszy system P2P. 1 Użytkownik A łaczy się z centralnym serwerem i umieszcza na nim listę swoich plików. 2 Użytkownik B wysyła zapytanie o MP3 do serwera. 3 Serwer odpowiada adresem IP komputera (np. użytkownika A) 4 B łaczy się z A i pobiera plik Obrazek ze strony http://computer.howstuffworks.com/file-sharing.htm Sieci komputerowe (II UWr) Wykład 12 9 / 36

Napster Popularne systemy P2P Z obecnego punktu widzenia Napster to nie jest prawdziwe P2P. Centralny serwer Zapewnia spójność i poprawność odpowiedzi na zapytania Waskie gardło w skalowalności Podatny na ataki typu DoS Wyłaczenie powoduje zamknięcie całej sieci (kwestie prawne, zamknięty w lipcu 2001) Sieci komputerowe (II UWr) Wykład 12 10 / 36

Napster Popularne systemy P2P Z obecnego punktu widzenia Napster to nie jest prawdziwe P2P. Centralny serwer Zapewnia spójność i poprawność odpowiedzi na zapytania Waskie gardło w skalowalności Podatny na ataki typu DoS Wyłaczenie powoduje zamknięcie całej sieci (kwestie prawne, zamknięty w lipcu 2001) Sieci komputerowe (II UWr) Wykład 12 10 / 36

Popularne systemy P2P Rozproszone obliczenia Podobna strukturę co Napster (centralny serwer) maja obecnie powszechne obliczenia rozproszone. SETI@home folding@home aisd@home distributed.net (łamanie zaszyfrowanych wiadomości)... Sieci komputerowe (II UWr) Wykład 12 11 / 36

Gnutella Popularne systemy P2P Pierwsze zdecentralizowane P2P: Współdzielenie dowolnych plików (nie tylko MP3) Sieć nakładkowa (overlay network) logiczna sieć oparta o sieć bazowa (Internet) bezpośrednie połaczenia w sieci nakładkowej zazwyczaj nie sa bezpośrednie w sieci bazowej dobrze, jeśli struktura sieci nakładkowej odzwierciedla strukturę sieci bazowej Sieci komputerowe (II UWr) Wykład 12 12 / 36

Gnutella Popularne systemy P2P Pierwsze zdecentralizowane P2P: Współdzielenie dowolnych plików (nie tylko MP3) Sieć nakładkowa (overlay network) logiczna sieć oparta o sieć bazowa (Internet) bezpośrednie połaczenia w sieci nakładkowej zazwyczaj nie sa bezpośrednie w sieci bazowej dobrze, jeśli struktura sieci nakładkowej odzwierciedla strukturę sieci bazowej Sieci komputerowe (II UWr) Wykład 12 12 / 36

Gnutella, cd. Popularne systemy P2P Wyszukiwanie Podłaczamy się do sieci do jakiegoś komputera Wyszukiwanie = zalewanie sieci (nakładkowej) zapytaniem z TTL 6. Sieci komputerowe (II UWr) Wykład 12 13 / 36

Gnutella, cd. Popularne systemy P2P Zalety: Wady: Brak pojedynczego wrażliwego punktu Nie bardzo działaja ataki DoS Nie można zapewnić poprawności opowiedzi (daleko leżace pliki nie sa znajdowane). Wyszukiwanie rozproszone, ale nie skalowalne! Sieci komputerowe (II UWr) Wykład 12 14 / 36

Popularne systemy P2P Kazaa (Fasttrack) Połaczenie pomysłów z Napstera i Gnutelli Niektóre wierzchołki (o dobrym łaczu czy dużym dysku) zostaja superwierchołkami. Superwierzchołki sa jak serwer Napstera dla pewnej lokalnej części sieci: przechowuja listy plików wierzchołków w okolicy. Superwierzchołki okresowo łacz a się ze soba i wymieniaja listy plików. Sieci komputerowe (II UWr) Wykład 12 15 / 36

Caching Caching czyli dygresja o serwerach proxy Sieci komputerowe (II UWr) Wykład 12 16 / 36

Caching Zamiast łaczyć się bezpośrednio z serwerem WWW, przegladarka może łaczyć się z tzw. serwerem proxy. Po co? Ograniczanie ruchu do/z zewnętrznych stron WWW przechowywanie zawartości stron w pamięci proxy. Kontrolowanie dostępu do zasobów WWW. Sieci komputerowe (II UWr) Wykład 12 17 / 36

Serwer proxy Caching Działanie: Oczekuje na porcie 8080. Jeśli w pamięci podręcznej (cache) nie ma żadanej strony lub jest nieaktualna, to: proxy łaczy się z zadana strona, zapamiętuje odpowiedź w pamięci podręcznej (cache). Proxy zwraca odpowiedź klientowi. Sieci komputerowe (II UWr) Wykład 12 18 / 36

Serwer proxy Caching Działanie: Oczekuje na porcie 8080. Jeśli w pamięci podręcznej (cache) nie ma żadanej strony lub jest nieaktualna, to: proxy łaczy się z zadana strona, zapamiętuje odpowiedź w pamięci podręcznej (cache). Proxy zwraca odpowiedź klientowi. Sieci komputerowe (II UWr) Wykład 12 18 / 36

Caching Aktualność pamięci podręcznej Jak serwer proxy decyduje, czy strona w cache jest nadal aktualna: Serwer WWW ustawia pole Expires: w nagłówku odpowiedzi po tej dacie serwer proxy wyrzuca stronę z cache Serwer WWW może ustawić pole Pragma: no-cache lub/i Cache-Control: no-cache strona w ogóle nie będzie zapamiętywana na serwerze proxy Klient WWW może ustawić powyższe pole zawartość cache serwera zostanie pominięta W pozostałych przypadkach heurystyki oparte np. na polu Last-modified: Sieci komputerowe (II UWr) Wykład 12 19 / 36

Caching Anonimowe serwery proxy Zwykły serwer proxy dodaje do naszego żadania HTTP dodatkowe pola w nagłówku, m.in. X-Forwarded-For: (nasz adres IP) Via: (adres IP proxy) Istnieja tzw. anonimowe serwery proxy, które nie dodaja tych nagłówków. Sieci komputerowe (II UWr) Wykład 12 20 / 36

BitTorrent Caching Serwery proxy moga też działać w trybie przyspieszania HTTP Rozkładanie obciażenia (obliczeniowego i łacza) między wiele komputerów Droga inwestycja stosowana przez duże serwisy, typu CNN czy Microsoft. Jeśli nas nie stać na to rozwiazanie Rozpowszechniamy darmowa, duża i popularna aplikację, np. Open Office. Pomysł: udostępnić plik tylko paru poczatkowym użytkownikom, reszta niech ściaga od nich. Sieci komputerowe (II UWr) Wykład 12 21 / 36

BitTorrent Caching Serwery proxy moga też działać w trybie przyspieszania HTTP Rozkładanie obciażenia (obliczeniowego i łacza) między wiele komputerów Droga inwestycja stosowana przez duże serwisy, typu CNN czy Microsoft. Jeśli nas nie stać na to rozwiazanie Rozpowszechniamy darmowa, duża i popularna aplikację, np. Open Office. Pomysł: udostępnić plik tylko paru poczatkowym użytkownikom, reszta niech ściaga od nich. Sieci komputerowe (II UWr) Wykład 12 21 / 36

Caching BitTorrent, idea działania Udostępnianie pliku X Zwiazujemy z plikiem X plik.torrent i umieszczamy go na naszej stronie. Plik jest dzielony na kawałki rzędu 64KB 4MB. Plik.torrent zawiera informacje takie jak adres IP trackera oraz funkcje skrótu SHA-1 wszystkich kawałków. Pobieranie pliku X Pobieramy z jakiegoś (zewnętrznego) serwisu plik.torrent Łaczymy się z zadanym trackerem. Tracker wie, kto z podłaczonych do niego użytkowników ma zadane kawałki plików Po pobraniu możemy zostać i nadal udostępniać, zwiększajac szanse innych. obrazek Sieci komputerowe (II UWr) Wykład 12 22 / 36

Caching BitTorrent, idea działania Udostępnianie pliku X Zwiazujemy z plikiem X plik.torrent i umieszczamy go na naszej stronie. Plik jest dzielony na kawałki rzędu 64KB 4MB. Plik.torrent zawiera informacje takie jak adres IP trackera oraz funkcje skrótu SHA-1 wszystkich kawałków. Pobieranie pliku X Pobieramy z jakiegoś (zewnętrznego) serwisu plik.torrent Łaczymy się z zadanym trackerem. Tracker wie, kto z podłaczonych do niego użytkowników ma zadane kawałki plików Po pobraniu możemy zostać i nadal udostępniać, zwiększajac szanse innych. obrazek Sieci komputerowe (II UWr) Wykład 12 22 / 36

Sieci ustrukturyzowane Dlaczego sieci ustrukturyzowane? Jeden z głównych problemów w sieciach P2P: wyszukiwanie W sieciach bez struktury: zalewanie / centralny serwer Działa zawodnie / obciaża sieć Zajmuje ok. 30-50% wszystkich wymienianych danych Sieci komputerowe (II UWr) Wykład 12 23 / 36

Sieci ustrukturyzowane P2P ze struktura: Chord Sieci komputerowe (II UWr) Wykład 12 24 / 36

DHT Sieci ustrukturyzowane Wróćmy do Napstera Serwer główny przechowuje tablicę haszujac a H: (plik adres IP komputera który ma plik) H chcemy teraz przechowywać na wszystkich komputerach DHT = Distributed Hash Table, rozproszona tablica haszujaca. Pomysły: Każdy komputer ma H bez sensu Każdy komputer ma (mniej więcej 1/n) równy kawałek H Dlaczego złe jest rozwiazanie pierwszy komputer 1/n wpisów, drugi komputer kolejne 1/n wpisów, itd.? Dlaczego funkcja (NAZWA PLIKU mod n) jest zła? Sieci komputerowe (II UWr) Wykład 12 25 / 36

DHT Sieci ustrukturyzowane Wróćmy do Napstera Serwer główny przechowuje tablicę haszujac a H: (plik adres IP komputera który ma plik) H chcemy teraz przechowywać na wszystkich komputerach DHT = Distributed Hash Table, rozproszona tablica haszujaca. Pomysły: Każdy komputer ma H bez sensu Każdy komputer ma (mniej więcej 1/n) równy kawałek H Dlaczego złe jest rozwiazanie pierwszy komputer 1/n wpisów, drugi komputer kolejne 1/n wpisów, itd.? Dlaczego funkcja (NAZWA PLIKU mod n) jest zła? Sieci komputerowe (II UWr) Wykład 12 25 / 36

DHT Sieci ustrukturyzowane Wróćmy do Napstera Serwer główny przechowuje tablicę haszujac a H: (plik adres IP komputera który ma plik) H chcemy teraz przechowywać na wszystkich komputerach DHT = Distributed Hash Table, rozproszona tablica haszujaca. Pomysły: Każdy komputer ma H bez sensu Każdy komputer ma (mniej więcej 1/n) równy kawałek H Dlaczego złe jest rozwiazanie pierwszy komputer 1/n wpisów, drugi komputer kolejne 1/n wpisów, itd.? Dlaczego funkcja (NAZWA PLIKU mod n) jest zła? Sieci komputerowe (II UWr) Wykład 12 25 / 36

DHT Sieci ustrukturyzowane Wróćmy do Napstera Serwer główny przechowuje tablicę haszujac a H: (plik adres IP komputera który ma plik) H chcemy teraz przechowywać na wszystkich komputerach DHT = Distributed Hash Table, rozproszona tablica haszujaca. Pomysły: Każdy komputer ma H bez sensu Każdy komputer ma (mniej więcej 1/n) równy kawałek H Dlaczego złe jest rozwiazanie pierwszy komputer 1/n wpisów, drugi komputer kolejne 1/n wpisów, itd.? Dlaczego funkcja (NAZWA PLIKU mod n) jest zła? Sieci komputerowe (II UWr) Wykład 12 25 / 36

Sieci ustrukturyzowane DHT, kolejny pomysł Wpisy z H na odcinku Komputery opiekuja się kawałkami tego odcinka Jak poradzić sobie z sytuacja, że wszystkie przechowywane pliki sa na literę A? Bierzemy funkcję skrótu (np SHA-1) i liczymy ja dla nazwy pliku. Wynik to losowa liczba [0, 2 160 1], wpis umieszczamy w tym miejscu odcinka. Nowy komputer dzielimy istniejacy odcinek Wada: komputery wychodzace grupami z systemu! Pomysł: pozycje komputerów losujemy. Ale system musi być deterministyczny! Sieci komputerowe (II UWr) Wykład 12 26 / 36

Sieci ustrukturyzowane DHT, kolejny pomysł Wpisy z H na odcinku Komputery opiekuja się kawałkami tego odcinka Jak poradzić sobie z sytuacja, że wszystkie przechowywane pliki sa na literę A? Bierzemy funkcję skrótu (np SHA-1) i liczymy ja dla nazwy pliku. Wynik to losowa liczba [0, 2 160 1], wpis umieszczamy w tym miejscu odcinka. Nowy komputer dzielimy istniejacy odcinek Wada: komputery wychodzace grupami z systemu! Pomysł: pozycje komputerów losujemy. Ale system musi być deterministyczny! Sieci komputerowe (II UWr) Wykład 12 26 / 36

Sieci ustrukturyzowane DHT, kolejny pomysł Wpisy z H na odcinku Komputery opiekuja się kawałkami tego odcinka Jak poradzić sobie z sytuacja, że wszystkie przechowywane pliki sa na literę A? Bierzemy funkcję skrótu (np SHA-1) i liczymy ja dla nazwy pliku. Wynik to losowa liczba [0, 2 160 1], wpis umieszczamy w tym miejscu odcinka. Nowy komputer dzielimy istniejacy odcinek Wada: komputery wychodzace grupami z systemu! Pomysł: pozycje komputerów losujemy. Ale system musi być deterministyczny! Sieci komputerowe (II UWr) Wykład 12 26 / 36

Sieci ustrukturyzowane DHT, kolejny pomysł Wpisy z H na odcinku Komputery opiekuja się kawałkami tego odcinka Jak poradzić sobie z sytuacja, że wszystkie przechowywane pliki sa na literę A? Bierzemy funkcję skrótu (np SHA-1) i liczymy ja dla nazwy pliku. Wynik to losowa liczba [0, 2 160 1], wpis umieszczamy w tym miejscu odcinka. Nowy komputer dzielimy istniejacy odcinek Wada: komputery wychodzace grupami z systemu! Pomysł: pozycje komputerów losujemy. Ale system musi być deterministyczny! Sieci komputerowe (II UWr) Wykład 12 26 / 36

Chord Sieci ustrukturyzowane Chord (MIT, Berkeley, 2001) Założenie: każdy przechowywany obiekt ma unikatowa nazwę znana potencjalnym zainteresowanym. Obiekt X przechowywany jest na komputerze K (X). Chcemy przechować pary (X, K (X)) na wielu komputerach. Dla każdego obiektu i dla każdego adresu IP komputera liczymy (tę sama) funkcję skrótu h zwracajac a liczbę z [0, 2 m 1] (Dla SHA-1, m = 160) Sieci komputerowe (II UWr) Wykład 12 27 / 36

Chord, cd. Sieci ustrukturyzowane Na poczatku komputery leża na okręgu (mod 2 m ); każdy komputer zna IP swojego poprzednika i następnika. Obrazek ze strony http://www.daimi.au.dk/ marius/p2p-course/lectures/11/talk.html Sieci komputerowe (II UWr) Wykład 12 28 / 36

Sieci ustrukturyzowane Chord, dodawanie pliku Komputer A chce udostępnić swój plik o nazwie abc A przechowuje plik abc. Para (h(abc), IP komputera A) zostaje przechowana na komputerze, który na okręgu jest następny za h(abc). Sieci komputerowe (II UWr) Wykład 12 29 / 36

Sieci ustrukturyzowane Chord, wyszukiwanie pliku Wyszukiwanie pliku wyglada tak samo jak dodawanie Obrazek ze strony http://www.daimi.au.dk/ marius/p2p-course/lectures/11/talk.html Sieci komputerowe (II UWr) Wykład 12 30 / 36

Chord, uwagi Sieci ustrukturyzowane Równomierne rozmieszczenie W wartości oczekiwanej każdy komputer jest odpowiedzialny za l = 2 m /n okręgu. Z dużym ppb. każdy komputer jest odpowiedzialny za odcinek o długości pomiędzy l 1 n a l log n Z drugiej strony w każdym przedziale o długości l leży średnio 1 wierzchołek, z dużym ppb. nie więcej niż O(log n) Sieci komputerowe (II UWr) Wykład 12 31 / 36

Chord, uwagi Sieci ustrukturyzowane Równomierne rozmieszczenie W wartości oczekiwanej każdy komputer jest odpowiedzialny za l = 2 m /n okręgu. Z dużym ppb. każdy komputer jest odpowiedzialny za odcinek o długości pomiędzy l 1 n a l log n Z drugiej strony w każdym przedziale o długości l leży średnio 1 wierzchołek, z dużym ppb. nie więcej niż O(log n) Sieci komputerowe (II UWr) Wykład 12 31 / 36

Sieci ustrukturyzowane Chord: wskaźniki Obecnie wyszukiwanie elementu zajmuje czas Ω(n). Pomysł: Dodajmy dodatkowe wskaźniki Obrazek ze strony http://www.daimi.au.dk/ marius/p2p-course/lectures/11/talk.html Sieci komputerowe (II UWr) Wykład 12 32 / 36

Sieci ustrukturyzowane Chord: wskaźniki Obecnie wyszukiwanie elementu zajmuje czas Ω(n). Pomysł: Dodajmy dodatkowe wskaźniki Obrazek ze strony http://www.daimi.au.dk/ marius/p2p-course/lectures/11/talk.html Sieci komputerowe (II UWr) Wykład 12 32 / 36

Sieci ustrukturyzowane Chord: wskaźniki, cd. Ćwiczenie Jak wykorzystujac takie dodatkowe wskaźniki przyspieszyć czas wyszukiwania pliku do O(log n)? Uwaga: wstawianie i usuwanie wpisu o pliku redukuje się do wyszukania tego pliku i skontaktowania się z odpowiedzialnym komputerem. Sieci komputerowe (II UWr) Wykład 12 33 / 36

Sieci ustrukturyzowane Chord: nowy wierzchołek Nowy wierzchołek A 1 Zakładamy, że A zna jakiś wierzchołek B z sieci. 2 A oblicza h(a); za pomoca B znajduje poprzednika = C 1 i następnika = C 2. 3 C 1 ustawia jako następnika A, C 2 ustawia jako poprzednika A. 4 C 1 i A aktualizuja swoja tablicę wskaźników (szczegóły na ćwiczeniach). 5 A kopiuje od C 2 odpowiednie klucze. 6 Trzeba jeszcze uaktualnić wskaźniki innych! Sieci komputerowe (II UWr) Wykład 12 34 / 36

Sieci ustrukturyzowane Chord: nowy wierzchołek Nowy wierzchołek A 1 Zakładamy, że A zna jakiś wierzchołek B z sieci. 2 A oblicza h(a); za pomoca B znajduje poprzednika = C 1 i następnika = C 2. 3 C 1 ustawia jako następnika A, C 2 ustawia jako poprzednika A. 4 C 1 i A aktualizuja swoja tablicę wskaźników (szczegóły na ćwiczeniach). 5 A kopiuje od C 2 odpowiednie klucze. 6 Trzeba jeszcze uaktualnić wskaźniki innych! Sieci komputerowe (II UWr) Wykład 12 34 / 36

Sieci ustrukturyzowane Chord: usuwanie wierzchołka Wierzchołek powiadamia sieć, że chce odejść Procedura podobna do przypadku nowego wierzchołka. Wierzchołek oddaje swojemu następnikowi pamiętane przez siebie klucze. Wierzchołek wychodzi z sieci bez zapowiedzi Informacje o części plików gubione. Łagodzenie skutków: replikacja danych. Sieci komputerowe (II UWr) Wykład 12 35 / 36

Sieci ustrukturyzowane Uwagi końcowe DHT Nie tylko akademicka zabawka! Podobne (ideowo) do Chorda rozwiazanie to np. Kademlia wykorzystywana w BitTorrencie (umożliwia działanie sieci bez trackera) Sieci komputerowe (II UWr) Wykład 12 36 / 36