Klient-serwer i peer-to-peer

🎯 Po co Ci to?

Gdy oglądasz film w serwisie, Twój komputer prosi potężny serwer o dane — to model klient-serwer, pod którym stoi większość internetu. Ale gdy pobierasz plik przez sieć wymiany albo grasz w grę bez centralnego serwera, komputery rozmawiają jak równy z równym — to model peer-to-peer. Te dwa modele współpracy to dwie filozofie organizacji sieci, każda z innymi zaletami, i rozpoznawanie ich pomaga zrozumieć, jak naprawdę działają usługi, których używasz. Poznałeś już klient-serwer przy bazach (12.6) — teraz zobaczysz go w szerszym kontekście i obok jego alternatywy.

✅ Czego się nauczysz

Po tej jednostce potrafisz:

  • opisać model klient-serwer i wskazać jego zastosowania oraz zalety/wady;
  • opisać model peer-to-peer i wyjaśnić, czym różni się od klient-serwer;
  • dobrać model do zastosowania i uzasadnić wybór.

🔁 Przypomnij sobie

Z 12.6: architektura klient–serwer aplikacji bazodanowej (przeglądarka → serwer → baza); z 14.1: usługi sieciowe (serwer świadczy, klient korzysta).

📘 Wyjaśnienie

Klient-serwer — jeden świadczy, wielu korzysta. W tym modelu role są rozdzielone: serwer to komputer świadczący usługę (przechowujący strony, filmy, dane), klient to komputer korzystający z niej (Twoja przeglądarka, aplikacja). Klient wysyła żądanie, serwer odpowiada.

📐 DEFINICJA — klient-serwer i peer-to-peer: klient-serwer — asymetryczny model, w którym serwer świadczy usługę wielu klientom. Peer-to-peer (P2P) — symetryczny model, w którym równorzędne komputery (peery) pełnią jednocześnie rolę klienta i serwera, wymieniając zasoby bezpośrednio.

Po ludzku: klient-serwer to restauracja (kuchnia gotuje, goście zamawiają); P2P to wspólny stół, gdzie każdy przynosi i bierze. Czym NIE jest: to nie kwestia sprzętu, lecz roli. Ten sam komputer bywa serwerem jednej usługi i klientem innej; w P2P jest obojgiem naraz.

Klient-serwer rządzi większością internetu: WWW (serwer WWW ↔ przeglądarka), poczta, streaming, chmura, gry z centralnym serwerem. Zalety: kontrola (jedno miejsce zarządza usługą, danymi, bezpieczeństwem), prostota dla klienta (nic nie musi udostępniać). Wady: serwer jest wąskim gardłem (padnie serwer — pada usługa; przeciążenie serwera = spowolnienie dla wszystkich) i kosztuje (potężne serwery, pasmo). To znajomy „pojedynczy punkt" z topologii gwiazdy (14.2).

Peer-to-peer — równi z równymi. W P2P nie ma centralnego serwera — komputery łączą się bezpośrednio, każdy udostępnia i pobiera. Klasyka: sieci wymiany plików (BitTorrent — pobierasz plik kawałkami od wielu peerów naraz, jednocześnie udostępniając to, co już masz), niektóre komunikatory, kryptowaluty (rozproszona sieć bez centralnego banku). Zalety: brak wąskiego gardła (im więcej peerów, tym więcej zasobów — sieć rośnie w siłę z użytkownikami!), odporność (nie ma centrum do wyłączenia — siatka z 14.2!), taniość (brak drogich serwerów). Wady: trudniej kontrolować, zabezpieczyć, zapewnić jakość (peery przychodzą i odchodzą); bywa nadużywany do nielegalnej wymiany treści.

💭 Pomyśl: Popularny film premierowy chce obejrzeć milion osób naraz. Porównaj obciążenie w modelu klient-serwer (jeden serwer streamingowy) i P2P (peery dzielą się kawałkami). Który lepiej znosi nagły tłum?

Sprawdź odpowiedź

Klient-serwer: serwer musi wysłać film milion razy — ogromne obciążenie pasma i mocy, przy nagłym tłumie może paść albo zwolnić (wąskie gardło!). Serwisy streamingowe radzą sobie, stawiając wiele serwerów blisko użytkowników (sieci dostarczania treści — CDN), ale to kosztuje. P2P: każdy oglądający udostępnia pobrane kawałki innym — im więcej widzów, tym więcej źródeł, więc sieć rośnie w siłę z popularnością (odwrotnie niż serwer, który się dławi!). Dlatego P2P świetnie znosi nagłe tłumy (wirusowe pliki). Wada P2P dla filmu na żywo: jakość i synchronizacja trudniejsze, brak gwarancji (peer może zniknąć). W praktyce serwisy streamingowe używają hybryd i CDN (klient-serwer zoptymalizowany), a P2P króluje tam, gdzie liczy się skala i odporność ponad kontrolę. Wybór modelu to znów kompromis: kontrola i jakość (serwer) vs skalowalność i odporność (P2P).

🌍 Powiązania

Oba modele kształtują internet, który znasz: klient-serwer to WWW, poczta, chmura, większość aplikacji (i ten system!); P2P to wymiana plików, blockchain/kryptowaluty (rozproszona księga bez centralnego banku — rewolucyjne zastosowanie P2P), część komunikatorów i sieci dostarczania treści. Napięcie między nimi — centralizacja (kontrola, wygoda) vs decentralizacja (odporność, wolność) — to jeden z wielkich tematów współczesnej informatyki i społeczeństwa: kto kontroluje dane i usługi? Blockchain i „zdecentralizowany internet" to próby przesunięcia wahadła ku P2P; wróci to w dziale 16 przy społeczeństwie cyfrowym.

🛠️ Teraz Ty

Bez komputera: dla dziesięciu usług (WWW, mail, streaming filmów, gra online, wymiana plików, kryptowaluta, wideorozmowa 1:1, chmura, komunikator grupowy, aktualizacje systemu) zaklasyfikuj model (klient-serwer / P2P / hybryda) i uzasadnij. Zwróć uwagę, ile jest hybryd — czysty model to rzadkość. Zastanów się: czemu bank NIGDY nie użyłby P2P do przechowywania sald?

📐 Definicje tej lekcji

  • Klient-serwer — serwer świadczy usługę wielu klientom; kontrola i prostota kosztem wąskiego gardła.
  • Peer-to-peer (P2P) — równorzędne peery wymieniają zasoby bezpośrednio; skalowalność i odporność kosztem kontroli.
  • Rola, nie sprzęt — ten sam komputer bywa serwerem i klientem; w P2P jest obojgiem.

📌 Najważniejsze w pigułce

  • Klient-serwer: jeden świadczy, wielu korzysta — kontrola i prostota, ale serwer to wąskie gardło (WWW, chmura).
  • P2P: równi z równymi, każdy udostępnia — rośnie w siłę z użytkownikami, odporny (wymiana plików, blockchain).
  • Wybór to kompromis kontrola/jakość (serwer) vs skalowalność/odporność (P2P); w praktyce częste hybrydy.

🎒 Zadania

  1. Zaklasyfikuj i uzasadnij: (a) przeglądanie WWW, (b) BitTorrent, (c) kryptowaluta, (d) poczta e-mail.
Wskazówka i odpowiedź

(a) klient-serwer — przeglądarka (klient) prosi serwer WWW o strony. (b) P2P — pobierasz kawałki pliku od wielu peerów, jednocześnie udostępniając. (c) P2P — rozproszona sieć węzłów utrzymuje wspólną księgę bez centralnego banku (istota blockchainu!). (d) klient-serwer — Twój program pocztowy (klient) łączy się z serwerem poczty; choć między serwerami różnych dostawców jest wymiana, z Twojej perspektywy to klient-serwer. Ćwiczenie pokazuje, że model wynika z natury usługi: gdzie trzeba kontroli i centralnych danych — serwer; gdzie liczy się skala/odporność/brak centrum — P2P.

  1. Wyjaśnij paradoks P2P: „im więcej użytkowników, tym lepiej działa" — podczas gdy serwer „im więcej użytkowników, tym gorzej". Skąd ta odwrotność?
Wskazówka i odpowiedź

Serwer ma stałą moc/pasmo dzielone między klientów — więcej klientów = mniej na każdego = wolniej (rywalizacja o wąskie gardło). W P2P każdy nowy użytkownik wnosi własne zasoby (udostępnia to, co pobrał, dokłada pasmo) — więc więcej peerów = więcej łącznych zasobów = potencjalnie szybciej. To fundamentalna różnica: serwer konsumuje się z użytkownikami, P2P rośnie z nimi. Dlatego P2P jest idealne do dystrybucji popularnych plików (im popularniejszy, tym więcej źródeł) i do sieci, które mają skalować się bez granic (blockchain). Ta odwrotność to jedna z najgłębszych zalet decentralizacji — i powód, dla którego P2P wraca w nowych zastosowaniach.

  1. Bank przechowuje salda kont. Wyjaśnij, czemu użyłby klient-serwer (z bazą, dział 12), a nie P2P — mimo że P2P jest odporniejsze. Jaki wymóg to przesądza?
Wskazówka i odpowiedź

Przesądza kontrola i integralność (12.5!): bank musi mieć jedno, autorytatywne źródło prawdy o saldach, chronione transakcjami (wszystko albo nic), z pełną kontrolą dostępu i odpowiedzialnością prawną. P2P rozprasza dane między niezaufane komputery — bank nie mógłby zagwarantować, że nikt nie sfałszuje salda ani że dane są spójne i poufne. Odporność P2P nie rekompensuje utraty kontroli nad pieniędzmi. (Ciekawostka: kryptowaluty to właśnie próba zrobienia „pieniędzy w P2P" — i wymagają skomplikowanej kryptografii, by zastąpić zaufanie do banku matematyką; działają, ale kosztem ogromnej złożoności i innych kompromisów. To pokazuje, jak trudno pogodzić decentralizację z gwarancjami, które daje centralna kontrola.) Wybór modelu wynika z tego, co jest ważniejsze: dla banku — kontrola i integralność, więc klient-serwer.

🔍 Sprawdź, czy umiesz

  • Opisać oba modele i wskazać po dwa zastosowania każdego.
  • Wyjaśnić, czemu P2P rośnie w siłę z użytkownikami, a serwer się dławi.
  • Dobrać model do usługi wg wymogów kontroli/skalowalności/odporności.

Ucz się tej jednostki z asystentem