Articles

Współdzielenie P2P: How it Works and the Future

Jak działa współdzielenie P2P i co ma do zaoferowania dla przyszłości Internetu

BitTorrent jest jednym z najpopularniejszych używanych protokołów sieciowych P2P. Gnutella jest jednym z takich protokołów, który istniał przed BitTorrentem. Mówiąc o P2P, ma on ponad 40% udziału w całkowitym ruchu w Internecie (źródło). Choć na myśl przychodzi nam oprogramowanie „BitTorrent”, idea torrentingu jest znacznie szersza i bardziej złożona niż samo narzędzie. Co więcej, BitTorrent to nazwa protokołu, który jest używany do przesyłania plików P2P.

Przykłady.
Photo by Alina Grubnyak on Unsplash

W typowym scenariuszu transmisji plików, który zdarza się w Internecie, użytkownik albo wysyła plik, albo pobiera go z publicznie dostępnego serwera. Jednak w P2P wysyłanie/odbieranie plików odbywa się pomiędzy dwoma lub więcej stronami, które nie są ściśle publiczne w Internecie. Stąd też nazywa się to P2P lub peer to peer. Interesującą cechą tego podejścia jest to, że nie jest wymagany żaden serwer.

Jeśli kiedykolwiek natknąłeś się na BitTorrent, uTorrent, Vuze lub Limewire, prawdopodobnie korzystałeś z wymiany plików P2P. WebRTC to kolejna technologia komunikacji P2P, choć bezpośrednio nie ma z nią nic wspólnego. Jest ona głównie używana do strumieniowego przesyłania treści w przypadkach takich jak połączenia wideo itp.

Dlaczego?

Współdzielenie P2P jest zawsze zdecentralizowane. Co jest dość tanie w dużej skali. Ponadto, różne rodzaje warstw szyfrowania mogą być praktykowane dla lepszej anonimowości. Wiąże się to z nieuniknionym negatywnym aspektem naruszeń praw autorskich i nielegalnych treści, które są udostępniane. Z technicznego punktu widzenia, technologia ta jest fascynująca do studiowania.

Server Based vs P2P (źródło)

P2P jest tani i samowystarczalnywystarczające przez społeczność użytkowników

Jak działa Limewire/Gnutella

Fascynującym faktem dotyczącym Limewire jest to, że użytkownicy mogą wyszukiwać pliki na cudzych komputerach i łatwo je pobierać. Poszukajmy dystrybucji Ubuntu w Limewire. Zauważ, że najnowsza wersja Limewire nazywa się uWire.

Screenshot: by Author

Podajemy 3 wyniki wyszukiwania. Dla każdego wyniku wyświetlana jest liczba plików. Dla każdego pliku, możemy zobaczyć liczbę bezpośrednich źródeł pobierania. Jest to liczba użytkowników posiadających ten plik.

Wyszukiwanie w Limewire (który używa Gnutelli) odbywa się w następujący sposób, oczywiście w bardzo prostych krokach.

  1. W momencie gdy użytkownik uruchamia program, musi nawiązać połączenie z przynajmniej jednym innym węzłem. Węzły takie są albo dołączane do oprogramowania, albo znajdowane za pomocą różnych innych kanałów. Całkiem podobnie jak w BitTorrencie odkrywane są trackery. W późniejszych wersjach odbywa się to za pomocą serwera startowego, który pomaga w nawiązaniu pierwszego połączenia. Możliwych zobowiązań prawnych uniknięto tylko poprzez ograniczenie użycia do odkrywania węzłów, a nie plików (ogromny problem na początku 2000 roku, który zabił wiele systemów wymiany plików).
  2. Klient łączy się z jednym takim węzłem z poprzedniego kroku, a następnie łączy się z kilkoma innymi węzłami.
  3. Gdy zapytanie zostanie zainicjowane, klient przekaże je do połączonych węzłów. Następnie podłączone węzły prześlą je do swoich podłączonych węzłów.
  4. Liczba węzłów jest ograniczona do 4 (źródło). Pomaga to uniknąć zbyt dużego przeciążenia.

