IMP (Interface Message Processors). Позднее их стали называть просто роутерами.
Когда они добрались до аэропорта, Тейлор спросил, кто займется разработкой IMP. Кларк ответил, что, очевидно, эту работу следует передать Bolt, Beranek and Newman, кембриджской фирме, где тогда работал Ликлайдер. Но в машине был еще Эл Блу, отвечавший в ARPA за вопросы согласования. Он напомнил, что в соответствии с федеральными стандартами заключения контрактов следует провести тендер на выполнение этого проекта[493].
На следующей конференции, проходившей в Гатлинберге, штат Теннесси, в октябре 1967 года, Робертс представил пересмотренный план сети. Он также дал ей имя: ARPA Net, трансформировавшееся затем в ARPANET. Однако один вопрос оставался нерешенным: потребуется ли для связи двух узлов сети выделенная телефонная линия наподобие той, которая нужна для телефонных звонков? Или есть какой-то практический способ, позволяющий разнородным потокам данных использовать линии совместно, как в системах с разделением времени для обычных телефонных линий? Раньше в том же месяце один из комитетов Пентагона выработал технические характеристики для такой сети передачи данных.
Именно тогда молодой инженер из Англии Роджер Скентле-бери представил доклад, описывающий исследования его руководителя Дональда Дэвиса из Britain’s National Physical Laboratory. В нем содержался ответ: метод деления сообщений на маленькие порции, которые Дэвис окрестил «пакетами». Скентлебери добавлял, что независимо та же идея разрабатывалась еще одним ученым Полем Бэраном из RAND. После доклада Ларри Робертс и некоторые другие слушатели столпились вокруг Скентлебери. Затем все отправились в бар, где разговор затянулся до позднего вечера.
Коммутация пакетов: Пол Бэран, Дональд Дэвис и Леонард Клейнрок
Есть много способов передачи данных по сети. Самый простой, известный как коммутация каналов, это способ, которым работает телефонная сеть: с помощью коммутаторов создается специальный канал, по которому все время разговора туда и обратно курсирует сигнал. Соединение при этом сохраняется даже во время длительных пауз. Другой метод — это коммутация сообщений, или, как его называют телеграфисты, коммутация с промежуточным хранением. В такой системе исходящее сообщение отправляется в сеть по адресу, указанному в заголовке, и последовательно передается от узла к узлу, двигаясь к месту назначения.
Еще эффективнее метод коммутации пакетов — специальный способ коммутации с промежуточным хранением, при котором сообщения разбиваются на небольшие кусочки строго одинакового размера. Эти кусочки, их называют пакетами, снабжены адресом — заголовком, указывающим, куда ему следует двигаться. Затем пакеты отправляются в путь по сети к своему месту назначения, перескакивая с узла на узел. При этом они используют те связи, которые в данный момент наиболее доступны. Если какая-то связь слишком забита данными, некоторые из пакетов отправляются по альтернативным маршрутам. Когда все пакеты добираются до нужного узла, их опять собирают вместе, используя инструкции, записанные в заголовке. «Это напоминает длинное письмо, написанное на десятках открыток. Все открытки пронумерованы и отправлены по одному и тому же адресу, — объясняет Винт Серф, один из основоположников интернета. — Каждая открытка, чтобы попасть в пункт назначения, может выбрать свой маршрут, после чего они опять собираются вместе»[494].
Как объяснил Скентлебери в Гатлинберге, первым, кто до конца разобрался в том, что из себя представляет сеть с коммутацией пакетов, был инженер Пол Бэран. Семья Бэрана иммигрировала из Польши, когда ему было два года. Они поселились в Филадельфии, где отец Пола открыл небольшую бакалейную лавку. Окончив в 1949 году Дрексельский университет, Бэран поступил в компьютерную компанию Преспера Эккерта и Джона Мокли, где занимался тестированием программ для UNIVAC. Он перебрался в Лос-Анжелес, прослушал вечерние курсы в Калифорнийском университете, а затем получил работу в RAND Corporation.
Когда в 1955 году русские успешно испытали водородную бомбу, Бэран осознал, что дело его жизни — помочь предотвратить ядерный холокост. Однажды в RAND он просматривал список исследовательских тем, интересующих штаб военно-воздушных сил, который рассылали еженедельно. Его взгляд остановился на одной из них, относившейся к разработке военной системы связи, способной пережить атаку врага. Он знал, что подобная система может помочь предотвратить обмен ядерными ударами: если одна из сторон боится, что ее система связи выйдет из строя, более вероятно, что при нарастании напряжения она попробует нанести упреждающий удар. При надежных системах связи государству ни к чему вести себя столь необдуманно агрессивно.
Бэран сформулировал две ключевые идеи, о которых написал в 1960 году. Во-первых, утверждал он, сеть не должна быть централизованной: не должно быть главного аппаратного узла, контролирующего все коммутации и маршрутизацию. Не должна она быть и просто децентрализованной, такой, которая контролируется большим числом региональных аппаратных узлов наподобие телефонной сети AT&T или карты маршрутов большой авиакомпании. Если враг захватит несколько таких пунктов, система выйдет из строя. Напротив, контроль надо полностью рассредоточить. Другими словами, каждый из узлов должен иметь равную возможность коммутировать и направлять поток данных. Именно это стало наиболее важной отличительной чертой интернета, его неотъемлемым признаком, наделяющим правами отдельного человека и ограждающим сеть от централизованного контроля.
В его представлении сеть напоминала рыбацкий невод. Все узлы наделены способностью маршрутизировать трафик, каждый из них связан с несколькими другими узлами. Если один из узлов испортить, трафик просто будет перенаправлен по другим путям. Бэран объяснял: «Централизованного контроля нет. Каждый из узлов выбирает свою простую стратегию маршрутизации». Он подчеркивал, что даже если у каждого из узлов есть только три или четыре связи, система абсолютно устойчива по отношению к ошибкам и может функционировать в любых условиях. «Достаточно трехкратного или четырехкратного дублирования, чтобы надежность сети фактически соответствовала ее теоретически предсказанным возможностям»[495].
«После того как я понял, что гарантирует надежность, следовало решить проблему прохождения сигнала через такую, похожую на невод, сеть», — рассказывает дальше Бэран[496]. Отсюда появилась его вторая идея: данные надо разбить на небольшие блоки стандартного размера. Сообщение разбивается на большое число таких блоков, каждый из которых будет быстро продвигаться от узла к узлу по своему собственному пути, а затем, достигнув пункта назначения, они будут собраны вместе. «Универсальный стандартизованный блок сообщения можно положить равным 1024 битам, — писал он. — Основная часть блоков, на которые разбивается сообщение, резервируется за передаваемыми данными, тогда как в оставшейся части должна содержаться служебная информация, необходимая для обнаружения ошибки, и данные о маршруте».
А затем Бэрану пришлось столкнуться с реальностью, сопутствующей инновациям: прочно окопавшаяся бюрократия сопротивляется изменениям. RAND рекомендовала идею сети с коммутацией пакетов ВВС. Там, после детального изучения вопроса, решили ее осуществить. Но затем министерство обороны приняло решение, что любое подобное начинание, чтобы его могли использовать все рода войск, должно регулироваться Управлением информационного обеспечения. Бэран понял, что у Управления никогда не будет ни желания, ни возможности построить его сеть.
Тогда Бэран предпринял попытку убедить AT&T дополнить свою обычную сеть передачи голосовой информации с коммутацией каналов сетью передачи данных с коммутацией пакетов. «Они отбивались руками и ногами, — вспоминает он. — Было испробовано все, что только возможно, чтобы не дать проекту ход». AT&T даже карты своих коммуникационных каналов не дали RAND, так что Бэран был вынужден использовать комплект, попавший к нему в руки благодаря утечке информации. Он несколько раз ездил в штаб-квартиру AT&T на Нижнем Манхэттене. Во время одного из визитов он встретился с неким руководителем высшего звена, инженером старой закалки, специалистом в области аналоговой техники. Тот был совершенно огорошен, когда Бэран объяснил, что с помощью его системы данные можно передавать туда и обратно без того, чтобы выделенная линия оставалась все время открытой. Бэран рассказывал: «Он закатил глаза, как бы давая понять своим коллегам, присутствовавшим в комнате, что не верит в это ни на йоту». После паузы этот начальник добавил: «Сынок, послушай, телефон работает так…» — и начал свысока объяснять ему простейшие вещи.
Бэран продолжал настаивать на своей казавшейся абсурдной идее: сообщение можно разделить и молниеносно передать в виде крошечных пакетов по сети. Тогда AT&T провела серию семинаров для него и еще нескольких не работавших в компании людей, где им объясняли, как на самом деле работает система. Бэран с восторгом рассказывал: «Чтобы объяснить, как работает вся система в целом, им потребовалось девяносто четыре докладчика». Когда все закончилось, один из руководителей AT&T спросил у него: «Ну, теперь вы понимаете, почему коммутация пакетов работать не будет?» К его великому огорчению, Бэран ответил просто: «Нет». И опять