Historia internetu: ARPANET — pakiety

Historia internetu: ARPANET — pakiety
Schemat sieci komputerowej ARPA z czerwca 1967 roku. Pusty okrąg – komputer z podzielonym dostępem, okrąg z kreską – terminal dla jednego użytkownika

Inne artykuły cyklu:

Do końca 1966 roku Robert Taylor na pieniądze ARPA uruchomił projekt łączenia wielu komputerów w jedną sieć, inspirując się ideą „międzygalaktycznej sieci» Josepha Carl Roberta Lickleitera.

Odpowiedzialność za realizację projektu Taylor przekazał w ręce Larry'ego Robertsa. W następnym roku Roberts podjął kilka kluczowych decyzji, które miały wpływ na architekturę techniczną i kulturę ARPANET oraz jej następców, w niektórych przypadkach nawet przez kilka dziesięcioleci. Pierwszą decyzją pod względem ważności, choć niechronologicznie, było określenie mechanizmu routingu wiadomości od jednego komputera do drugiego.

Problem

Jeżeli komputer A chce wysłać wiadomość do komputera B, jak ta wiadomość ma znaleźć drogę od jednego do drugiego? Teoretycznie można pozwolić każdemu węzłowi sieci komunikacyjnej kontaktować się ze wszystkimi innymi, łącząc fizycznymi kablami każdy węzeł z każdym. Aby skontaktować się z B, komputer A po prostu wyśle wiadomość po wychodzącym kablu łączącym go z B. Tego rodzaju sieć nazywa się całkowicie połączoną. Jednak przy jakiejkolwiek znacznej wielkości sieci takie podejście szybko staje się niepraktyczne, ponieważ liczba połączeń rośnie jak kwadrat liczby węzłów (ścisłej, jak (n2 - n) / 2).

Dlatego potrzebny jest jakiś sposób budowania trasy wiadomości, który po przybyciu wiadomości do węzła pośredniego dalej wysyłałby ją do celu. Na początku lat 60. znane były dwa podstawowe podejścia do rozwiązania tego problemu. Pierwsze – metoda przełączania wiadomości przez „przechowywanie i przesyłanie”. To podejście było używane przez system telegrafu. Gdy wiadomość przybyła do węzła pośredniego, tymczasowo ją tam przechowywano (zwykle w formie taśmy papierowej), aż pojawiła się możliwość dalszego przesłania jej do celu lub do kolejnego węzła pośredniego, znajdującego się bliżej celu.

Wkrótce pojawił się telefon, co wymagało nowego podejścia. Opóźnienie wynoszące kilka minut po każdym stwierdzeniu dokonanym przez telefon, które trzeba było odszyfrować i przesłać do docelowego miejsca, dawałoby wrażenie rozmowy z osobą znajdującą się na Marsie. Zamiast tego telefon korzystał z przełączania kanałów. Osoba dzwoniąca rozpoczynała każde połączenie, wysyłając specjalną wiadomość określającą, do kogo chce zadzwonić. Na początku robiło się to, rozmawiając z operatorem, a później dzwoniąc na numer przetwarzany przez sprzęt automatyczny w centrali. Operator lub sprzęt ustalali wydzielone połączenie elektryczne między dzwoniącym a odbierającym. W przypadku połączeń między miastami mogło to wymagać kilku iteracji łączących rozmowę przez kilka central. Po nawiązaniu połączenia mogła rozpocząć się sama rozmowa, a połączenie utrzymywane było, dopóki jedna ze stron go nie przerwała, odkładając słuchawkę.

Cyfrowa komunikacja, którą postanowiono wykorzystać w ARPANET do łączenia komputerów, działała na zasadzie podziału czasu, łączyła cechy zarówno telegrafu, jak i telefonu. Z jednej strony, wiadomości z danymi były przesyłane w osobnych pakietach, jak w telegrafie, a nie w postaci ciągłych rozmów na telefonie. Jednak te wiadomości mogły mieć różne rozmiary dla różnych celów, od komend konsolowych o długości kilku znaków do dużych plików z danymi przesyłanych z jednego komputera do drugiego. Jeśli pliki opóźniały się w drodze, nikt się na to nie skarżył. Ale zdalna interaktywność wymagałaby szybkiej reakcji, jak podczas rozmowy telefonicznej.

