[Перевод] 50 лет назад в комнате №3420 родился интернет

Это история создания ARPANET, революционного предшественника интернета, рассказанная участниками событий


9b3411bcd896f991f2b1718b1b6973b0.jpg

Приехав в институт Болтер-Холл при Калифорнийском университете в Лос-Анджелесе (UCLA), я поднялся по лестнице на третий этаж в поисках комнаты №3420. А потом я зашёл в неё. Из коридора она не казалась какой-то особенной.

Но 50 лет назад, 29 октября 1969 года, в ней произошло нечто монументальное. Аспирант Чарли Клайн, сидя за терминалом ITT Teletype, осуществил первую цифровую передачу данных для Билла Дюваля, учёного, сидевшего за другим компьютером, находившимся с Стэнфордском исследовательском институте (сегодня известном, как SRI International), совершенно в другой части Калифорнии. Так началась история ARPANET, небольшой сети из академических компьютеров, ставшей предшественницей интернета.
Нельзя сказать, что в то время этот краткий акт передачи данных прогремел на весь мир. Даже Клайн и Дюваль не смогли полностью оценить своё достижение: «Не помню чего-то особенного по поводу того вечера, и я совершенно точно не понял тогда, что мы сделали что-то особенное», — говорит Клайн. Однако их связь стала доказательством реалистичности концепции, которая в итоге обеспечила доступ практически ко всей информации мира для любого человека, владеющего компьютером.

Сегодня всё, от смартфонов до автоматических дверей гаража является узлами сети, произошедшей от той, что в тот день проверяли Клайн и Дюваль. И историю о том, как он определили первые правила передвижения байтов вокруг света, стоит послушать — особенно, когда они рассказывают её сами.

«Чтоб такого больше не было»


И в 1969 году многие люди помогли Клайну и Дювалю совершить тот вечерний прорыв 29 октября — включая профессора UCLA Леонарда Клейнрока, с которым, кроме Клайна и Дюваля, я беседовал на 50-летии. Клейнрок, до сих пор работающий в университете, рассказал, что ARPANET в каком-то смысле являлась дитём Холодной войны. Когда в октябре 1057 года советский Спутник-1 заморгал в небе над США, ударные волны от него прошли как сквозь научное сообщество, так и сквозь политический истеблишмент.

ec06666514106f262f156d1960b9f16d.jpg
Комната №3420, восстановленная во всём своём великолепии образца 1969 года

Запуск Спутника «застал США со спущенными штанами, и Эйзенхауер сказал: «Чтоб такого больше не было», вспоминал Клейнрок в нашем разговоре с ним, состоявшемся в комнате 3420, сейчас известной, как Исторический центр интернета им. Клейнрока. «Поэтому в январе 1958 он сформировал в рамках Минобороны агентство передовых исследовательских проектов, ARPA, для поддержки STEM — точных наук, изучаемых в университетах США и исследовательских лабораториях».

К середине 1960-х ARPA обеспечила финансирование создания больших компьютеров, использовавшихся исследователями из университетов и мозговых центров по всей стране. Заведующим ARPA по финансам был Боб Тейлор, ключевая фигура в компьютерной истории, позднее руководивший лабораторией PARC в Xerox. В ARPA ему, к сожалению, стало ясно, что все эти компьютеры разговаривают на разных языках и не умеют общаться друг с другом.

Тейлор ненавидел необходимость использовать для соединения с различными удалёнными исследовательскими компьютерами разные терминалы, каждый из которых работал по собственной выделенной линии. Его офис был забит телетайпами.

4fb034fe9dc1f5daab6c701b03f2ddc1.jpg
В 1969-м такие терминалы Teletype были неотъемлемой частью вычислительных устройств

«Я сказал — чувак, очевидно же, что нужно сделать. Вместо трёх твоих терминалов должен быть один терминал, выходящий туда, куда тебе нужно, — рассказал Тейлор в интервью для New York Times в 1999-м. — Эта идея и есть ARPANET».

