В тот день, когда будущие марсианские колонисты смогут открыть браузер и посмотреть, как котик в костюме акулы, верхом на роботе-пылесосе roomba, преследует утку, благодарить им следует ни кого иного, как Винта Сёрфа.
В качестве главного интернет-евангелиста google, Сёрф провел достаточно времени, размышляя о будущем сетевых технологий. И он имеет на это полное право — ведь именно Сёрф, вместе с Бобом Каном (Bob Kahn) был ответственен за разработку TCP/IP. Но, не удовлетворившись своей ролью отца Интернета на этой планете, Сёрф потратил годы на то, чтобы его детище вышло и в космос.
Работая совместно с NASA и JPL, Сёрф помогал разрабатывать новый стек протоколов, который может быть использован в условиях космоса — в которых, учитывая ограничения, связанные со скоростью света, а так же сложности орбитальной механики, — осуществление работы сети становится весьма сложным.
Мы [wired.com, — прим.пер.] пообщались с Сёрфом о роли этого межпланетного Интернета в исследовании космоса, имеющихся на сегодня проблемах, а так же о том, каким ему видится будущее этой технологии.
Wired: Несмотря на то, что сама идея, в принципе, не нова, концепция межпланетного Интернета является для большинства людей новой. Как вообще можно построить космическую сеть?
Vint Cerf: Действительно, идея далеко не нова — этот проект начался еще в 1998 году. И начался он во многом потому, что в 1997 году исполнилось 25 лет современному Интернету. Я задумался — чем бы таким мне заняться, чтобы это все еще было полезно через 25 лет? И, после консультации с коллегами в JPL, мы пришли к выводу о том, что нам были нужны гораздо более совершенные сетевые технологии, по сравнению с тем, чем обладали в то время космические агентства мира.
До того времени (да и, честно говоря, до сегодняшнего дня), все коммуникации в космосе проходили по радиоканалу через соединение точка-точка. Мы начали думать, как можно применить TCP/IP в качестве протокола для коммуникации в космосе — нам казалось, что раз уж он неплохо работает на Земле, то вполне мог бы работать и на Марсе. Но самым главным вопросом было «будет ли он работать для связи между планетами?». И, как оказалось, ответом было «нет».
Причин для этого две. Во-первых, скорость света, применительно к межпланетным расстояниям, довольно мала. Чтобы добраться от Земли до Марса, сигналу требуется от 3 с половиной до 20 минут. Обратный путь займет еще столько же. К тому же, нужно еще учитывать вращение планеты. Если вы пытаетесь установить связь с чем-то, находящимся на поверхности, то после того как планета повернется, вы утратите эту возможность, и вам придется ждать, пока она не сделает полный оборот. Итак, мы имеем и большую задержку сигнала, и его прерывания, а TCP в таких условиях работает, скажем так, не очень хорошо.
Одно из предположений, на которые опирается TCP/IP, заключается в том, что каждый из роутеров может не иметь достаточно памяти для того, чтобы хранить данные. Так что если появляется пакет, который нужно отправить по имеющемуся у вас маршруту, но у вас недостаточно памяти, то этот пакет будет просто отброшен.
Мы разработали новый стек протоколов, который получил название Bundle. Эта технология чем-то напоминают обычные интернет-пакеты. Пакеты могут быть довольно большими, и посылаются, проще говоря, как единое целое. Для передачи мы используем режим «store and forward» — каждый из узлов может довольно долго хранить информацию и ждать, пока у него появится возможность передать ее дальше.
Wired: Насколько сложнее, по сравнению с традиционным Интернетом, осуществлять коммуникации в космосе?
Cerf: Одним из самых неприятных моментов является невозможность использования системы доменных имен в ее сегодняшнем виде. Давайте я проиллюстрирую это на примере. Представьте, что вы находитесь на Марсе, и хотите открыть HTTP соединение, чтобы достучаться до сайта на Земле. У вас есть URL, но для того, чтобы открыть соединение, вам нужен IP-адрес.
Естественно, вам нужно по вашему URL получить нужный IP. Итак, вы на Марсе, а доменное имя, которое вам нужно, на Земле. Вы делаете DNS lookup. Но для того, чтобы вы получили ответ, вам нужно прождать как минимум 40 минут, а как максимум — вообще неизвестно сколько, в зависимости от количества потерь пакетов, доступности цели в зависимости от вращения планеты, и т.д. Ну а потом может оказаться, что ответ, который вы получили — неверный, потому что за то время, которое ответ добирался до вас, узел вполне мог быть перемещен на другой IP. И это еще не самый плохой сценарий. Если бы вы сидели где-нибудь на Юпитере, все это вообще могло бы занять у вас много часов.
Итак, у нас появилась необходимость избавиться от такой схемы, и перейти к тому, что мы называем delayed binding. Сперва вы определяете планету, которая вам нужна, потом перенаправляете трафик к этой планете, и лишь потом делаете lookup.
Другие проблемы появляются, если задуматься о необходимости управлять самой сетью в данных условиях — то, что мы используем в сетях на Земле, здесь уже не сработает. Например, есть протокол, который называется SNMP — simple network management protocol — он основан на идее, что вы можете отправить пакет, и получить ответ в течение нескольких миллисекунд, ну или хотя бы нескольких сотен миллисекунд. Если вы знаете, что такое ping, то вы должны понимать о чем идет речь — ведь пингуя что-то, вы ожидаете ответ как можно быстрее. Если вы не получаете его в течении пары минут, то есть смысл предположить, что что-то идет не так, и, возможно, узел, который вы запрашиваете, недоступен. Но в космосе сигналу нужно большое количество времени даже на то, чтобы добраться до цели, не говоря уж о том, чтобы вернуться назад. Это превращает управление сетью в значительно более сложную задачу.
Наконец, нам следовало позаботиться и о безопасности. Причины, конечно, очевидны — нам очень не хотелось бы видеть заголовки газет наподобие «15-летний подросток захватил управление марсианским сегментом Сети». Чтобы избежать этого, мы предприняли ряд мер — добавили строгую аутентификацию, трехстороннее рукопожатие, использование криптографических ключей, и т.д.
Wired: Учитывая, что сообщение будет происходить на огромных расстояниях, вся сеть должна быть просто гигантской, не так ли?
Cerf: Ну, чисто физически — с точки зрения расстояний — это действительно довольно большая сеть. Однако количество узлов очень невелико. На данный момент в основном это устройства на Земле, например, станции DSN, находящиеся под управлением JPL. У них есть большие 70-метровые антенны, и антенны поменьше, диаметром в 35 метров, способные устанавливать соединение точка-точка. Все это, в свою очередь, является частью системы TDRSS (читается tee-driss), используемой NASA для большого количества околоземных коммуникаций. На МКС также есть несколько узлов, поддерживающих наш стек протоколов.
Искусственные спутники Марса используют прототип этого ПО, и практически вся информация с Марса приходит к нам именно таким образом, как я описал. Роверы Spirit, Opportunity и Curiosity также используют эти протоколы. Даже посадочный модуль Феникс использовал их до того, как отключился. [Подробнее о том, как именно осуществляется связь с Марсом, и о работе станций DSN, вы можете почитать в этом посте, — прим. пер.]
Наконец, есть еще аппарат под названием EPOXI, находящийся на орбите вокруг Солнца, который так же использовался для тестирования работы протоколов.
Мы надеемся, что в будущем — предполагая, что наши протоколы пройдут сертификацию CCSDS, комитета, занимающегося стандартами в области космической связи — каждый космический аппарат, вне зависимости от того, какой страной он был разработан и запущен, будет использовать наши протоколы. А это, в свою очередь, будет означать, что каждый из этих аппаратов, выполнив свою основную миссию, сможет быть использован в качества ретрансляционного узла в сети.
Wired: И каковы будут следующие шаги по расширению?
Cerf: Во-первых, мы хотим стандартизировать все это. К тому же, еще не все части протоколов прошли проверку, например, наши системы аутентификации. Во-вторых, нам нужно точно понять, насколько хорошо мы сможем контролировать работу сети в сложных условиях.
В-третьих, нам нужно подумать о взаимодействиях реального времени, например видео- и аудио-передачах. Нам нужно понять, как лучше перейти от интерактивного чата в реальном времени к чему-то, что больше напоминало бы обмен электронными письмами, к которым можно прикреплять аудио и видео.
Доставка пакета данных чем-то действительно напоминает доставку e-mail. Если с вашим электронным письмом есть проблема, его обычно пересылают заново, а если это продолжается длительное время, то его отклоняют по таймауту. Наши протоколы имеют схожее поведение, так что следует учитывать, что ответ может идти достаточно долго, причем время его доставки может разниться от случая к случаю.
Wired: Мы часто говорим о том, как технологии, разработанные для космоса, можно применить на Земле. Могут ли те технологии, о которых вы рассказываете, использованы и на нашей планете?
Cerf: Безусловно. Например, агентство DARPA выделяло средства на тестирование этих высокоустойчивых протоколов для тактической военной связи. Эти тесты прошли очень успешно — в неблагоприятных с точки зрения передачи данных условиях нам удалось передать в 3-5 раз больше информации, чем используя TCP/IP.
Отчасти это достигается из-за того, что узлы сети могут сами хранить передаваемые данные. Так что если что-то пошло не так, нам не нужно снова осуществлять передачу от одного конца к другому — достаточно сделать это от одного из последних узлов. Такой подход оказался весьма эффективным. Ну и, конечно, это стало возможным в основном благодаря сильному удешевлению памяти.
Был еще интересный проект с участием Еврокомиссии — на севере Швеции, в Лапландии, живет народ, называемый Саамы. Представители этого народа уже более 8000 лет занимаются разведением северных оленей. Так вот, Еврокомиссия профинансировала исследовательский проект, в рамках которого мы использовали наши протоколы на ноутбуках вездеходов. С их помощью, удалось установить WiFi точки в деревнях в северной части Швеции. Грубо говоря, вездеход служил своего рода мулом, перевозящим информацию от деревни к деревни.
Wired: Был также и эксперимент под названием Mocup, включавший в себя управление роботом на Земле с МКС. Там тоже использовались эти протоколы?
Cerf: Совершенно верно. Мы все были очень воодушевлены этим экспериментом, так как он показал, что хоть наши протоколы и были разработаны для работы на больших расстояниях и с неопределенными задержками, при хороших условиях связи они могут быть использованы и для передачи данных в реальном времени.
Мне кажется, что сфера коммуникаций в целом выиграет от этих разработок. Например, применив эти протоколы в мобильных телефонах, мы получим более стабильную коммуникационную платформу, чем имеем на сегодняшний день.
Wired: То есть, даже если бы у меня дома телефон очень плохо ловил сеть, мне все равно удалось бы позвонить родителям?
Cerf: Скорее вы могли бы записать свое сообщение, а они в конечном итоге получили бы его. Это было бы, конечно, не в реальном времени — если проблемы с сетью продлятся достаточно долго, то и сообщение придет позже. Но в любом случае, оно обязательно будет доставлено.