Jedną z kluczowych różnic między sieciami komputerowymi a telefonem oraz telegrafem była wrażliwość na błędy w danych przetwarzanych przez maszyny. Zmiana lub utrata jednego znaku w telegramie czy zniknięcie części słowa w rozmowie telefonicznej raczej nie mogły poważnie zakłócić komunikacji między dwoma osobami. Jednak jeśli hałas na linii spowodowałby zmianę jednego bitu z 0 na 1 w komendzie wysyłanej do zdalnego komputera, mogłoby to całkowicie zmienić sens tej komendy. Dlatego każda wiadomość musiała być sprawdzana pod kątem błędów i ponownie wysyłana w przypadku ich wykrycia. Takie powtórzenia byłyby zbyt kosztowne dla dużych wiadomości, a prawdopodobieństwo wystąpienia błędów w nich było wyższe, ponieważ były one przesyłane dłużej.

Rozwiązanie tego problemu pojawiło się dzięki dwóm niezależnym wydarzeniom, które miały miejsce w 1960 roku; jednak to z nich, które pojawiło się później, zostało zauważone jako pierwsze przez Larry'ego Robertsa i ARPA.

Spotkanie

Jesienią 1967 roku Roberts przybył do Gatlinburga w Tennessee, z powodu porośniętych lasami szczytów Great Smoky Mountains, aby dostarczyć dokument relacjonujący plany ARPA dotyczące wdrażania sieci. Pracował już prawie rok w Biurze Technologii Przetwarzania Informacji (Information Processing Technology Office, IPTO), ale wiele szczegółów dotyczących projektu sieci wciąż było dość niejasnych, w tym rozwiązanie problemu routingu. Oprócz niejasnych wzmianków o blokach i ich rozmiarach, jedynym odniesieniem do tego w pracy Robertsa była krótka i niejednoznaczna uwaga na samym końcu: „Wydaje się konieczne utrzymywanie okresowo wykorzystywanej linii komunikacyjnej w celu odbierania odpowiedzi w czasie od jednej dziesiątej do jednej sekundy, co jest niezbędne do interaktywnej pracy. Jest to dość kosztowne z punktu widzenia zasobów sieci, a tylko jeśli nie pojawi się możliwość szybszego dzwonienia, przełączanie wiadomości i koncentracja staną się bardzo ważne dla uczestników sieci”. Było oczywiste, że w tamtym czasie Roberts jeszcze nie zdecydował, czy porzucić stosowane przez siebie podejście z Tomem Marillą w 1965 roku, czyli łączenie komputerów przez sieć telefoniczną z użyciem rutynowego wybierania.

Na tym samym sympozjum obecny był również inny człowiek, z dużo lepiej przemyślaną ideą rozwiązania problemu routingu w sieciach danych. Roger Scantlebury przepłynął Atlantyk, przybywając z British National Physical Laboratory (NPL) z prezentacją. Scantlebury odciągnął Robertsa na bok po swoim wystąpieniu i opowiedział mu o swoim pomyśle. komutacji pakietówTechnologia ta została opracowana przez jego przełożonego w NPL, Donalda Davisa. W Stanach Zjednoczonych osiągnięcia i historia Davisa są mało znane, chociaż jesienią 1967 roku grupa Davisa z NPL wyprzedzała ARPA o co najmniej rok z swoimi pomysłami.

