Historia powstania technologii P2P i bezpieczeństwo
Spróbujmy pokrótce przedstawić historię powstania technologii peer-to-peer. Powstanie P2P można podzielić na trzy etapy. Pierwszym etapem był stworzony w 1999 roku Napster. Twórcą Napstera był 19-letni wówczas student Shawn Fanning. Już wkrótce po premierze program zdobył gigantyczną popularność, głównie wśród studentów. Z początku był darmową aplikacją typową dla oprogramowania P2P, jednak do swojego funkcjonowania potrzebował centralnego serwera. Niestety w związku z faktem, że użytkownicy wymieniali się w przeważającej części nielegalnymi plikami, głównie muzycznymi, popadł w kłopoty z prawem i pod naciskiem wytwórni fonograficznych przekształcił się w płatną aplikację. Obecna wersja Napstera pozwala na wyszukiwanie, zakup i pobieranie plików z muzyką, głównie na mp3. Z pierwotnej idei pozostała zasada działania, gdyż również dzisiaj pliki są udostępniane przez każdego z użytkowników, co tworzy potężną bazę utworów. Szacuje się, że jest to w chwili obecnej około 600 tysięcy plików zajmujących ponad 2500 gigabajtów pamięci. Drugim etapem była generacja programów P2P, które obecnie funkcjonują na rynku. Podstawową różnicą między aplikacjami P2P pierwszej generacji , a funkcjonującym obecnie jest decentralizacja sieci. Nie już centralnego serwera, a komputery łączą się ze sobą bezpośrednio. Nawet w przypadku wyłączenia jednego lub kilku komputerów cała sieć dalej sprawnie funkcjonuje. Użytkownicy mają bardzo bogatą możliwość wyboru programów drugiej generacji P2P. Wśród najpopularniejszych i posiadających największą liczbę aktywnych użytkowników należy wymienić takie aplikacje jak eDonkey, Kazaa, Shareaza, iMesh i wiele innych. Powoli na rynku zaczynają pojawiać się programy trzeciej generacji. Ich głównym celem jest zapewnienie w 100% anonimowości swoim użytkownikom. Popularne obecnie programy nie zapewniają takiej ochrony. Bardzo ważnym zagadnieniem w przypadku pobierania wszelkiego typu programów z sieci jest bezpieczeństwo. Niestety korzystając z aplikacji p2p musimy być świadomi zagrożeń jakie czyhają na nas w sieci. Wśród dwóch najważniejszych możemy wymienić wirusy. Wirusy są obecne wszędzie i aplikacja P2P nie jest niestety wyjątkiem. Niektóre programy wyposażone są w mechanizmy do automatycznego skanowania plików ściąganych przez użytkowników, ale większość omija ten problem. Jeżeli korzystamy z programów P2P, to powinniśmy zaopatrzyć się w dobry program antywirusowy i często go używać. Drugim problemem jest kwestia legalności plików, które pobieramy. Jeżeli ściągamy i udostępniamy materiały objęte prawami autorskimi, to musimy liczyć się z możliwością pozwania przez takie organizacje jak RIAA (Recording Industry Association of America) oraz MPAA (Motion Picture Association). Póki co działania takie są dość mało rozpowszechnione, a wręcz jednostkowe. Głośno w mediach jest tylko w przypadkach poważnych przestępstw jak np. pornografia dziecięca, przez co większość użytkowników czuje się bezkarna zapominając, że korzystając ze ściągniętych niedarmowych programów również łamie prawo.
Jednym z protokołów umożliwiających współdzielenie zasobów plikowych i wykorzystujących technikę połączeń peer-to-peer jest Direct Connect. Do swojego celu wykorzystuje koncentratory, które zawierają podstawowe informację ułatwiające nawiązanie połączenia z użytkownikiem. Twórcą tej techniki jest Jonathan Hess, wówczas w listopadzie 1999 roku uczeń szkoły średniej. Podstawowym celem aplikacji, jest współdzielenie zasobów udostępnianych z lokalnych twardych dysków zawierających aplikację klienta, innym użytkownikom sieci posiadającym tą samą aplikację. W ramach programu jest również możliwość prowadzenia rozmów z innymi osobami na wybranym koncentratorze w formie czata tekstowego zbliżonego swoją formą do IRC-a. Działanie aplikacji Direct Connect oparte jest o tekstowy protokół ADC, którego istotą było stworzenie prostych rozwiązań w implementacji zarówno dla klienta jak jak koncentratora. Takie podejście stworzyło identyczną strukturę dla połączeń typu klient-koncentrator i klient-klient, jednocześnie upraszczając przy tym implementację. Tworząc protokół ADC wiele koncepcji zostało zaczerpniętych z DCTNG, którego autorem jest Jan Vidara Kreys, protokołu NMDC i idei DC Jona Hessa. W protokole ADC wszystkie wiadomości składają ze słów zawierających cztery znaki. Pierwszy znak określa sposób przesyłania wiadomości, a pozostałe identyfikują dokonaną operację. Wiadomości te koduje się za pomocą Unicode UTF-8 w postaci znormalizowanej C. Są plany stworzenia protokołu Secure ADC wykorzystującego tunelowanie TLS podczas nawiązywania połączenia. Koncentratory Direct Connect są podstawowymi serwerami, do których podłączają się klienci. Podstawowym zadaniem koncentratorów jest dostarczenie informacji o użytkownikach, przeszukiwanie zasobów plików udostępnianych, a także rejestracja i autoryzacja użytkowników podczas wejścia na koncentrator. W chwili obecnej występuje wiele wyspecjalizowanych tematycznie koncentratorów. Jeżeli chcemy się z nimi połączyć musimy spełniać wymagania dotyczące między innymi typów i ilości udostępnianych plików. Istnieją również koncentratory dostępne tylko dla użytkowników sieci lokalnej lub hostów z podgrupy określonych adresów IP. Najważniejszym zadaniem aplikacji klienta jest możliwość udostępniania oraz ściągania zasobów udostępnionych przez innych użytkowników. Żeby tego dokonać klient nawiązuje połączenie z koncentratorem, który przekazuje podstawowe dane o innych użytkownikach. Kolejnym etapem jest już nawiązanie bezpośredniego kontaktu pomiędzy dwoma klientami, aby rozpocząć transmisję danych. Każdy klient przy tym tworzy listę plików udostępnianych, która przekazywana jest innym użytkownikom poprzez wyszukiwarkę zasobów. Aplikacje serwera umożliwiają utworzenie koncentratora przez każdego użytkownika, którego sprzęt oraz łącze internetowe jest gotowe obsłużyć ruch generowanych do i od serwera. Mamy obecnie kilka programów umożliwiających uruchomienie serwera na własnym komputerze oraz prowadzenie nadzoru na prawidłowym funkcjonowaniem koncentratorów.
Idea sieci P2P (peer-to-peer – równy z równym) powstała w celu umożliwienia elektronicznego rozpowszechniania danych. Stanowiła ona odpowiedź na scentralizowany model Internetu, który uniemożliwiał użytkownikom pobieranie takich zasobów jak chronione przez prawa autorskie pliki mp3 czy filmy. W dobie rosnącego zainteresowania darmowym pozyskiwaniem plików multimedialnych z Internetu niemal niezbędne stało się stworzenie sieci P2P, która zaspokoiłaby rosnące apetyty użytkowników. Model sieci P2P zapewnia wszystkim użytkownikom te same prawa (stąd jego nazwa), tak, więc każdy komputer podłączony do tej sieci może pełnić rolę zarówno klienta jak i serwera. Pobierając i instalując na komputerze odpowiednią aplikację, możemy bez żadnych przeszkód czerpać z zasobów pozostałych użytkowników sieci, jednocześnie udostępniając im nasze dane multimedialne zgromadzone na naszym dysku. Dzięki sieci P2P uzyskujemy dostęp do treści, których zwykle nie znajdziemy na publicznych serwerach WWW. Nierzadko możemy pozyskać materiały trudne do zdobycia, stare utwory muzyczne, filmy anime, unikatowe nagrania z koncertów, piosenki mniej znanych zespołów czy wersje elektroniczne trudno dostępnych książek. Sieć P2P stanowi więc niewyczerpane źródło zasobów dla prawdziwych kolekcjonerów plików multimedialnych, bo dzięki niej mogą uzupełnić swoje zbiory o perełki, których nie byliby w stanie zdobyć w inny sposób. Rozwój sieci P2P jest ściśle powiązany z rosnącym zapotrzebowaniem internatów na darmowe pliki multimedialne. Do dnia dzisiejszego powstało wiele systemów P2P. Nalezą do nich takie sieci jak: IRC, Napster, eDonkey, FastTrack, Freenet, Direct Connect, Audiogalaxy, Gnutella czy Skype. Funkcjonują one według dwóch systemów, posiadając lub nie posiadając serwera centralnego. Oczywiście z punktu widzenia użytkownika lepsze są te, które posiadają takowy serwer, gdyż przechowywane są na nim dane o wszystkich podłączonych użytkownikach oraz indeksy dostępnych plików. To znacznie ułatwia poszukiwania upragnionego pliku oraz komunikację pomiędzy użytkownikami, ponieważ serwer centralny zwykle oferuje dodatkową usługę w postaci czata. Dzięki temu mamy możliwość uprzyjemnienia sobie czasu oczekiwania na ściągany plik pogawędką z innymi użytkownikami oraz poinformowania innych o poszukiwanym zbiorze danych. Sporym problemem P2P jest duża ilość chętnych do ściągania zasobów, zaś mała do ich udostępniania. Dlatego wiele sieci wprowadziło obowiązek udostępnienia pewnej ilości danych, aby w ogóle można było zacząć korzystać z zasobów innych użytkowników. Do takich sieci należy np. Direct Connect, której regulamin nakazuje udostępnić minimalną ilość zasobów, zwykle w przedziale 2-10GB. Kolejnym mankamentem sieci P2P jest przerywanie pobierania pliku, gdy udostępniający go użytkownik rozłącza się z serwerem. Sytuacja ta skazuje pobierającego na niepewność aż do momentu pobrania całego pliku. Nowsze sieci P2P oferują pełna automatyzację procesu pobierania i same wyszykują inne źródło danych, po czym wznawiają pobieranie pliku od nowo znalezionego użytkownika. Jednak pomimo tych niegodności sieci P2P SA dzisiaj najpopularniejszym źródłem pozyskiwania plików multimedialnych, a zainteresowanie nimi stale rośnie. Ciągłe ich udoskonalanie i dodawanie kolejnych usług powiększa wciąż grono ich użytkowników, zwiększając tym samym indeks zasobów dostępnych w Internecie. Nie ma dziś chyba osoby, która nie skorzystałaby z dobrodziejstw darmowych plików dostępnych w sieciach P2P.
eMule (osiołek) jest typowym przykładem programu w architekturze peer-to-peer, działającym pod systemem Windows oraz Linuks (jako xMule). Jest dzisiaj jednym z najpopularniejszych i najbardziej godnych zaufania klientów P2P. Nad jego udoskonaleniem i rozbudową bezustannie pracuje wielu programistów, a wszystko to dzięki promowanej przez niego polityce Open Source. Obecnie projekt obsługiwany jest przez 16 osób, z czego aż 12 jest testerami. Czuwają oni nad bezpieczeństwem ściąganych plików, aby były wolne od programów Adware, Spyware itp. oraz by nie zawierały żadnych błędów. Dodatkową, ogromną zaletą Mule, jest możliwość podglądu zasobów, zanim są one całkowicie pobrane. Pozwala to użytkownikowi kontrolować na bieżąco, czy ściąga właściwy plik i uniknąć niepotrzebnego rozczarowania. Program eMule pozwala pobierać bardzo różnorodne zasoby, od plików tekstowych poczynając, przez audio, video, grafikę, aż na obrazach płyt kończąc. W celu lepszej komunikacji pomiędzy użytkownikami i przyspieszeniu przepływu informacji, eMule udostępnia wbudowany kanał IRC, pozwalający porozumiewać się osobom z całego świata. Co więcej, istnieje tez możliwość dodawania innych użytkowników do swoich znajomych, co pozwala na bieżąco śledzić kto aktualnie jest online. Aby uniknąć sytuacji, gdy klient jedynie pobiera pliki nie udostępniając wcale swoich zasobów, eMule wprowadził skuteczny system kredytowania. Nagradza on użytkowników, którzy udostępniają najwięcej danych, a tym samym najbardziej wzbogacają indeks zasobów serwera. Im więcej użytkownik wysyła danych do innego użytkownika, tym szybciej będzie mógł pobrać jego zasoby. Polityka programu eMule egzekwuje od swoich użytkowników udostępnianie plików także na inne sposoby. Pliki większe niż 9500 kB ściągane są w częściach, a każda z części zostaje automatycznie udostępniona innym użytkownikom, mimo iż cały plik nie został jeszcze pobrany. Innym sposobem jest uniemożliwienie użytkownikowi zmniejszenia prędkości wysyłania danych do wartości mniejszej niż ¼ prędkości, z jaką sam pobiera pliki. W sytuacjach ekstremalnych, klienci jedynie pobierający, a nieudostępniający zasobów, są blokowani przez mody eMule. Dzięki tym restrykcyjnym zasadom program eMule podtrzymuje zasadę równy z równym, według której funkcjonują sieci P2P. Pomimo mogących zniechęcić obostrzeń w regulaminie, średnia ilość użytkowników eMule sięga 20 milionów. Taka ilość osób udostępniających swoje zasoby, znacznie zwiększa prawdopodobieństwo odszukania rzadkich, unikatowych plików. Od momentu powstania eMule w 2002 roku, został on ściągnięty z serwisu Source Forge ponad 325 milionów razy. W statystyce tego serwisu eMule plasuje się niezmiennie na pierwszym miejscu listy najczęściej ściąganych projektów. Łatwość obsługi, liczne udogodnienia, dodatkowe usługi, bogaty indeks zasobów oraz dostępność i brak opłat za użytkowanie zwiększają wciąż rosnącą popularność eMule i motywują jego twórców do wprowadzania kolejnych usprawnień. Nie dziwi więc fakt, że najnowsze wersje eMule zostały wzbogacone o obsługę sieci Kad, wyszukiwanie Unicode, pozwalające stosować w wyszukiwanych frazach znaki spoza alfabetu łacińskiego. Znacznie poprawiono też bezpieczeństwo eMule ograniczając uprawnienie niektórych użytkowników i wprowadzając system inteligentnego wyłapywania błędów w ściąganych plikach. Dużą zaletą jest też możliwość zmiany języka aplikacji na Polski, co czyni program przystępniejszym dla naszych rodaków.