Wprowadzenie
W sieci komputerowej, P2P jest technologią wymiany plików, pozwalającą użytkownikom na dostęp głównie do plików multimedialnych takich jak filmy, muzyka, e-booki, gry itp. Poszczególni użytkownicy w tej sieci nazywani są peerami. Poszczególni użytkownicy w tej sieci nazywani są peerami. Peery żądają plików od innych peerów poprzez ustanowienie połączeń TCP lub UDP.
Jak działa P2P (Przegląd)
Sieć peer-to-peer pozwala sprzętowi komputerowemu i oprogramowaniu komunikować się bez potrzeby korzystania z serwera. W przeciwieństwie do architektury klient-serwer, nie ma centralnego serwera do przetwarzania żądań w architekturze P2P. W architekturze peer-to-peer nie ma centralnego serwera do przetwarzania żądań.
Gdy jeden peer zgłasza żądanie, możliwe jest, że wiele peerów posiada kopię żądanego obiektu. Teraz problem polega na tym, jak uzyskać adresy IP wszystkich tych peerów. Decyduje o tym architektura, w którą wyposażone są systemy P2P. Za pomocą jednej z tych metod, klient peer może dowiedzieć się o wszystkich peerach, które mają żądany obiekt/plik i transfer pliku odbywa się bezpośrednio między tymi dwoma peerami.
Trzy takie architektury istnieją:
- Centralized Directory
- Query Flooding
- Exploiting Heterogeneity
1. Scentralizowany katalog
- Jest to nieco podobny do architektury serwera klienta w tym sensie, że utrzymuje ogromny centralny serwer, aby zapewnić usługi katalogowe.
- Wszystkie rówieśnicy informują ten centralny serwer o ich adres IP i pliki, które udostępniają do udostępniania.
- Serwer odpytuje rówieśników w regularnych odstępach czasu, aby upewnić się, czy rówieśnicy są nadal podłączone lub nie.
- Więc w zasadzie ten serwer utrzymuje ogromną bazę danych dotyczących, który plik jest obecny na które adresy IP.
Working
- Teraz, gdy żądający peer przychodzi, wysyła zapytanie do serwera.
- Ponieważ serwer posiada wszystkie informacje o peerach, zwraca adresy IP wszystkich peerów posiadających żądany plik do peera.
- Teraz transfer pliku odbywa się pomiędzy tymi dwoma peerami.
Pierwszym systemem, który wykorzystał tą metodę był Napster, do celów dystrybucji Mp3.
Poważnym problemem z taką architekturą jest to, że istnieje jeden punkt awarii. Jeśli serwer się zawiesi, zawiesi się cała sieć P2P. Ponadto, ponieważ całe przetwarzanie ma być wykonywane przez jeden serwer, więc ogromna ilość baz danych musi być utrzymywana i regularnie aktualizowana.
2. Query Flooding
- W przeciwieństwie do scentralizowanego podejścia, ta metoda korzysta z systemów rozproszonych.
- W tym, peery mają być połączone w sieci nakładki. Oznacza to, że jeśli istnieje połączenie/ścieżka od jednego peera do drugiego, jest to część tej sieci overlay.
- W tej sieci overlay, peery są nazywane węzłami, a połączenie między peerami jest nazywane krawędzią między węzłami, co skutkuje strukturą grafu.
Working
- Teraz, gdy jeden peer żąda jakiegoś pliku, to żądanie jest wysyłane do wszystkich sąsiednich węzłów, tj. do wszystkich węzłów, które są podłączone do tego węzła. Jeśli węzły te nie posiadają żądanego pliku, przekazują zapytanie do swoich sąsiadów i tak dalej. Jest to nazywane zalewaniem zapytaniami (ang. query flooding).
- Gdy zostanie znaleziony węzeł z żądanym plikiem (określany jako trafienie zapytania), zalewanie zapytaniami zatrzymuje się i odsyła on nazwę pliku oraz jego rozmiar do klienta, podążając tym samym ścieżką odwrotną.
- Jeśli istnieje wiele trafień zapytania, klient wybiera jednego z tych peerów.
Gnutella była pierwszą zdecentralizowaną siecią peer to peer.
Ta metoda ma również pewne wady, np. zapytanie musi być wysłane do wszystkich sąsiednich peerów, chyba że zostanie znalezione dopasowanie. Zwiększa to ruch w sieci.
3. Wykorzystanie heterogeniczności
- Ta architektura P2P wykorzystuje oba wyżej omówione systemy.
- Przypomina ona system rozproszony, taki jak Gnutella, ponieważ nie ma centralnego serwera do przetwarzania zapytań.
- Ale w przeciwieństwie do Gnutelli, nie traktuje wszystkich równych sobie. Osoby z większą przepustowością i łącznością sieciową mają wyższy priorytet i są nazywane liderami grupy/super węzłami. Reszta rówieśników są przypisane do tych super nodes.
- Te super węzły są połączone i rówieśnicy w ramach tych super węzłów informują swoich odpowiednich liderów o ich łączności, adres IP i pliki dostępne do udostępniania.
KaZaA technologia jest taki przykład, który wykorzystuje Napster i Gnutella zarówno.
Tak więc, indywidualnych liderów grup wraz z ich rówieśników dzieci tworzą Napster-jak struktura. Te liderzy grup następnie połączyć między sobą, aby przypominać Gnutella-jak struktura.
Working
- Ta struktura może przetwarzać zapytania na dwa sposoby.
- Pierwszym z nich jest to, że super węzły mogą skontaktować się z innymi super węzłami i połączyć ich bazy danych z własną bazą danych. W ten sposób superwęzeł ma teraz informacje o dużej liczbie rówieśników.
- Inne podejście polega na tym, że gdy pojawia się zapytanie, jest ono przekazywane do sąsiednich superwęzłów aż do znalezienia pasującego, tak jak w Gnutelli. Tak więc zalewanie zapytaniami istnieje, ale w ograniczonym zakresie, ponieważ każdy superwęzeł ma wiele dzieci-rówieśników. Stąd, taki system wykorzystuje heterogeniczność superwęzłów poprzez wyznaczenie niektórych z nich jako liderów grupy/ superwęzłów, a innych jako ich dzieci.
References- Computer Networking:A Top Down Approach By James F. Kurose
Ten artykuł został napisany przez Arushi Dhamija. Jeśli podoba Ci się GeeksforGeeks i chciałbyś się do niego przyczynić, możesz również napisać artykuł używając contribute.geeksforgeeks.org lub wysłać swój artykuł na adres [email protected]. Zobacz, jak twój artykuł pojawia się na stronie głównej GeeksforGeeks i pomóż innym Geekom.