Davis, podobnie jak wielu wczesnych pionierów komputerów elektronicznych, był z wykształcenia fizykiem. Ukończył Imperial College w Londynie w 1943 roku w wieku 19 lat, a natychmiast przyjęto go do tajnego programu rozwoju broni jądrowej pod kodową nazwą Tube Alloys. Tam kierował grupą ludzi obliczeniowych, którzy używali mechanicznych i elektrycznych kalkulatorów do szybkiego dostarczania rozwiązań numerycznych problemów związanych z syntezą jądrową (jego przełożonym był Emil Julius Klaus Fuchs, niemiecki fizyk-emigrant, który w tym czasie już zaczął przekazywać tajemnice broni jądrowej do ZSRR). Po wojnie usłyszał od matematyka Johna Womersleya o projekcie, którym kierował w NPL – projekt stworzenia elektronicznego komputera, który miał wykonywać te same obliczenia z znacznie większą prędkością. Opracowany przez Alana Turinga komputer nazwał ACE, „automatyczną maszyną obliczeniową”.

Davis przyjął ten pomysł i tak szybko, jak to możliwe, dołączył do NPL. Wnosząc swój wkład w szczegółowy projekt i budowę komputera ACE, pozostał głęboko zaangażowany w obszar maszyn obliczeniowych jako lider badań w NPL. W 1965 roku zdarzyło się, że był w USA na spotkaniu zawodowym związanym z jego pracą i skorzystał z tej okazji, aby odwiedzić kilka dużych miejsc bazowania komputerów z podziałem czasowym, by zobaczyć, o co w tym szumie chodzi. W brytyjskim środowisku obliczeniowym podział czasowy w amerykańskim sensie interaktywnego współdzielenia komputera przez kilku użytkowników nie był znany. Zamiast tego, podział czasowy oznaczał rozdzielenie obciążenia komputera między kilka programów przetwarzania wsadowego (aby na przykład jeden program działał, podczas gdy inny zajęty był odczytem z taśmy). Później ten wariant nazwać będzie multi-programowaniem.

Podróże Davisa doprowadziły go do Project MAC w MIT, projektu JOSS od RAND Corporation w Kalifornii oraz do systemu podziału czasu w Dartmouth w New Hampshire. W drodze powrotnej jeden z jego kolegów zaproponował zorganizowanie seminarium na temat współdzielenia, aby opowiedzieć brytyjskiemu środowisku o nowych technologiach, o których dowiedzieli się w USA. Davis się zgodził i gościł wielu czołowych przedstawicieli amerykańskiej dziedziny obliczeniowej, w tym Fernando José Corbato (twórcę «wspólnego systemu podziału czasu» w MIT) oraz samego Larry'ego Robertsa.

Podczas seminarium (lub być może od razu po) pomysł dotyczący zastosowania filozofii podziału czasu do linii komunikacyjnych komputerów, a nie tylko do samych komputerów, zaskoczył Davidisa. Komputery z podziałem czasu przydzielają każdemu użytkownikowi krótki fragment czasu procesora, a następnie przełączają się na innych, tworząc dla każdego użytkownika iluzję posiadania własnego interaktywnego komputera. W ten sam sposób można podzielić jeden kanał komunikacji między wieloma komputerami lub użytkownikami jednego komputera, dzieląc każdą wiadomość na kawałki standardowego rozmiaru, które Davidis nazwał „pakietami”. Co więcej, rozwiązywałoby to wszystkie aspekty przesyłania danych, dla których telefonu i telekomunikacyjne przełączniki były źle przystosowane. Użytkownik pracujący z interaktywnym terminalem, wysyłający krótkie komendy i otrzymujący krótkie odpowiedzi, nie będzie zablokowany przez przesyłanie dużego pliku, ponieważ ta transmisja zostanie podzielona na wiele pakietów. Jakiekolwiek uszkodzenie takich dużych wiadomości dotknie jednego pakietu, który można łatwo przesłać ponownie, aby dokończyć wiadomość.

Davidis opisał swoje pomysły w nieopublikowanej pracy z 1966 roku zatytułowanej „Propozycja dla cyfrowej sieci komunikacyjnej”. W tamtym czasie najbardziej zaawansowane sieci telefoniczne były na progu komputerizacji przełączników, a Davidis zasugerował włączenie przełączania pakietów do telefonicznej sieci nowej generacji, tworząc jednolitą szerokopasmową sieć komunikacyjną, zdolną obsługiwać różne zapytania, od prostych połączeń telefonicznych po zdalny dostęp do komputerów. W międzyczasie Davidis został awansowany na kierownika NPL i powołał grupę do spraw komunikacji cyfrowej pod kierownictwem Scantlebury'ego, aby zrealizować jego projekt i stworzyć działającą wersję demonstracyjną.

