thumb|Schemat przedstawiający sieć typu P2P thumb|Schemat przedstawiający sieć z jednym, centralnym serwerem. Peer-to-peer (P2P, dosł. „równy z równym”) – model komunikacji w sieci komputerowej zapewniający wszystkim hostom te same uprawnienia, w odróżnieniu od architektury klient-serwer.

Historia Sieci lokalne Sieci typu peer-to-peer powstały jeszcze przed erą Internetu i był to wówczas jeden z modeli sieci lokalnej. W porównaniu z drugim modelem, klient-serwer, charakteryzował się on niższą ceną i brakiem konieczności zakupu osobnego komputera (serwera) pozwalając łączyć ze sobą zwykłe komputery osobiste, wówczas najczęściej pracujące w systemie MS-DOS, po zainstalowaniu w nich kart sieciowych najczęściej w standardzie Ethernet, połączeniu odpowiednim mediumzwykle - przewodem koncentrycznym, co nie wymagało żadnych dodatkowych urządzeń takich jak koncentrator oraz instalacji oprogramowania charakterystycznego dla danego rodzaju sieci, w tym sterowników kart sieciowych, protokołów komunikacji oraz usług (takich jak udostępnianie plików czy drukarek). Powstało wiele konkurencyjnych sieci tego typu, do najbardziej znanych należały Netware Lite wyprodukowany przez przedsiębiostwo Novell oraz Lantastic stworzony przez Artisoft.

Internet Pierwotnie idea Internetu była zbliżona do sieci P2P – wszystkie hosty pełniły równorzędną rolę w procesie wymiany danych. W wyniku gwałtownego rozwoju, symetria Internetu została złamana. Rolę dystrybutorów przejęły przedsiębiorstwa i instytucje, które było stać na utrzymanie stałych łączy o bardzo dużej przepustowości i zakup silnych komputerów, zdolnych obsługiwać ruch o dużym natężeniu.

Konsumenci informacji, których liczba od połowy lat 90. zaczęła gwałtownie wzrastać, musieli się zadowolić połączeniami modemowymi o małej przepustowości. Asymetrię umocniło pojawienie się asymetrycznych cyfrowych łączy abonenckich ADSL, które charakteryzowały się dużą szybkością pobierania informacji z Internetu i niewielką przepustowością zwrotną. Współcześnie są one najpopularniejszą formą stałego podłączenia do Internetu w przypadku komputerów klienckich.

Scentralizowany Internet ułatwiał kontrolę nad elektronicznym rozpowszechnianiem materiałów chronionych prawem autorskim. Zaostrzenie kontroli Internetu, związane m.in. z jego komercjalizacją, zbiegło się ze wzrostem zainteresowania utworami muzycznymi przekształconymi na postać cyfrową za pomocą algorytmu kompresji stratnej MP3. Kompresja pozwoliła na zmniejszenie utworów do rozmiarów umożliwiających ich dystrybucję przez Internet, nawet za pośrednictwem powolnych łączy modemowych.

Publikowanie plików muzycznych MP3 w scentralizowanym Internecie nie było możliwe, gdyż ich zawartość, w większości wypadków, naruszała prawa autorskie. Scentralizowana i stabilna struktura ułatwiała zidentyfikowanie publicznego serwera z plikami i zamknięcie go przy pomocy instrumentów prawnych. Szybko stało się jasne, że w Internecie rozumianym jako sieć stron internetowych i serwerów FTP, utrudnione jest rozpowszechnianie plików z muzyką ze względu na prawo autorskie.

Na takim gruncie jesienią 1999 pojawiła się często uważana za pierwszą, wykorzystywana do pobierania plików multimedialnych sieć P2P – Napster, założony przez Shawna Fanninga, który umożliwiał każdemu, kto pobrał i zainstalował aplikację, na udostępnienie wybranych zasobów swojego komputera innym użytkownikom w Internecie. Ważną cechą Napstera, która przyczyniła się do gwałtownej popularyzacji, była łatwość obsługi. Żeby stać się węzłem sieci nie trzeba było wykazać się żadną wiedzą techniczną.

Masowość wykorzystania sieci Napstera, a także płynność jej topologii (węzły zmieniały się w zależności od tego, kto aktualnie był zalogowany), była dla użytkowników swoistym parasolem ochronnym przed roszczeniami koncernów muzycznych, gdyż wyśledzenie wszystkich użytkowników wiązałoby się z dużymi kosztami. Ten mechanizm ochronny nadal funkcjonuje.