У Тейлора были и более практические причины желать создания сети. Он постоянно получал запросы от исследователей со всей страны на финансирование покупки более крупных и быстрых мейнфреймов. Он знал, что большая часть вычислительных мощностей, финансируемых правительством, простаивает без дела, поясняет Клейнрок. К примеру, исследователь мог использовать все возможности вычислительной системы из SRIin в Калифорнии по максимуму, а в это же время мейнфрейм в MTI мог сидеть без дела, допустим, в нерабочее время на Восточном побережье.

Или могло быть так, что мейнфрейм в одном месте содержал ПО, которое могло быть полезным в других местах — как, к примеру, первое в своём роде графическое ПО, сделанное на деньги ARPA в университете Юты. Без такой сети, «если я нахожусь в UCLA, и хочу заняться графикой, я обращусь в ARPA с просьбой купить и мне такую же машиу, — говорит Клейнрок. — Всем нужно было всё». К 1966 году ARPA устало от таких требований.

915e166ec88cf414c78d420e32f9ff95.jpg
Леонард Клейнрок

Проблема была в том, что все эти компьютеры говорили на разных языках. В Пентагоне специалисты по информатике Тейлора объясняли, что все эти исследовательские компьютеры работают с разными наборами кодов. Не существовало общего сетевого языка, или протокола, при помощи которого расположенные далеко друг от друга компьютеры могли бы соединиться и делиться контентом или ресурсами.

Вскоре ситуация изменилась. Тейлор уговорил директора ARPA Чарльза Херцфилда инвестировать миллион долларов в разработку новой сети, объединяющей компьютеры из MIT, UCLA, SRI и других мест. Херцфилд достал деньги, забрав их у программы исследования баллистических ракет. Оправдали эту стоимость в Минобороны тем, что у ARPA была задача создания «выживающей» сети, которая будет продолжать работать даже после уничтожения одной из её частей — допустим, в ядерной атаке.

ARPA пригласила Ларри Робертса, старого знакомого Клейнрока по MIT, для управления проектами ARPANET. Робертс обратился к работам британского специалиста по информатике Дональда Дэйвиса и американца Пола Барана и к изобретённым им технологиям передачи данных.

А вскоре Робертс позвал Клейнрока поработать над теоретической составляющей проекта. Он размышлял о передаче данных по сетям с 1962 года, когда ещё работал в MIT.

«Аспирантом в MIT я решил заняться следующей проблемой: я окружён компьютерами, но они не умеют общаться друг с другом, а я знаю, что рано или поздно им придётся это делать, — говорит Клейнрок. — И никто этой задачей не занимался. Все изучали теорию информации и кодирования».

Главным вкладом Клейнрока в ARPANET стала теория очередей. Тогда линии связи были аналоговыми, и их можно было брать в аренду у AT&T. Они работали через коммутаторы, то есть центральный коммутатор устанавливал выделенную связь между отправителем и получателем, будь это два человека, болтающие по телефону, или терминал, соединяющийся с удалённым мейнфреймом. На этих линиях много времени уходило на простой — когда никто не говорил слова или не передавал биты.

f65abc9559a3726251fcfdcd6c3b9132.jpg
Диссертация Клейнрока в MIT заложила концепции, пригодившиеся в проекте ARPANET

Клейнрок считал это дико неэффективным способом налаживать связь между компьютерами. Теория очередей давала способ динамического разделения линий связи между пакетами данных из разных коммуникационных сессий. В перерыве передачи одного потока пакетов другой поток может использовать тот же канал. Пакеты, составляющие одну сессию передачи данных (допустим, одно электронное письмо), могут найти путь к получателю, используя четыре различных маршрута. Если один маршрут окажется закрытым, сеть перенаправит пакеты через другой.

Во время нашей беседы в комнате 3420 Клейнрок продемонстрировал мне свою диссертацию, лежащую в красном переплёте на одном из столов. Он опубликовал свои исследования в виде книги в 1964-м.