W ciągu roku poprzedzającego konferencję w Gatlinburgu zespół Scantlebury pracował nad szczegółami stworzenia sieci z przełączaniem pakietów. Awarię jednego węzła można było załagodzić przez adaptacyjne routowanie, zdolne do pracy z wieloma ścieżkami do celu, a awarię pojedynczego pakietu można było rozwiązać przez jego ponowne wysłanie. Symulacje i analizy mówiły, że optymalny rozmiar pakietu to 1000 bajtów – jeśli byłby zbyt mały, koszty przepustowości linii na metadane w nagłówkach byłyby zbyt wysokie, a jeśli zbyt duży – czas reakcji dla użytkowników interaktywnych zbyt często wydłużałby się z powodu obszernych wiadomości.

Historia internetu: ARPANET — pakiety
Prace Scantlebury zawierały takie szczegóły, jak format pakietu...

Historia internetu: ARPANET — pakiety
…i analiza wpływu rozmiarów pakietu na opóźnienia w sieci.

W międzyczasie poszukiwania Davisa i Scantlebury doprowadziły do odkrycia szczegółowych prac badawczych innego Amerykanina, który wpadł na podobny pomysł kilka lat przed nimi. Ale w tym przypadku Paul Baran, inżynier elektryk z RAND Corporation, w ogóle nie myślał o potrzebach użytkowników komputerów z podziałem czasu. RAND był ośrodkiem analitycznym, działającym na fundusze ministerstwa obrony USA w Santa Monice w Kalifornii, założonym po II wojnie światowej w celu długoterminowego planowania i analizy problemów strategicznych na potrzeby wojska. Celem Barana było oddalenie zagrożenia wojny nuklearnej, stworzenie niezwykle niezawodnej sieci komunikacyjnej dla wojska, zdolnej przetrwać nawet dużą nuklearną agresję. Taka sieć uczyniłaby uderzenie wyprzedzające ze strony ZSRR mniej atrakcyjnym, ponieważ niezwykle trudno byłoby zniszczyć zdolność USA do odpowiedzi na wiele wrażliwych punktów. W tym celu Baran zaproponował system, który dzieliłby wiadomości na to, co nazwał blokami wiadomości, które można by niezależnie przesyłać przez sieć węzłów z nadmiarem połączeń, a następnie zbierać w punkcie końcowym.

ARPA miała dostęp do obszernych raportów Burana dla RAND, jednakże ponieważ nie były one związane z interaktywnymi komputerami, ich znaczenie dla ARPANETU nie było oczywiste. Roberts i Taylor najwyraźniej ich nie zauważyli. Zamiast tego, podczas jednego przypadkowego spotkania, Scantlebury przyniósł wszystko Robertsowi na talerzu: dobrze przemyślany mechanizm przełączania, zastosowanie do zadania tworzenia interaktywnych sieci komputerowych, materiały referencyjne od RAND oraz nawet nazwa „pakiet”. Praca NPL również przekonała Robertsa, że dla organizacji dobrej przepustowości będą potrzebne wyższe prędkości, dlatego zaktualizował swoje plany do linii komunikacyjnych o przepustowości 50 Kbit/s. W budowie ARPANET zasadnicza część problemu routingu została rozwiązana.

Prawda jest taka, że istnieje inna wersja powstania idei przełączania pakietów. Roberts później twierdził, że miał już podobne myśli, dzięki pracy jego kolegi, Lena Kleinrocka, który rzekomo opisał tę koncepcję już w 1962 roku w swojej pracy doktorskiej na temat sieci komunikacyjnych. Jednak z tej pracy ekstremalnie trudno wydobyć podobną ideę, a ja nie mogłem znaleźć żadnych innych potwierdzeń tej wersji.

Sieci, których nie było

