Винт Серф и Боб Кан
Просто подключайся.
Э. М. Форстер
Междугородный телеграф начался с предзнаменования: Сэмюэл Ф. Б. Морзе, находясь в кабинете судьи Верховного суда США 24 мая 1844 года, передал по линии своему коллеге Альфреду Вейлу, находящемуся в Балтиморе, стих из Ветхого Завета «Чудны дела твои, Господи». Первое, что мы хотим узнать о любом новом соединении, – с чего и как оно началось, и отсюда уже будем строить предположения о его будущем.
Первый в истории телефонный звонок Александра Белла своему помощнику 10 марта 1876 года начался с небольшого парадокса. «Мистер Уотсон, идите сюда; я хочу вас видеть» – одновременное свидетельство способности и неспособности связи преодолеть физическое расстояние.
А сотовая связь началась с хвастовства: Мартин Купер, инженер компании Motorola, прогуливаясь по Шестой авеню 3 апреля 1973 года, под удивленными взглядами манхэттенских прохожих позвонил своему конкуренту Джоэлю Энгелю из AT&T: «Джоэль, я звоню вам с сотового телефона. Настоящего сотового телефона – карманного, портативного, настоящего сотового телефона». («Я уже не помню, что он тогда ответил, – рассказывает Купер, – но на некоторое время в трубке воцарилась тишина. Думаю, он скрежетал зубами».)
А первое СМС-сообщение началось 3 декабря 1992 года с поздравления: Нил Папворт из Sema Group Telecoms слегка преждевременно пожелал Ричарду Джарвису из Vodafone «Веселого Рождества!».
Начало интернета было более скромным и менее обнадеживающим, чем все вышеописанное. 29 октября 1969 года Чарли Клайн из Калифорнийского университета в Лос-Анджелесе отправил Биллу Дюваллю из Стэнфордского исследовательского института первое в мире сообщение, переданное с одного компьютера на другой через сеть ARPANET. В сообщении было одно слово – login (вход в систему). Вернее, было бы, если бы принимающий компьютер не сломался после слога lo.
Основа человеческих взаимоотношений – протокол, общепринятый условленный свод правил и ожиданий – от рукопожатий и приветствий до этикета, политеса и полного диапазона социальных норм. Взаимосвязь между компьютерами ничем не отличается. Благодаря протоколу мы попадаем на одну и ту же страницу, задав один и тот же адрес. Собственно, слово происходит от греческого protokollon – «первый клей», удерживающий внешнюю страницу рукописи или манускрипта.
В межличностных делах эти протоколы служат неявным, но неиссякающим источником беспокойства. Я отправил такое-то сообщение столько-то дней назад; в какой момент я могу начать подозревать, что они никогда его не получат? Сейчас 12:05, а мы договаривались созвониться в полдень; неужели каждый из нас ждет, что звонить будет другой? Ваш ответ какой-то странный; это я ослышался или вы не то говорите? Что вы сказали?
Большинство наших коммуникационных технологий – от телеграфа до СМС – просто снабдили нас новыми каналами для уже знакомых нам межличностных противоречий. Но с появлением интернета компьютеры стали не просто каналами, но еще и конечными пунктами – теми, кто обеспечивает связь. В связи с этим им нужно также нести ответственность за решение их собственных коммуникационных задач. Эти межкомпьютерные проблемы – и пути их решения – одновременно имитируют и освещают наши собственные.
Пакетная коммутация
То, что мы привыкли называть интернетом, на самом деле – набор протоколов, но главным среди них (настолько, что он уже стал плюс-минус синонимом слова «интернет») является управляющий протокол передачи, или TCP (Transmission Control Protocol). Его «родителями» в 1973–1974 годах стали Винтон (Винт) Серф и Роберт (Боб) Кан, которые предложили ввести язык – как им хотелось назвать его – межсетевого общения.
Для TCP изначально использовались телефонные линии, но целесообразнее было бы воспринимать это как эволюцию почты, а не телефона. В телефонной связи используется так называемая коммутация каналов: система открывает канал между отправителем и получателем, который поддерживает постоянную ширину полосы частот между сторонами в обоих направлениях все время, пока длится разговор. Коммутация каналов играет большую роль в человеческих взаимоотношениях, но уже в 1960-х годах стало ясно, что для межкомпьютерных коммуникаций она работать не будет.
Как вспоминает Леонард Клейнрок из Калифорнийского университета в Лос-Анджелесе:
Я знал, что компьютеры «говорят» не так, как я сейчас, – непрерывно. Происходит выброс, и затем на какой-то период наступает затишье. Спустя некоторое время – вдруг снова выброс. И вы не можете позволить себе обеспечить коммуникационное соединение с чем-то, что почти никогда не разговаривает, но если вдруг хочет поговорить, то требует немедленного доступа. Поэтому нам пришлось использовать не телефонную сеть, созданную для непрерывных продолжительных разговоров, – сеть с коммутацией каналов, а нечто иное.
Телефонные компании, в свою очередь, не горят желанием что-то кардинально менять в своих протоколах. Отойти от коммутации каналов казалось безумием, «полнейшей ересью», как выразился сетевой исследователь Ван Якобсон. Клейнрок вспоминает собственное столкновение с телекоммуникационной отраслью:
Я обратился в AT&T, крупнейшую сеть того времени, и попытался объяснить им: мол, парни, вам бы следовало обеспечить нам хорошую передачу данных! И они такие: «Ты вообще о чем?! Штаты – это медный рудник, у нас полно телефонных проводов, вот и пользуйтесь ими!» Я им: «Нет-нет, вы не понимаете! Чтобы установить вызов, требуется 35 секунд, вы даете мне минимум 3 минуты, а мне нужно отправить 100 миллисекунд данных!» Ответ был: «Мальчик, иди отсюда». Ну, мальчик ушел и вместе с другими мальчиками разработал эту технологию, пока они жевали свой обед.
Технология, пришедшая на смену коммутации каналов, получила название пакетной коммутации. В сети с коммутацией пакетов, в отличие от выделенного канала для каждого соединения, отправители и получатели дробят свои сообщения на мелкие частицы, называемые пакетами, и сливают их в общий поток данных. Получаются своего рода открытки, движущиеся со скоростью света.
В такой сети «то, что вы называете соединением, является согласованной иллюзией между двумя конечными точками», объясняет сетевой эксперт Apple Стюарт Чешир. «В интернете не существует соединений. Говорить о соединениях в интернете – все равно что говорить о соединениях в американской почтовой системе. Вы посылаете людям письма, и каждое письмо идет независимо друг от друга. Вы можете иметь многолетнюю непрерывную переписку с кем-то, но почте США нет до этого никакого дела… Они просто доставляют письма».
Эффективное использование полосы пропускания было не единственным фактором продвижения исследований пакетной коммутации в 1960-х годах; другим стала ядерная война. Пол Баран из корпорации RAND пытался решить проблему устойчивой работы сети, чтобы военные коммуникации могли пережить ядерный удар, который разрушил бы бóльшую часть сетей. Вдохновленный алгоритмами, разработанными в 1950-х годах для навигационных комплексов, Баран придумал модель, в которой каждая частица информации могла бы независимо двигаться к пункту своего назначения, даже когда сеть динамично меняется – или вовсе рвется в клочья.