В такой сети нового типа движение данных направлялось не центральным коммутатором, а устройствами, находящимися в узлах сети. В 1969 эти устройства называли IMP, «обработчиками сообщений интерфейса». Каждая такая машина была доработанной и предназначенной для тяжёлых условий работы версией компьютера Honeywell DDP-516, содержавшего особое оборудование для управления сетью.

Первый IMP Клейнрок доставил в UCLA в первый понедельник сентября в 1969 году. Сегодня он монолитом стоит в углу комнаты 3420 в Болтер-холле, где его восстановили до первоначального вида — такого, каким он был, обрабатывая первые передачи данных яерез интернет 50 лет назад.

»15-часовые рабочие дни, ежедневно»


Осенью 1969 года Чарли Клайн был аспирантом, пытавшимся получить учёную степень по инженерной специальности. Его группу перевели на проект ARPANET после того, как Клейнрок получил правительственное финансирование на разработку сети. В августе Клайн и другие активно работали над подготовкой ПО для мейнфрейма Sigma 7, чтобы связать его с IMP. Поскольку стандартного интерфейса связи между компьютерами и IMP не существовало — Боб Меткалф и Дэвид Боггс не изобретут Ethernet до 1973 года — группа с нуля создала 5-метровый кабель для связи компьютеров. Теперь им нужен был только другой компьютер для обмена информацией.

3ed7d207c963123f644f4d7fd33567ff.jpg
Чарли Клайн

Вторым исследовательским центром, получившим IMP, стал SRI (это произошло в начале октября). Для Билла Дюваля это событие ознаменовало начало подготовки к первой передаче данных из UCLA в SRI, на их SDS 940. Команды обоих институтов, по его словам, приложили все усилия к тому, чтобы осуществить первую успешную передачу данных к 21 октября.

«Я вошёл в проект, разработал и реализовал нужное ПО, и это был такой процесс, который иногда бывает при разработке ПО — 15-часовые рабочие дни, ежедневно, пока не закончишь», — вспоминает он.

С приближением Хэллоуина скорость разработки в обоих институтах ускорилась. И команды были готовы ещё до наступления дедлайна.

«Теперь у нас было два узла, мы взяли в аренду линию связи у AT&T, и рассчитывали на потрясающую скорость, 50 000 бит в секунду, — говорит Клейнрок. — И мы были готовы сделать это, залогиниться».

«Первый тест мы наметили на 29 октября, — добавляет Дюваль. — На тот момент это была пре-альфа. И мы думали — ну ладно, у нас есть три проверочных дня на то, чтобы всё это поднять и настроить».

Вечером 29-го Клайн работал допоздна — как и Дюваль в SRI. Они запланировали попробовать передать первое сообщение по ARPANET вечером, чтобы не испортить никому работу, если компьютер вдруг «упадёт». В комнате 3420 Клайн в одиночестве сидел перед терминалом, ITT Teletype that, соединённым с компьютером.

И вот, что случилось тем вечером — включая и один из исторических отказов компьютера в вычислительной истории — по словам самих Клайна и Дюваля:

Клайн: Я залогинился в Sigma 7 ОС, а потом запустил написанную мною программу, которая позволяла мне дать команду на пробную отправку пакетов в SRI. Тем временем Билл Дюваль в SRI запустил программу, принимающую входящие соединения. И мы одновременно общались по телефону.

Сначала у нас было несколько проблем. У нас была проблема с трансляцией кода, поскольку наша система использовала EBCDIC (расширенный двоично-десятичный код обмена информацией), стандарт, использовавшийся в IBM и Sigma 7. Но компьютер в SRI использовал ASCII (стандартный американский код для обмена информацией), ставший затем стандартом для ARPANET, и потом всего мира.

Разобравшись с несколькими этими проблемками, мы попробовали залогиниться. А для этого нужно было набрать слово «login». Система в SRI была запрограммирована на умное распознавание доступных команд. В продвинутом режиме, когда ты набирал сначала L, потом O, потом G, она понимала, что ты, наверное, имеешь в виду LOGIN, и сама дописывала IN. Поэтому я ввёл L.