Jak widzimy, całe dwie grupy wyprzedziły ARPA w kwestii rozwoju przełączania pakietów, technologii, która okazała się tak skuteczna, że dziś stanowi podstawę praktycznie wszystkich komunikacji. Dlaczego więc ARPANET stał się pierwszą znaczącą siecią, która ją wykorzystała?

Chodzi o organizacyjne niuanse. ARPA nie miała oficjalnego pozwolenia na stworzenie sieci komunikacyjnej, jednak istniało wiele już istniejących ośrodków badawczych posiadających swoje komputery, kultura „wolnych” obyczajów, za którą praktycznie nikt nie nadzorował, oraz całe góry pieniędzy. Początkowe zapotrzebowanie Taylora z 1966 roku na środki na stworzenie ARPANET wyniosło 1 milion dolarów, a Roberts kontynuował wydawanie tej kwoty co roku od 1969 roku na budowę i utrzymanie tej sieci. Dla ARPA były to znikome sumy, dlatego nikt z jego przełożonych nie martwił się tym, co Roberts z nimi robi, o ile można to było jakoś powiązać z potrzebami obrony narodowej.

Beran w RAND nie miał ani możliwości, ani autorytetu, aby coś zrobić. Jego praca była czysto badawcza i analityczna, a można ją było wykorzystać w obronie. W 1965 roku RAND rzeczywiście zarekomendował jego system sił powietrznych, a ci zgodzili się na wykonalność projektu. Jednak jego wdrożenie spoczęło na agencji komunikacji obronnej, gdzie nie za bardzo znali się na cyfrowych połączeniach. Beran przekonał kierownictwo w RAND, że lepiej jest zabrać tę propozycję, niż pozwolić wdrożyć ją w niezbyt przemyślany sposób i zrujnować reputację rozproszonej komunikacji cyfrowej.

Davis jako kierownik NPL miał znacznie większą władzę niż Beran, ale bardziej ograniczony budżet niż ARPA, i nie dysponował gotową siecią społeczną i techniczną z komputerami badawczymi. Udało mu się stworzyć prototyp lokalnej sieci z przełączaniem pakietów (był tylko jeden węzeł, ale wiele terminali) w NPL pod koniec lat 60., przy skromnym budżecie wynoszącym 120 000 funtów w ciągu trzech lat. ARPANET wydawał około połowy tej kwoty rocznie na funkcjonowanie i utrzymanie każdego z wielu węzłów sieci, nie licząc początkowych inwestycji w sprzęt i oprogramowanie. Organizacją, która mogła stworzyć na dużą skalę brytyjską sieć z przełączaniem pakietów, był brytyjski urząd pocztowy, zarządzający sieciami telekomunikacyjnymi w kraju, poza bezpośrednią komunikacją pocztową. Davisowi udało się zainteresować kilku wpływowych urzędników swoimi pomysłami na zjednoczoną cyfrową sieć na poziomie krajowym, ale zmiana kierunku tak ogromnego systemu nie była w jego zasięgu.

Licklider, łącząc szczęście i planowanie, znalazł świetną szklarnię, w której mogła rozkwitnąć jego międzygalaktyczna sieć. Nie można jednak stwierdzić, że wszystko poza przełączaniem pakietów ograniczało się do pieniędzy. Ważne było również wykonanie pomysłu. Co więcej, duch ARPANET został zdefiniowany przez kilka innych istotnych decyzji na etapie projektowania. Dlatego teraz przyjrzymy się, jak odpowiedzialność była rozłożona między komputerami wysyłającymi i odbierającymi wiadomości a siecią, przez którą te wiadomości były wysyłane.

Co jeszcze poczytać

  • Janet Abbate, Wynalezienie internetu (1999)
  • Katie Hafner i Matthew Lyon, Gdzie czarodzieje zostają do późna (1996)
  • Leonard Kleinrock, “Wczesna historia Internetu,” IEEE Communications Magazine (sierpień 2010)
  • Arthur Norberg i Julie O’Neill, Transformacja technologii komputerowej: Przetwarzanie informacji dla Pentagonu, 1962-1986 (1996)
  • M. Mitchell Waldrop, The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal (2001)

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster