Коммутация пакетов: Пол Бэран, Дональд Дэвис и Леонард Клейнрок
Коммутация пакетов: Пол Бэран, Дональд Дэвис и Леонард Клейнрок
Есть много способов передачи данных по сети. Самый простой, известный как коммутация каналов, это способ, которым работает телефонная сеть: с помощью коммутаторов создается специальный канал, по которому все время разговора туда и обратно курсирует сигнал. Соединение при этом сохраняется даже во время длительных пауз. Другой метод — это коммутация сообщений, или, как его называют телеграфисты, коммутация с промежуточным хранением. В такой системе исходящее сообщение отправляется в сеть по адресу, указанному в заголовке, и последовательно передается от узла к узлу, двигаясь к месту назначения.
Еще эффективнее метод коммутации пакетов — специальный способ коммутации с промежуточным хранением, при котором сообщения разбиваются на небольшие кусочки строго одинакового размера. Эти кусочки, их называют пакетами, снабжены адресом — заголовком, указывающим, куда ему следует двигаться. Затем пакеты отправляются в путь по сети к своему месту назначения, перескакивая с узла на узел. При этом они используют те связи, которые в данный момент наиболее доступны. Если какая-то связь слишком забита данными, некоторые из пакетов отправляются по альтернативным маршрутам. Когда все пакеты добираются до нужного узла, их опять собирают вместе, используя инструкции, записанные в заголовке. «Это напоминает длинное письмо, написанное на десятках открыток. Все открытки пронумерованы и отправлены по одному и тому же адресу, — объясняет Винт Серф, один из основоположников интернета. — Каждая открытка, чтобы попасть в пункт назначения, может выбрать свой маршрут, после чего они опять собираются вместе»[494].
Как объяснил Скентлебери в Гатлинберге, первым, кто до конца разобрался в том, что из себя представляет сеть с коммутацией пакетов, был инженер Пол Бэран. Семья Бэрана иммигрировала из Польши, когда ему было два года. Они поселились в Филадельфии, где отец Пола открыл небольшую бакалейную лавку. Окончив в 1949 году Дрексельский университет, Бэран поступил в компьютерную компанию Преспера Эккерта и Джона Мокли, где занимался тестированием программ для UNIVAC. Он перебрался в Лос-Анжелес, прослушал вечерние курсы в Калифорнийском университете, а затем получил работу в RAND Corporation.
Когда в 1955 году русские успешно испытали водородную бомбу, Бэран осознал, что дело его жизни — помочь предотвратить ядерный холокост. Однажды в RAND он просматривал список исследовательских тем, интересующих штаб военно-воздушных сил, который рассылали еженедельно. Его взгляд остановился на одной из них, относившейся к разработке военной системы связи, способной пережить атаку врага. Он знал, что подобная система может помочь предотвратить обмен ядерными ударами: если одна из сторон боится, что ее система связи выйдет из строя, более вероятно, что при нарастании напряжения она попробует нанести упреждающий удар. При надежных системах связи государству ни к чему вести себя столь необдуманно агрессивно.
Бэран сформулировал две ключевые идеи, о которых написал в 1960 году. Во-первых, утверждал он, сеть не должна быть централизованной: не должно быть главного аппаратного узла, контролирующего все коммутации и маршрутизацию. Не должна она быть и просто децентрализованной, такой, которая контролируется большим числом региональных аппаратных узлов наподобие телефонной сети AT&T или карты маршрутов большой авиакомпании. Если враг захватит несколько таких пунктов, система выйдет из строя. Напротив, контроль надо полностью рассредоточить. Другими словами, каждый из узлов должен иметь равную возможность коммутировать и направлять поток данных. Именно это стало наиболее важной отличительной чертой интернета, его неотъемлемым признаком, наделяющим правами отдельного человека и ограждающим сеть от централизованного контроля.
В его представлении сеть напоминала рыбацкий невод. Все узлы наделены способностью маршрутизировать трафик, каждый из них связан с несколькими другими узлами. Если один из узлов испортить, трафик просто будет перенаправлен по другим путям. Бэран объяснял: «Централизованного контроля нет. Каждый из узлов выбирает свою простую стратегию маршрутизации». Он подчеркивал, что даже если у каждого из узлов есть только три или четыре связи, система абсолютно устойчива по отношению к ошибкам и может функционировать в любых условиях. «Достаточно трехкратного или четырехкратного дублирования, чтобы надежность сети фактически соответствовала ее теоретически предсказанным возможностям»[495].
«После того как я понял, что гарантирует надежность, следовало решить проблему прохождения сигнала через такую, похожую на невод, сеть», — рассказывает дальше Бэран[496]. Отсюда появилась его вторая идея: данные надо разбить на небольшие блоки стандартного размера. Сообщение разбивается на большое число таких блоков, каждый из которых будет быстро продвигаться от узла к узлу по своему собственному пути, а затем, достигнув пункта назначения, они будут собраны вместе. «Универсальный стандартизованный блок сообщения можно положить равным 1024 битам, — писал он. — Основная часть блоков, на которые разбивается сообщение, резервируется за передаваемыми данными, тогда как в оставшейся части должна содержаться служебная информация, необходимая для обнаружения ошибки, и данные о маршруте».
Слева: Дональд Дэвис (1924–2000)
Пол Бэран (1926–2011)
Слева: Леонард Клейнрок (род. в 1934 г.)
Винт Серф (род. в 1943 г.) и Боб Кан (род. в 1938 г)
А затем Бэрану пришлось столкнуться с реальностью, сопутствующей инновациям: прочно окопавшаяся бюрократия сопротивляется изменениям. RAND рекомендовала идею сети с коммутацией пакетов ВВС. Там, после детального изучения вопроса, решили ее осуществить. Но затем министерство обороны приняло решение, что любое подобное начинание, чтобы его могли использовать все рода войск, должно регулироваться Управлением информационного обеспечения. Бэран понял, что у Управления никогда не будет ни желания, ни возможности построить его сеть.
Тогда Бэран предпринял попытку убедить AT&T дополнить свою обычную сеть передачи голосовой информации с коммутацией каналов сетью передачи данных с коммутацией пакетов. «Они отбивались руками и ногами, — вспоминает он. — Было испробовано все, что только возможно, чтобы не дать проекту ход». AT&T даже карты своих коммуникационных каналов не дали RAND, так что Бэран был вынужден использовать комплект, попавший к нему в руки благодаря утечке информации. Он несколько раз ездил в штаб-квартиру AT&T на Нижнем Манхэттене. Во время одного из визитов он встретился с неким руководителем высшего звена, инженером старой закалки, специалистом в области аналоговой техники. Тот был совершенно огорошен, когда Бэран объяснил, что с помощью его системы данные можно передавать туда и обратно без того, чтобы выделенная линия оставалась все время открытой. Бэран рассказывал: «Он закатил глаза, как бы давая понять своим коллегам, присутствовавшим в комнате, что не верит в это ни на йоту». После паузы этот начальник добавил: «Сынок, послушай, телефон работает так…» — и начал свысока объяснять ему простейшие вещи.
Бэран продолжал настаивать на своей казавшейся абсурдной идее: сообщение можно разделить и молниеносно передать в виде крошечных пакетов по сети. Тогда AT&T провела серию семинаров для него и еще нескольких не работавших в компании людей, где им объясняли, как на самом деле работает система. Бэран с восторгом рассказывал: «Чтобы объяснить, как работает вся система в целом, им потребовалось девяносто четыре докладчика». Когда все закончилось, один из руководителей AT&T спросил у него: «Ну, теперь вы понимаете, почему коммутация пакетов работать не будет?» К его великому огорчению, Бэран ответил просто: «Нет». И опять AT&T зашла в тупик. Слишком труден был вопрос выбора, когда речь шла об инновациях. Компания отказалась рассматривать совершенно новый тип сети передачи данных в связи с тем, что слишком много было вложено в традиционные каналы передачи информации[497].
Итогом работы Бэрана стали одиннадцать томов детального технического анализа под общим названием «К вопросу о распределенных коммуникациях». Эту работу он закончил в 1964 году. Бэран настаивал, что работа не должна быть засекречена. Он считал, что подобная система окажется наиболее эффективной, если и у русских будет нечто подобное. Хотя Боб Тейлор прочел кое-что из работы Бэрана, никто другой в ARPA с ней знаком не был. Его идеи оставались практически незамеченными, пока в 1967 году на конференции в Гатлинберге на них не обратил внимание Ларри Робертс. Вернувшись в Вашингтон, Робертс раскопал тома докладов Бэрана, стряхнул с них пыль и приступил к чтению.
Робертс раздобыл и статьи английской группы Дональда Дэвиса, суть которых изложил Скентлебери в Гатлинбурге. Дэвис был сыном служащего из Уэльса, работавшего в конторе угольной шахты, который умер в 1924 году, через несколько лет после рождения сына. Дэвиса воспитывала мать. Они жили в Портсмуте, где мать работала в Главном почтовом управлении Британии, в ведении которого находилась и государственная телефонная система. Детство Дэвиса прошло за игрой с телефонными проводами. Затем он окончил Имперский колледж в Лондоне по специальностям математика и физика. Во время войны он работал в Бирмингемском университете, где под руководством Клауса Фукса (как оказалось впоследствии, советского шпиона) принимал участие в секретной британской программе разработки атомного оружия. Затем он перешел на работу к Алану Тьюрингу в Национальную физическую лабораторию, где тот занимался построением автоматической вычислительной машины, компьютера с хранимой в памяти программой.
Дэвиса занимали два вопроса. Во-первых, работа компьютеров в режиме с разделением времени, о чем он узнал в 1965 году во время визита в Массачусетский технологический институт, и, во-вторых, использование телефонных линий для передачи данных. Комбинируя в голове эти идеи, он задался целью отыскать метод, аналогичный разделению времени, чтобы использовать коммуникационные линии максимально эффективно. Так же как и Бэран, он пришел к выводу, что сообщения необходимо делить на небольшие порции. Он же предложил первым использовал старое доброе английское слово packet, «пакет». Пытаясь убедить Главное почтовое управление принять на вооружение свою систему, Дэвис столкнулся с той же проблемой, что и Бэран, когда тот пытался достучаться до руководства AT&T. Но оба они нашли сторонника в Вашингтоне. Ларри Робертс не только с готовностью поддержал их идеи, он перенял и слово «пакет»[498].
Третьим в этой компании (правда, его вклад считается несколько более спорным) был Леонард Клейнрок — веселый, приветливый, иногда слишком самонадеянный специалист по вопросам потоков данных в сетях. С Ларри Робертсом они стали близкими друзьями, когда во время аспирантуры в Массачусетском технологическом институте делили один кабинет. Клейнрок вырос в Нью-Йорке в семье бедных иммигрантов. Он начал живо интересоваться электроникой в шесть лет. Читая комиксы о Супермене, Леонард наткнулся на инструкцию по изготовлению детекторного радиоприемника без батареек. Он соединил вместе рулон туалетной бумаги, одно из бритвенных лезвий отца, проволоку, графитовый стержень из карандаша и уговорил мать поехать с ним на метро в Нижний Манхэттен и купить там конденсатор переменной емкости в магазине электроники. Это хитрое устройство заработало. Так началось продолжавшееся всю жизнь увлечение электроникой. «Я по-прежнему им восторгаюсь, — говорит Клейнрок, вспоминая радио. — Оно до сих пор кажется мне чудом». Он начал покупать в долг радиолампы и рыться в контейнерах для мусора в поисках сломанных радиоприемников. Он набрасывался на них как стервятник, вытаскивая оттуда детали, чтобы делать новые радиоприемники самому[499].
Обучение даже в бесплатном Городском колледже Нью-Йорка было для него неподъемно, поэтому днем он работал в компании, занимавшейся электроникой, и посещал вечерние курсы в колледже. По вечерам преподаватели больше, чем днем, уделяли внимание практическим вопросам. Клейнрок помнит, что их учили не теории транзисторов, а объясняли, насколько транзисторы чувствительны к высокой температуре и как их подобрать при конструировании конкретной сети. «На дневных лекциях тебя такому никогда не научат, — вспоминал он. — Там преподаватели просто ничего подобного не знают»[500].
Окончив колледж, Клейнрок выиграл стипендию, позволившую ему стать аспирантом Массачусетского технологического института. Здесь он занимался теорией очередей — разделом теории вероятности, где рассматриваются, например, вопросы о том, сколько времени надо в среднем провести в очереди в зависимости от разных привходящих факторов. Диссертация Клейнрока посвящена математическому анализу прохождения сообщений и возникновения «узких мест» в коммутируемой сети передачи данных. Мало того, что он делил кабинет с Робертсом, Клейнрок был сокурсником Айвана Сазерленда и посещал лекции Клода Шеннона и Норберта Винера. «Это был истинный рассадник блестящих интеллектуалов», — вспоминает он о Массачусетском технологическом институте тех времен[501].
Однажды поздно вечером уставший Клейнрок работал на одном из больших экспериментальных компьютеров, известных как TX-2, и вдруг услышал необычный звук «пссссс». Клейнрок вспоминает: «Я очень разволновался. В том месте, откуда забрали деталь компьютера для починки, было пустое гнездо. Я поднял голову, посмотрел на это гнездо и увидел два смотрящих на меня глаза!» Это был Ларри Робертс, который его разыгрывал[502].
Несмотря на разницу характеров (а может быть, именно благодаря ей) искрометный Клейнрок и всегда сдержанный Робертс оставались друзьями. Им нравилось вместе ездить в Лас-Вегас, где они пытались переиграть казино. Робертс придумал метод подсчета карт при игре в блэк-джек, основанный на отслеживании карт как большого, так и малого достоинства, и обучил ему Клейнрока. «Однажды нас вышвырнули из Hilton, где мы с женой играли. Управляющий казино, наблюдавший за игрой через отверстие в потолке, заподозрил неладное, когда я прикупил карту. Обычно при таком раскладе не прикупают, если только ты не знаешь, сколько осталось карт большого достоинства», — вспоминает Робертс. Еще один хитроумный план основывался на расчете траектории шарика при игре в рулетку. Для этого нужен был контур, состоящий из транзистора и осциллятора. С его помощью предполагалось измерять скорость шарика, что позволило бы предсказать, с какой стороны колеса он остановится, а значит, делать ставки с большим шансом на успех. Чтобы собрать необходимую информацию, Робертс забинтовал руку и спрятал приемник под повязкой. Крупье, заподозрив что-то неладное, спросил, глядя на него и Клейнрока: «Хочешь, чтобы я сломал тебе и вторую руку?» Они решили, что это им ни к чему, и ретировались[503].
В плане диссертации, представленном в Массачусетском технологическом институте в 1961 году, Клейнрок указывал, что собирается разработать математические методы заторов в сети со структурой паутины. Здесь и в последующих работах он описывал сеть с промежуточным хранением данных — «коммуникационную сеть, где есть возможность хранить данные на каждом из узлов». Но это еще не было истинной сетью с коммутацией пакетов, где сообщение требуется разбить на очень маленькие порции одинаковых размеров. Он исследовал вопрос «среднего запаздывания сообщения при продвижении по сети» и анализировал, как можно решить эту проблему, устанавливая приоритетную структуру. Это можно сделать и путем разбиения сообщения на маленькие порции. Однако слова «пакет» он не использовал и не вводил сходного понятия[504].
Клейнрок был компанейским парнем, с удовольствием работал со своими коллегами, но примеру Ликлайдера он не последовал и не был склонен замалчивать свои заслуги. Позднее он рассорился со многими разработчиками интернета, настаивая, что в своих статьях и докторской диссертации (написаны они были уже после того, как в RAND Бэран занялся вопросом пакетной коммутации) именно он «сформулировал основные принципы пакетной коммутации» и «математическую теорию сети с коммутацией пакетов, заложив фундамент интернета»[505]. С середины девяностых годов Клейнрок начал агрессивную компанию, пытаясь получить признание как «отец современных сетей передачи данных»[506]. В интервью, данном в 1996 году, он утверждал: «Моя диссертация заложила основы коммутации пакетов»[507].
Это вызвало шумный протест многих других основоположников интернета, публично выступивших против Клейнрока. Они утверждали, что краткое упоминание разбиения сообщения на небольшие порции никак нельзя считать утверждением о необходимости использовать коммутацию пакетов. «Клейнрок лукавит, — говорит Боб Тейлор. — Его утверждение, что он имеет какое-то отношение к открытию коммутации пакетов, просто откровенная самореклама, чем он с первого дня и занимался»[508]. (Ответ Клейнрока: «Тейлор раздражен, поскольку считает, что его всегда недооценивали»[509].)
Дональд Дэвис, спокойный и немногословный английский ученый, придумавший термин «пакет», своими достижениями никогда не кичился. Его скромность выглядела чрезмерной. Но перед смертью он написал статью, которую просил напечатать, когда его уже не станет. В ней он неожиданно резко нападал на Клейнрока. После исчерпывающего анализа Дэвис делал вывод: «Работы Клейнрока до 1964 года не дают ему права претендовать на то, что именно он стал первым автором идеи коммутации пакетов. Отрывок его книги, где говорится о теории очередей с разделением времени, мог бы, если продолжить рассуждение, привести его к коммутации пакетов, но этого не случилось… Я не нашел свидетельств, что он понимал принцип коммутации пакетов»[510]. Позднее Алекс Маккензи, инженер, руководивший центром управления сетью BBN, высказался еще резче: «Клейнрок утверждает, что идея пакетирования принадлежит ему. Это полный абсурд. Во всей его книге 1964 года нет НИЧЕГО, что можно зачесть как предложение, анализ или намек на идею пакетирования». Он назвал претензии Клейнрока «смехотворными»[511].
Реакция на заявления Клейнрока была столь резкой, что эта история стала предметом статьи Кэти Хефнер в The New York Timss. Она показала, насколько претензии Клейнрока на приоритет в области коммутации пакетов подорвали сложившиеся отношения между первооткрывателями интернета. Пол Бэран, на самом деле заслуживший право называться отцом коммутации пакетов, выступил с заявлением. Утверждая, что «интернет, действительно, результат работы тысяч людей», он подчеркивал, что большинство вовлеченных в эту деятельность людей славы для себя не требуют. «И этот малозначительный случай представляется просто умопомрачением», — добавил он, пренебрежительно упомянув о Клейнроке[512].
Интересно, что до середины девяностых Клейнрок признавал, что идея коммутации пакетов принадлежит другим. В статье, опубликованной в ноябре 1978 года, он цитирует Бэрана и Дэвиса как авторов этой концепции: «В начале шестидесятых Пол Бэран описал некоторые свойства сети передачи данных в нескольких отчетах для RAND Corporation… В 1968 году Дональд Дэвис из английской National Physical Laboratories начал писать о сетях с коммутацией пакетов»[513]. Точно так же, описывая в статье 1979 года развитие распределенных сетей, Клейнрок не цитирует и вообще не упоминает свою собственную работу начала шестидесятых. И даже в 1990 году он все еще декларирует, что представление о коммутации пакетов первым ввел Бэран: «Пальма первенства здесь принадлежит ему [Бэрану]»[514]. Однако, когда в 2002 году статья Клейнрока за 1979 год была перепечатана, он написал новое предисловие, утверждая: «Мне принадлежит основополагающая идея коммутации пакетов, поскольку я был первым, опубликовавшим еще в 1961 году работу на эту тему»[515].
Справедливости ради следует сказать, что вне зависимости от того, приписывает ли Клейнрок себе авторство коммутации пакетов, ссылаясь на работы начала шестидесятых годов, он заслуживал (и заслуживает) уважения как один из первооткрывателей интернета. Не вызывает сомнения его важная роль как одного из первых теоретиков, занимавшихся информационными потоками в сетях, и как одного из признанных руководителей команды, создававшей ARPANET. Клейнрок одним из первых рассчитал, к чему приводит разбиение сообщений при их движении от узла к узлу сети. Кроме того, Робертс считал важными теоретические работы Клейнрока, причисляя его к команде создателей ARPANET. Инновации воплощаются в жизнь людьми, обладающими как хорошими теориями, так и возможностью быть среди тех, кто может применить их на практике.
Полемика с Клейнроком интересна, поскольку показывает, что большинство создателей интернета предпочитают, используя лексикон самого интернета, систему с полным распределенным приоритетом. Они инстинктивно отстраняются и обходят любой узел, который требует для себя большей значимости, чем остальные. Интернет стал возможен благодаря духу творческого сотрудничества и распределения процедуры принятия решений. И его основатели готовы отстаивать это наследие. Оно вошло в их плоть и кровь, в ДНК самого интернета[516].
Данный текст является ознакомительным фрагментом.