Я был на проводе с Дювалем из SRI, и сказал: «Ты получил L?» Он говорит: «Ага». Я сказал, что я увидел, что L вернулась и распечаталась на моём терминале. И я нажал O, и он сказал: «O» пришло». И я нажал G, и он сказал: «Минуту, у меня тут система упала».

bc7eed92349f615a8f4ebf6a12b85593.jpg
Билл Дюваль

После пары букв произошло переполнение буфера. Это было очень легко найти и исправить, и по сути, после этого всё восстановилось и заработало. Я упоминаю это потому, что вся эта история не об этом. История о том, что ARPANET работает.

Клайн: У него была небольшая ошибочка, и он справился с ней минут за 20, и попробовал запустить всё заново. Ему нужно было подправить ПО. Мне нужно было ещё раз проверить моё ПО. Он мне перезвонил, и мы попробовали ещё раз. Мы начали заново, я напечатал L, O, G, и на этот раз я получил ответ «I N».

«Просто инженеры за работой»


Первая связь состоялась в половине одиннадцатого вечера по тихоокеанскому времени. После этого Клайн смог войти в учётную запись на компьютере SRI, созданную Дювалем для него, и запустить программы, используя системные ресурсы компьютера, расположенного в 560 км выше по побережью от UCLA. Небольшая часть миссии ARPANET была выполнена.

«К тому времени уже было поздно, поэтому я отправился домой», — сказал мне Клайн.

d05900d6a0ebc3dbae122a10a8369b30.jpg
На табличке в комнате 3420 поясняется, что здесь произошло

Команда знала, что достигла успеха, но особенно не раздумывала о масштабах достижения. «Это были просто инженеры за работой», — сказал Клейнрок. Дюваль посчитал 29 октября просто одним шагом в более крупной и сложной задаче по связыванию компьютеров в сеть. Работа Клейнрока была связана с тем, как направлять пакеты данных в сети, а исследователи из SRI работали над тем, из чего состоит пакет и как организованы данные внутри него.

«По сути, именно там была впервые создана парадигма, которую мы встречаем в интернете, со ссылками на документы и всем таким прочим, — говорит Дюваль. — Мы всегда представляли себе несколько связанных между собой рабочих станций и людей. Тогда мы называли их центрами знаний, поскольку наша ориентация была академической».

Через несколько недель после первого успешного обмена данными между Клайном и Дювалем, сеть ARPA расширилась, включив в себя компьютеры из Калифорнийского университета в Санта-Барбаре и Университета Юты. Потом ARPANET расширялась дальше, в 70-е и большую часть 1980-х, связывая между собой всё больше и больше правительственных и академических компьютеров. А после концепции, выработанные в ARPANET, применят к интернету, который м знаем сегодня.

В 1969 году пресс-релиз UCLA расхваливал новую ARPANET. «Пока что компьютерные сети находятся в зародыше, — писал тогда Клейнрок. — Но с ростом их размера и сложности мы, вероятно, увидим распространение «компьютерных услуг», которые так же, как сегодняшние электрические и телефонные услуги, будут обслуживать отдельные дома и офисы по всей стране».

Сегодня эта концепция кажется довольно старомодной — сети данных проникли уже не только в дома и офисы, но и в самые мелкие устройства, принадлежащие «интернету вещей». Однако заявление Клейнрока по поводу «компьютерных услуг» было удивительно пророческим, учитывая, что современный коммерческий интернет появился лишь несколько десятилетий спустя. Эта идея остаётся актуальной и в 2019 году, когда компьютерные ресурсы уже приближаются к такому же повсеместному состоянию, принимаемому, как нечто само собой разумеющееся, как и электричество.

Возможно, подобные юбилеи — это хорошая возможность не только вспомнить о том, как мы пришли к нашей эре высокой связности, но и посмотреть в будущее — как сумел сделать это Клейнрок — чтобы задуматься над тем, в какую сторону может далее развиваться сеть.

© Habrahabr.ru