Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Kamil Rembalski Kostynowicz Jakub

Podobne prezentacje


Prezentacja na temat: "Kamil Rembalski Kostynowicz Jakub"— Zapis prezentacji:

1 Kamil Rembalski Kostynowicz Jakub
Peer-to-Peer Kamil Rembalski Kostynowicz Jakub

2 Co oznacza słowo „peer”
Merriam-Webster: one that is of equal standing with another Cambridge: a person who is the same age or has the same social position or the same abilities as other people in a group Można tłumaczyć na polski jako „równy”

3 Definicja IEEE (Institute of Electrical and Electronics Engineers)
A distributed network architecture may be called a Peer-to-Peer network, if the participants share a part of their own hardware resources (processing power, storage capacity, network link capacity, printers). These shared resources are necessary to provide the Service and content offered by the network (e.g. file sharing or shared workspaces for collaboration). They are accessible by other peers directly, without passing intermediary entities. The participants of such a network are thus resource (Service and content) providers as well as resource (Service and content) requestors (Servent). R. Schollmeier, “A Definition of Peer-to-Peer Networking” IEEE, 2001

4 P2P vs. Klient / Serwer

5 Porównanie: Architektura Peer-to-peer
Każdy „równy” (peer) posiada podobną ilość zasobów „Równi” komunikują się bezpośrednio ze sobą udostępniając sobie zasoby Każdy może za równo inicjować żądania jak i je obsługiwać Klient / Serwer. Serwer: Obsługuje żądania ale sam nie inicjuje żądań. Serwery są centralnie administrowane i posiadają znacznie więcej zasobów niż klienci. Klient: Jednostka, która inicjuje żądania, ale sama nie jest w stanie obsłużyć żadnych żądań.

6 Rodzaje P2P Pure peer-to-peer Hybrid peer-to-peer (hybrydowe p2p)
Architekturę sieci można zakwalifikować jako „pure p2p” tylko wówczas gdy każdy jeden, arbitralnie wybrany węzeł można z niej usunąć nie zmniejszając funkcjonalności całej sieci. Hybrid peer-to-peer (hybrydowe p2p) Pewne usługi sieciowe (jak np. wyszukiwanie zasobów, czy innych „peers”) wymagają działania centralnego/wyróżnionego węzła (serwera)

7 Historia P2P Koncepcja nie jest nowa (używana przez uczelnie i uniwersytety od 30 lat) Arpanet (koniec lat 60-tych) łączył UCLA, Stanford Research Institute, UC Santa Barbara and the University of Utah nie w architekturze Klient/ Serwer ale wlaśnie na zasadzie równouprawnionych stron. Popularne aplikacje „wczesnego” internetu: ftp i telnet działały na zasadzie klient/serwer, jednak każda stacja mogła odgrywać obie role. Można to uznać za spełnienie paradygmatu p2p. 1979 USENET bazujący na Unix-to-Unix-copy protocol pozwalał na wymiane plików. Na początku łączył tylko Duke University oraz University of North Carolina. W tej chwili ma setki tysięcy użytkowników. Usenet to obecnie zdecentralizowana sieć wymiany wiadomości pomiedzy serwerami grup dyskusyjnych. Brak centralnego serwera sprawia że Usenet można traktować jako pure p2p.

8 Historia P2P Początek lat 90
Rozwój WWW. Odejście od P2P na rzecz Klient/Serwer 1999 Napster (stworzony przez Shawn’a Fanning’a z Northeastern University ) Hybrydowy p2p do wymiany plików mp3. W krótkim czasie zdobywa miliony użytkowników (głównie w środowiskach akademickich)

9 Historia P2P Recording Industry Association of America rozpoczyna kampanię przeciwko Napsterowi. Metallica pozywa Napstera za łamanie praw autorskich. Lipiec 2001 Napster zaprzestaje działalności po próbie przekształcenia go w płatny serwis. Powstają naśladowcy Napstera – Kazaa (160 milionow uzytkowinikow), Gnutella (pure p2p), Audiogalaxy, iMesh Edonkey, Emule, Overnet (użycie funkcji haszującej w celu uniemożliwienia oszukiwania nazw plików) Direct Connect++

10 Problemy z aplikacjami p2p
Legalność udostępnianych plików Problemy bezpieczeństwa -spyware TopText, Gator, Cydoor, BonziBuddy -podatność na wirusy -nieskuteczność firewall’i (zmienianie portów, port 80)

11 Przykłady aplikacji P2P

12 Przykłady aplikacji P2P

13 Przykłady aplikacji P2P

14 Przyszłość P2P Duże firmy i konsorcja doceniają znaczenie peer-to-peer
Rozwój platform takich jak Microsoft .NET oraz Sun JXTA wspomagających P2P Anonimowe p2p – Freenet (A Distributed Anonymous Information Storage and Retrieval System

15 JXTA JXTA (wym. dżiuksta) projekt open source uruchomionym przez Billa Joya z Sun Java jako język podstawowy standardu. Obecnie trwają prace nad definicją protokołów, za pomocą których budowane będą aplikacje P2P. Do tej pory zdefiniowano 6 protokołów JXTA. Liczba implementowanych protokołów przez członka sieci (peer) zależy od jego możliwości technicznych - wystarczy, by implementował on jeden z protokołów.

16 JXTA

17 JXTA „peers” mogą oznaczać zarówno serwery, komputery osobiste, jak i urządzenia przenośne (PDA, telefony komórkowe). "Równi" mogą łączyć się w grupy (peer groups) "Równi" oraz ich grupy udostępniają usługi - jeżeli udostępniający nie jest aktywny, usługa jest niedostępna. Usługę udostępnianą przez grupę, można uzyskać od dowolnego aktywnego jej członka. Publikowanie i odnajdywania zasobów poprzez dokumenty w XML zwane ogłoszeniami (advertisements) Identyfikatory zdefiniowane w formacie URI (Uniform Resource Identifier)

18 Q2R

19 Ogólne założenia Program ma służyć do pobierania plików (coś w stylu eDonkey) Hybrydowe p2p

20 Minimalne wymagania Nawiązywanie połączeń. Współdzielenie pliku.
Wyszukiwanie pliku. Pobieranie pliku.

21 Ogólna struktura Serwer Klient 2 Klient 1 Klient 3
Połaczenia kontrolne Klient 2 Klient 1 Klient 3

22 Ogólna struktura Serwer Klient 2 Klient 1 Klient 3
Połączenia przesyłające

23 Nawiązywanie połączenia
1) Nazywam się „Bruce Lee” Serwer Klient

24 Nawiązywanie połączenia
Serwer Bruce Lee 2) Super...

25 Współdzielenie pliku 1) Mam nowy plik Serwer Bruce Lee

26 Współdzielenie pliku Serwer Bruce Lee 2) Fajnie

27 Współdzielenie pliku Jak stwierdzić, czy „nowy” plik nie jest już współdzielony ? Jak przechowywać dane o plikach i użytkownikach ?

28 Współdzielenie pliku - hash
Co nie powinno być zawarte w hashu ?

29 Współdzielenie pliku - hash
Co nie powinno być zawarte w hashu ? Nazwa pliku Co można zawrzeć w hashu ?

30 Współdzielenie pliku - hash
Co nie powinno być zawarte w hashu ? Nazwa pliku Co można zawrzeć w hashu ? Rozmiar pliku Zawartość pliku Właściwości pliku (np. codec, format);

31 Współdzielenie pliku - dane
Co powinniśmy wiedzieć o pliku? Hash Nazwy Klienci posiadający ten plik inne dane (rozmiar, etc.) Co powinniśmy wiedzieć o kliencie? Pliki, które posiada Nick

32 Współdzielenie pliku - dane
Hash Nazwy Rozmiar Klient Nick Połączenie * *

33 Współdzielenie pliku - dane
Hash Hash Hash Hash Hash Hash Pliki Klienci

34 Wyszukanie pliku 1) Znajdź pliki „oops” Serwer Bruce Lee

35 Wyszukanie pliku Serwer Bruce Lee 2) „Oops I did it again.mp3”

36 Pobieranie pliku Serwer Chcę plik „Ooops I did it again.mp3” Bruce Lee

37 Pobieranie pliku Serwer Bruce Lee Elvis Presley
Wyślij Bruce’owi „ Ooops I did it again.mp3” Pobierz od Elvisa Bruce Lee Elvis Presley

38 Pobieranie pliku Serwer Bruce Lee Elvis Presley Klient 2
Wysyłanie „Oops I did..” Elvis Presley Klient 2

39 Pobieranie pliku Serwer Bruce Lee Elvis Presley Klient 2
Wysyłanie „Oops” Elvis Presley Klient 2

40 Omówienie programu Q2R Pakiet Utils
FileDescriptor - przechowuje dane o pliku. Generowany bezpośrednio z pliku po stronie klienta. Hash - identyfikator pliku. Generowany po stronie klienta za pomocą pliku.

41 Omówienie programu Q2R Klasy serwera
Client - klasa reprezentująca klienta. Przechowuje dane klienta oraz utrzymuje połaczenie kontrolne. ServerData - klasa przechowująca dane i umożliwiająca efektywne wyszukiwanie. Server - GUI serwera oraz fabryka klientów.

42 Omówienie programu Q2R Klasy klienta Q2R - GUI
NetworkInterface - utrzymuje połączenie kontrolne z serwerem Download i Upload- wątki pobierające / wysyłające plik od / do innego klienta.

43 Co można dodać... Połączenia kontrolne między klientami
Kolejkowanie żądań Dzielenie plików na części


Pobierz ppt "Kamil Rembalski Kostynowicz Jakub"

Podobne prezentacje


Reklamy Google