211service.com
Popychanie peer-to-peer
Jeśli powiem peer-to-peer, prawdopodobnie zaczniesz myśleć o tych usługach udostępniania plików, które pozwalają Ci uzyskać darmową muzykę, filmy i pornografię przez Internet. Ale peer-to-peer to znacznie więcej niż łamanie praw autorskich wielkich wytwórni płytowych.
Rzeczywiście, chociaż termin ten został ukuty zaledwie kilka lat temu, peer-to-peer jest tak naprawdę sposobem, w jaki Internet został pierwotnie zaprojektowany do działania. Teoria zakładała, że wszystkie komputery w sieci będą obywatelami pierwszej klasy, z których każdy będzie w stanie dzielić się zasobami lub wymieniać między sobą informacje. Wtedy student MIT mógł zacząć pisać na komputerze w Cambridge i używać go do logowania się na komputerze w Stanford. W międzyczasie inny student Stanford może użyć tego samego komputera do zalogowania się do pierwszego systemu na MIT. Oba komputery korzystałyby jednocześnie i oferowałyby usługi w sieci. Połączenia między nimi byłyby powiązaniami między równymi, czyli peer-to-peer.
Jak się okazuje, większość internetu nie stała się systemem peer-to-peer. Zamiast tego sieć ewoluowała według innego modelu. Tanie komputery, zwane klientami, były rozprowadzane na biurkach ludzi. Maszyny te służyły do uzyskiwania dostępu do usług oferowanych przez droższe scentralizowane komputery, zwane z braku lepszego słowa serwerami. Niektóre z najwcześniejszych systemów klient-serwer umożliwiają użytkownikom udostępnianie plików poprzez umieszczanie ich na scentralizowanych serwerach plików. Serwery były również idealnym miejscem do umieszczenia poczty elektronicznej.
W dzisiejszych czasach klientami Internetu są komputery stacjonarne i laptopy, które wszyscy tak dobrze znamy. Serwery to serwery sieci Web, serwery poczty, serwery wiadomości błyskawicznych i inne serwery, na których polegają nasi klienci. Za kulisami działa jeszcze więcej serwerów, takich jak serwery DNS obsługujące internetowy system nazw domen, serwery routingu używane do przesyłania ruchu głosowego przez sieć (tzw. systemy Voice-over-IP), a nawet serwery dla firm, które chcą tworzyć kopie zapasowe swoich komputerów przez sieć. Model klient-serwer odniósł taki sukces, ponieważ jest dość łatwy do zrozumienia, skonfigurowania i utrzymania.
Ale jest duży problem z architekturą klient-serwer: jest podatna na ataki. Kiedy jeden serwer ulegnie awarii, wszyscy klienci, którzy na nim polegają, w zasadzie przestaną działać. Możesz zminimalizować ten problem, mając wiele serwerów, ale wtedy musisz upewnić się, że wszystkie pozostają zsynchronizowane. W rzeczywistości serwer nawet nie musi się wyłączać — wystarczy przerwa w sieci.
Peer-to-peer to fundamentalnie inny sposób myślenia o sieci oparty nie na pojęciach klientów i serwerów, ale na współpracy i kolaboracji. System kopii zapasowych peer-to-peer może wykorzystać całą dodatkową przestrzeń na dyskach twardych w całej organizacji do przechowywania dodatkowych kopii krytycznych dokumentów i osobistej poczty e-mail; system publikowania w sieci Web typu peer-to-peer może używać tych samych dysków twardych do przechowywania kopii witryn sieci Web. Teoria mówi, że tysiąc słabych klientów wciąż jest szybszych niż najszybszy serwer na świecie.
Niestety, połączenie systemów peer-to-peer może być trudne. Najprostszym sposobem na zbudowanie takiego węzła jest zgłoszenie przez każdy węzeł swojej obecności do centralnego serwera. Osoby, które chcą dołączyć do sieci, logują się do centralnej maszyny, za jej pomocą znajdują swoich rówieśników. Chociaż to działa, nie jest to prawdziwy peer-to-peer: zamknij serwer centralny, a system się zawali.
Dlatego większość badań akademickich nad systemami peer-to-peer koncentruje się na budowaniu systemów, które działają bez scentralizowanej kontroli. To jest trudniejsze! Komputery muszą być w stanie wykryć pojawiających się nowych partnerów i być tolerancyjnymi w przypadku awarii. Czasami sieć rozpada się na dwie lub więcej części. Dane muszą być przechowywane w wielu lokalizacjach. Aby uzyskać dodatkowe wyzwanie, spróbuj poradzić sobie z potencjalnie wrogimi rówieśnikami, którzy udają dobrych.
Całe to doświadczenie może się naprawdę opłacić za dziesięć czy piętnaście lat. Rozważ te przykłady:
- Jednym z najsłabszych punktów Internetu jest obecnie system nazw domen, zarządzany przez luźną konfederację serwerów nazw. Uruchomienie DNS nad systemem peer-to-peer może znacznie poprawić jego niezawodność.
- Dzisiaj, jeśli Twoja firma prowadzi mały serwer sieci Web, a witryna nagle stanie się bardzo popularna, serwer może ulec awarii z powodu całego dodatkowego ruchu. Ale gdyby wszystkie komputery w Internecie były częścią globalnej pamięci podręcznej sieci peer-to-peer, małe firmy i osoby prywatne mogłyby publikować swoje materiały rzeszom. Dobry system zapobiegłby nawet złośliwym modyfikacjom zawartości stron internetowych, gdy były one udostępniane z innych komputerów.
- W przypadku ataku terrorystycznego na infrastrukturę internetową, system peer-to-peer miałby znacznie większe szanse na odzyskanie sprawności niż system zależny od kontroli odgórnej.
Ściśle związana z ideą peer-to-peer jest koncepcja sieci nakładkowej. Są to sieci komputerów, które działają nad Internetem, z bezpośrednimi łączami między komputerami, które mogą być geograficznie oddalone w samym Internecie. Gnutella, Kasaa i Morpheus to sieci nakładkowe, podobnie jak globalna sieć serwerów WWW obsługiwana przez Akamai.
Aby zrozumieć, dlaczego sieci nakładkowe są interesującym pomysłem, najpierw musisz zrozumieć, jak działa Internet bez nich. Zwykle, jeśli komputer w Waszyngtonie chce otworzyć połączenie z komputerem w Tokio, po prostu wysyła pakiety danych do ogromnej zupy, jaką jest Internet. Ostatecznie pakiety kończą na drugim końcu.
Teraz, zgodnie z pierwotnym projektem Internetu, pakiety między komputerem w Waszyngtonie a komputerem w Tokio automatycznie podróżowałyby najszybszą i najbardziej wydajną ścieżką. Niestety dzisiejszy Internet tak nie działa. Twój dostawca usług internetowych w Waszyngtonie może mieć ukochaną umowę z dostawcą usług internetowych w Anglii na wymianę pakietów przez Ocean Atlantycki. Angielski dostawca usług internetowych może z kolei zawrzeć umowę z dostawcą usług internetowych w Niemczech. Niemiecki dostawca usług internetowych może mieć specjalną linię, która prowadzi do Japonii, ale ta linia może być nadmiernie subskrybowana i powolna. Może się okazać, że najszybszym sposobem na przetransportowanie pakietów z Waszyngtonu do Tokio jest wysłanie ich do San Francisco, a potem do Japonii – droga, która może istnieć, ale której polityka zniechęca. To nie jest hipotetyczny przykład: taki bizantyjski routing jest powszechny w dzisiejszym Internecie.
Sieci nakładkowe zmuszają Internet do innego trasowania pakietów, przenosząc je między określonymi komputerami. Na przykład możesz mieć sieć nakładkową składającą się z komputera w Waszyngtonie, innego w San Francisco i innego w Tokio. Wysyłając pakiety z jednego komputera do drugiego, możesz złamać zasady routingu swojego dostawcy usług internetowych i zmusić pakiety do podążania wybraną ścieżką.
Jeśli masz dostęp do komputerów w więcej niż jednej lokalizacji, być może sam doświadczyłeś cudów sieci nakładkowych. Na przykład mam komputer w Belmont, MA, inny w Cambridge, a drugi w Bostonie. Każda maszyna jest obsługiwana przez innego dostawcę usług internetowych. Czasami nie mogę otworzyć połączenia między komputerem w Belmont a komputerem w Bostonie. W tych czasach mogę skakać z Belmont do Cambridge, a potem z Cambridge do Bostonu. Zasadniczo stworzyłem własną sieć nakładek.
Większość systemów peer-to-peer tworzy sieci nakładkowe w locie, ilekroć trzeba przezwyciężyć przeciążenie lub problemy z routingiem w podstawowym Internecie. Sieci nakładkowe są również doskonałym miejscem dla naukowców do eksperymentowania z nowymi algorytmami routingu — algorytmami zbyt nowymi i nieprzetestowanymi, aby mogły swobodnie korzystać z infrastruktury internetowej.
Komunikacja peer-to-peer to całkiem potężna sprawa. To, co widzieliśmy do tej pory – systemy naruszania praw autorskich – to tak naprawdę dopiero początek. Komunikacja peer-to-peer może przezwyciężyć wiele podstawowych problemów, z którymi boryka się dzisiejszy Internet, a są to problemy związane ze scentralizowaną kontrolą, podatnymi na ataki serwerami oraz trudnościami, z jakimi ma do czynienia większość organizacji. Z drugiej strony sieć peer-to-peer może również pogorszyć problemy z bezpieczeństwem Internetu, umożliwiając hakerom tworzenie sieci ataków na dużą skalę. Komunikacja peer-to-peer może być dobrodziejstwem dla artystów i przemysłu nagraniowego, dając im sposób na publikowanie i rozpowszechnianie ich własności intelektualnej za znacznie mniej niż obecnie. Jednak lepsze systemy peer-to-peer mogą jeszcze bardziej zaszkodzić firmom nagraniowym – i to nie tylko z powodu łamania praw autorskich.
Już dzisiejsze sieci peer-to-peer wykonują lepszą pracę w dystrybucji muzyki niż wytwórnie; sieci nowej generacji mogłyby wdrożyć systemy promocji, a nawet wspólne filtrowanie, aby użytkownicy mogli bardziej efektywnie znajdować muzykę, którą chcą usłyszeć. Systemy peer-to-peer mogłyby nawet działać jako rodzaj internetowego systemu radiowego, eliminując potrzebę słuchania radia i towarzyszącej mu payoli. Taki był zasadniczo plan Napstera, o czym wytwórnie płytowe dowiedziały się podczas procesu odkrywania podczas procesu sądowego. Prawdziwe zagrożenie, jakie peer-to-peer stanowi dla wytwórni płytowych, polega na tym, że może to sprawić, że staną się przestarzałe.
W ostatecznym rozrachunku technologia peer-to-peer polega na zwiększeniu niezawodności i redundancji systemów internetowych. Właśnie dlatego przemysł nagraniowy się tego boi, ponieważ peer-to-peer może być wykorzystywany do tworzenia sieci, których przemysł nie może zamknąć. Ale peer-to-peer może być również używany do tworzenia sieci, których nie mogą zamknąć trzęsienia ziemi, wojny i terroryści. Ostatecznie uważam, że lepiej jest próbować wzmocnić Internet, niż próbować go osłabiać.