Działanie P2P W sieciach P2P każdy węzeł sieci zwany hostem, czyli komputer użytkownika, może jednocześnie pełnić rolę klienta i serwera. W najpopularniejszej implementacji modelu P2P, jaką są programy do wymiany plików w Internecie, każdy host spełnia rolę serwera, przyjmując połączenia od innych użytkowników sieci, oraz klienta, łącząc się i wysyłając i/lub pobierając pliki z innych hostów działających w tej samej sieci P2P. Wymiana plików jest prowadzona bezpośrednio pomiędzy hostami. Sieć P2P charakteryzuje się zmiennością struktury węzłów sieci, spowodowaną zmiennością liczby i lokalizacji sieciowej aktualnie aktywnych hostów.

Najpopularniejsze sieci P2P służą do współdzielenia plików w Internecie. Można wyróżnić dwie odmiany. Pierwszą, sieci bez centralnego serwera, które nie mają centralnej bazy o zasobach, oraz sieci z centralnym serwerem lub centralnymi serwerami, które przechowują informacje o użytkownikach podłączonych w danej chwili do sieci, oraz (w niektórych wypadkach) o udostępnianych zasobach. Centralne serwery oferują czasami także dodatkowe usługi, na przykład czat.

Sieci wyposażone w centralny serwer są znacznie bardziej efektywne, gdyż nowy użytkownik podłączający się do sieci otrzymuje na wstępie listę wszystkich użytkowników podłączonych do danego serwera, ma także dostęp (najczęściej) do indeksu dostępnych plików, który może błyskawicznie przeszukać.

Zmienna struktura sieci P2P, uzależniona od liczby podłączonych użytkowników, niesie ze sobą ryzyko odcięcia od sieci w momencie, gdy wszyscy „sąsiedzi” rozłączą się w tym samym czasie. Ze względu na zachowanie się węzłów po utracie „sąsiada” można wydzielić dwa modele sieci:

a) model pasywny – sieć nie podejmuje żadnych działań

b) model aktywny – sieć próbuje zastąpić utracone połączenie nowym, wybieranym w oparciu o specjalne protokoły, np. Lspan, UDP, HDP

Przykłady implementacji Poniżej zamieszczono przykładowe implementacje programów służących do włączania się w sieć P2P.

IRC Najprostszym w budowie systemem P2P jest P2P oparte na IRC (sam IRC nie jest zbudowany jako P2P). Na specjalnym kanale znajdują się boty polecające pliki. Można wejść na kanał i zadać zapytania, zwykle w formie !find szukany_plik lub podobnej. Boty posiadające plik pasujący do opisu drukują ich listę na kanał lub częściej w prywatnej rozmowie z szukającym. Wtedy szukający prosi o plik pisząc na kanale lub w bezpośredniej rozmowie żądanie w formie !nazwa_bota ścieżka_pliku lub podobnej. Żądania są ustawiane w kolejce i kiedy przyjdzie czas wysyłane za pomocą DCC. Niektóre boty pozwalają też na logowanie się na nich przez DCC CHAT, upodobniając się trochę do serwerów FTP. Ostatecznie jednak plik jest wysyłany przez DCC.

W DCC istnieje możliwość kontynuacji przerwanego ściągnięcia. P2P bez tej możliwości należą już do przeszłości. Zresztą dotyczy to nie tylko P2P – serwery HTTP nieposiadające tej zdolności spotyka się coraz rzadziej.

Oczywistą wadą jest to, że o wiele łatwiej jest ściągać niż udostępniać. Metoda ta nie jest też zbyt skalowalna – zwykle na kanale udostępnia jedynie kilkanaście góra kilkadziesiąt botów. Kanały są jednak tematyczne, więc ogół dostępnych zasobów może być całkiem duży. Kanały takie istnieją zarówno na ogólnych serwerach IRC, jak i na serwerach istniejących specjalnie w celu wymiany plików.

Do zalet należy m.in. automatyczne udostępnienie dobrego czatu (którym jest sam IRC), rozpowszechnienie programów do ściągania oraz to, że wiele serwerów NAT (szczególnie serwery linuksowe) potrafi analizować DCC i umożliwia tym samym odbierania połączeń DCC wszystkich komputerom w podsieci.

Napster Inny, lecz również bardzo prosty system wybrał Napster. Na komputerze należało zainstalować specjalne oprogramowanie, które łączyło się z serwerem, wysyłało mu listę udostępnianych plików (w tym przypadku tylko muzyki, lecz nowsze sieci oparte na systemie Napstera – takie jak OpenNap – umożliwiają udostępnianie również innych typów plików), i stanowiło jednocześnie interfejs użytkownika sieci P2P. Serwery Napstera umożliwiały wyszukiwanie plików. Użytkownik na podstawie listy pasujących plików wybierał, co i od kogo chce ściągać, po czym program łączył się z komputerem udostępniającym plik i ściągał go. Serwis stał się prawdziwym przebojem wśród internautów. Swą popularność zawdzięcza m.in. procesom sądowym wytaczanym przez artystów, których utwory znalazły się w Napsterze przed oficjalną premierą (przykładem „wycieku” było pojawienie się w czerwcu 2000 nieautoryzowanej wersji utworu amerykańskiej piosenkarki Madonny „Music”, co spowodowało konieczność przyspieszenia jego premiery na rynku).

Początkowo Napster nie potrafił wznawiać połączenia w razie przerwania, co skutkowało wieloma nie do końca ściągniętymi plikami. Często też takie pliki były przez nieuwagę udostępniane, przez co nawet ściągając plik do końca można było się później rozczarować. Nowsze wersje Napstera oraz wszystkie systemy pochodne mają zdolność wznawiania.

Napster wymagał serwerów centralnych, był jednak dość dobrze skalowalny i umożliwiał każdemu nie tylko ściąganie plików, ale również udostępnianie ich. Integrację użytkowników zapewniał wbudowany w program czat.

W 2001 r., po czasowym wprowadzeniu filtrów w wyszukiwarce utworów, w wyniku przegranych procesów sądowych serwis zakończył działalność, powracając jako legalny, płatny serwis pod koniec 2003 r.

Audiogalaxy Audiogalaxy jest innowacyjna nie tyle ze względu na strukturę, ile na interfejs użytkownika. Sam program P2P nie ma żadnego interfejsu. Wszystkie operacje wykonywane są za pomocą strony internetowej, która umożliwia wyszukiwanie według tytułu lub autora, po czym można wybrać wersję, żądaną jakość (łącznie z opcją „najpopularniejsza”), inne piosenki tego samego autora, autorów popularnych wśród osób ściągających piosenki danego („jeśli podobała ci się muzyka A, zapewne polubisz też B, C i D”). Posiadał też rozbudowany system forów dyskusyjnych.

Sam program P2P (tzw. satelita) również należał do lepszych i najbardziej zautomatyzowanych. Użytkownik jedynie wybierał piosenki przez WWW, cała reszta – łącznie z wyborem źródła i przełączaniem na inne, jeśli ściąganie z danego zostało przerwane – odbywało się bez interwencji użytkownika.

Pełna automatyzacja, dobra wydajność i wygodny interfejs czyniły z Audiogalaxy jeden z najlepszych systemów P2P. Jednym z kosztów była jednak bardzo wysoka specjalizacja – wiele rozwiązań, które doskonale nadawały się do muzyki, nie sprawdziłoby się w przypadku innych rodzajów danych.

W obliczu zagrożenia procesem sądowym wytoczonym przez RIAA, w maju 2002 roku zaostrzył system filtrowania utworów do pobrania (wcześniej łatwy do obejścia), po czym ostatecznie zablokował możliwość wymiany mp3 w ramach serwisu.

Gnutella Systemem, który przyjął zupełnie inną postać, była Gnutella. W Gnutelli nie ma w ogóle centralnych serwerów. Żeby połączyć się z Gnutellą należy zainstalować odpowiednie oprogramowanie i znaleźć dowolny host należący do sieci. Jeśli host nie ma wolnych miejsc, podaje adresy następnych hostów, do których można próbować się połączyć. W końcu znajduje się hosta chętnego do nawiązania połączenia. Program zachowuje listę wszystkich napotkanych hostów w sieci, dzięki czemu łatwiej będzie się podłączyć następnym razem.

Każde wyszukiwanie jest wysyłane do hostów, z którymi ma się bezpośrednie połączenie. One natomiast przesyłają je dalej. Ewentualne rezultaty wysyłane są bezpośrednio do inicjatora, podobnie sam transfer odbywa się bez pośredników.