Sieć składa się z Ultrapeerów, którzy mają lepsze i spójne połączenia. Takie węzły utrzymują połączenia również z kilkoma innymi Ultrapeerami. W przeszłości, wyniki dla zapytań wysyłane były tą samą drogą. Obecnie jednak odpowiedzi są przesyłane bezpośrednio przez Ultrapeers za pośrednictwem UDP. Klasyczna architektura wyszukiwania w Gnutelli jest przedstawiona poniżej.

Wykonanie zapytania Gnutelli (źródło)

Przyszłość wymiany plików P2P

Wymiana plików przez P2P jakby podupadła wraz z implikacjami prawnymi i brakiem publicznych IP. Jednak to może się zmienić wraz z nadejściem IPV6 i tak wielu urządzeń wearables.

Jednakże P2P jest bardziej popularne niż kiedykolwiek, biorąc pod uwagę ilość wideokonferencji, które prowadzimy. Udostępnianie plików P2P jest teraz bardzo powszechne wraz z pojawieniem się urządzeń typu Personal Cloud. Jednym z głównych wąskich gardeł, które istniały przy korzystaniu z komunikacji P2P do osobistego dzielenia się plikami była ograniczona przepustowość łącza. W takim przypadku możliwe było równoległe pobieranie fragmentów z wielu serwerów. Teraz jednak to samo można zrobić za pomocą jednego połączenia o wysokiej przepustowości. To jest zrzut ekranu z mojego osobistego urządzenia w chmurze na stronie ustawień.

Screenshot: by Author

W tym przypadku jestem połączony z mojego biura do domu za pomocą bezpośredniego połączenia. Z tą różnicą, że nie jesteśmy dosłownie rówieśnikami. Ale technologia jest bardzo podobna do tej stosowanej w BitTorrencie. Mechanizm przekierowania portów jest inicjowany przez serwery w Western Digital dość podobnie jak w przypadku trackera Torrenta lub w Gnutelli – serwera startowego. Tracker, który śledzi urządzenia w chmurze, które są online.

Screenshot: by Author from WD

Główną korzyścią jest tutaj to, że tak długo, jak moje połączenie domowe jest dobre, mam natychmiastowy dostęp do moich danych bez konieczności przesyłania ich do usługi takiej jak Google. Prawie to samo robi Torrent. Podziel się swoim plikiem bez chmury.

Jednakże w przypadku mojego urządzenia w chmurze, mają one kilka rozwiązań do tworzenia kopii zapasowych, aby mieć lepszą niezawodność. Czasami, bezpośrednie połączenia nie mogą być inicjowane przez firewalle (rzadko) i niektóre stare NATy (główny winowajca).

P2P Wymiana plików lub Limewire nie jest martwa!

Żaden z protokołów nie był nielegalny. Tylko przypadki ich użycia były! Obecnie, są one wykorzystywane do lepszego i osobistego użytku, biorąc pod uwagę poprawę przepustowości sieci. P2P computing jest również wykorzystywany w sieciach CDN (Content Delivery Networks) do synchronizacji treści. Czasami, jest on używany w chmurze obliczeniowej dla różnych przypadków, takich jak udostępnianie danych i tworzenie kopii zapasowych.

P2P computing jest następcą P2P, gdzie moc obliczeniowa jest współdzielona. Jednym z takich przykładów jest crowdsourcowa analityka danych, np. badania nad rakiem. Bezczynne urządzenia mobilne biorą udział w ogromnych rozproszonych zadaniach obliczeniowych poprzez dzielenie się danymi pomiędzy nimi dla lepszej przyszłości ludzkości.

Ciekawa lektura;

Mam nadzieję, że podobało Ci się czytanie tego artykułu. Życzę miłego dnia! Na zdrowie!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *