Планетарный Интернет
АрхивКак Интернет не сводится к конкретному протоколу, так и его проблемы не сводятся к смене IPv4 на IPv6.
Как Интернет не сводится к конкретному протоколу, так и его проблемы не сводятся к смене IPv4 на IPv6. Так что анекдот про сантехника, который считает, что «всю систему надо менять», актуален и для Сети. «Сантехники» из крупнейших научных центров экспериментируют сегодня с проектами PlanetLab и Internet2, и очень вероятно, что одна из этих инициатив станет платформой Интернета следующего поколения. А возможно, и обе сразу — одно другому не мешает.
Основы Интернета закладывались больше тридцати лет назад, и его создатели, разумеется, не могли предвидеть, что когда-нибудь этой компьютерной сетью будут пользоваться 600 млн. человек. Электронная коммерция, блоги, новостные сайты, многопользовательские компьютерные игры — почти все, с чем ассоциируется у обывателя современный Интернет, не было заложено в него изначально. И старая структура трещит по швам. Чтобы убедиться в этом, вовсе необязательно быть специалистом. Любой, наверное, сталкивался со спамом и знает, что радикально решить проблему в существующих условиях до сих пор не удается. Не удается, главным образом, потому, что рассчитанный на обмен информацией между научными институтами Интернет никогда не предполагалось использовать в качестве средства массовой коммуникации, и в нем нет и не может быть эффективных средств борьбы с несанкционированными рассылками.
Поэтому идея «мы наш, мы новый Интернет построим» довольно популярна, хотя строить Интернет можно по-разному: на основе уже существующей инфраструктуры (PlanetLab) или создавая компьютерную сеть следующего поколения с нуля (Internet2).
PlanetLab
PlanetLab построен на базе Интернета точно так же, как Интернет построен на базе телефонных сетей. PlanetLab использует инфраструктуру Интернета для передачи информации, однако с современным Интернетом имеет мало общего, поскольку воплощает довольно старую идею «компьютер — это сеть». Об этом еще в 90-х гг. говорила Sun, но в случае с PlanetLab слова «компьютер — это сеть» не просто рекламный слоган, а более или менее точное описание принципов реальной работы. Работая с компьютером, подключенным к PlanetLab, пользователь по умолчанию получает доступ к вычислительным мощностям остальных участников Сети. Компьютер таким образом превращается в обычный терминал, но «мэйнфреймом» для него является не какой-то суперкомпьютер, стоящий в тесной комнатке, а все остальные терминалы.
Понятно, что в рамках нынешнего Интернета создать такую систему невозможно. Поэтому у PlanetLab — при всей внешней схожести — есть одно существенное отличие от современной Сети. Вместо обычных маршрутизаторов с относительно скудными возможностями используются так называемые «умные узлы» (smart nodes) — по сути, обыкновенные компьютеры, на которых запущено специальное программное обеспечение, управляющее их вычислительными ресурсами. Это ПО выделяет часть ресурсов непосредственно человеку, сидящему за клавиатурой, а часть — отдает в распоряжение всем остальным пользователям сети. Между собой «умные узлы» связаны через обычный Интернет, поэтому каждый узел подключен к обыкновенному маршрутизатору, что и превращает PlanetLab в надстройку над сегодняшним Интернетом.
Идея совместного использования ресурсов тоже не нова и даже частично реализована в обычном Интернете, однако лишь в том случае, когда она лежит в основе сети, можно получить все бенефиты от ее использования. Чтобы убедиться в этом, достаточно посмотреть, какие приложения уже созданы в рамках PlanetLab.
Нет такого слова — «далеко»
Как происходит распространение интернет-червя? Он попадает на машину-жертву, заражает ее и начинает рассылать себя дальше. Все это время инфраструктура Интернета работает на него. Маршрутизаторы, вместо того чтобы блокировать распространение злокачественного кода, услужливо пересылают пакеты очередной жертве. У них просто нет средств для глубокого анализа пакетов, они для этого не предназначены. А вот «умные узлы» вполне способны разобраться, что к чему, и прекратить распространение червя на ранних этапах, предотвратив эпидемию. Занимается этим приложение NetBait, которое в прошлом году уже доказало свою работоспособность, сообщив исследователям о появлении новой модификации червя Code Red. Разумеется, NetBait не панацея, и нельзя исключать, что авторы вирусов не придумают новых трюков (скорее всего, будет даже наоборот — когда PlanetLab покинет тепличные условия научных институтов, вирусописатели наверняка научатся использовать особенности строения PlanetLab). Однако эффективное средство раннего обнаружения вирусов в любом случае сэкономит массу времени и средств.
Те, кто пытался зайти на новостные сайты 11 сентября 2001 года, прекрасно помнят, что многие ресурсы вообще упали, не справившись с наплывом посетителей, а прочие работали еле-еле. Обеспечение работоспособности при произвольной нагрузке — задача, вообще говоря, нетривиальная, но сейчас, к сожалению, обычно решается в лоб. Владелец веб-сайта либо докупает железо и расширяет канал, либо пользуется услугами компаний, предоставляющих услуги кэширования сайтов (например, Akamai). Получается стрельба из пушки по воробьям — на сайт, может, никогда и не придет столько народу, а платить за железо или кэширование все равно приходится.
Структура PlanetLab устраняет эту проблему в зародыше. Вспомним, что мы работаем не с конкретной машиной, а с терминалом, у которого есть доступ ко всем остальным ресурсам Сети. Также и любой сайт является всемогущим терминалом, и трудности с доступом к нему могут возникнуть лишь тогда, когда несладко всей Cети.
Как только программа CoDeeN видит, что нагрузка на узел, на котором она установлена, возрастает, она немедленно кэширует страницы сайта на соседние узлы и начинает перенаправлять часть запросов. Подобная схема кэширования на лету позволяет справиться не только с возросшей нагрузкой, но и повышает устойчивость системы к DdoS-атакам. На испытаниях узлы, оснащенные CoDeeN, показали вдвое большую устойчивость по сравнению с обычными серверами с жестким распределением нагрузки.
Другой пакет — ScriptRoute — анализирует трафик Сети и выявляет перегруженные участки. Это позволяет перераспределить нагрузку заранее, не дожидаясь, пока трафик достигнет критических значений, и выбрать оптимальный путь пересылки пакетов. Для конечного пользователя работа ScriptRoute и CoDeeN означает более быструю работу интернет-ресурсов, независимо от того, как далеко они находятся. Собственно, успешная работа этих пакетов делает слово «далеко» бессмысленным. Нет такого слова — «далеко».
Слова «близко», кстати, тоже больше нет. Пакет OceanStore предназначен для обеспечения сохранности информации и делает это весьма любопытным способом: «уничтожая» ее. Вместо того чтобы позволить хранить файл на жестком диске, OceanStore разбивает его на массу мелких фрагментов, распределяя их по соседним узлам. Таким образом, сохраненный файл в физическом смысле нигде не существует — есть лишь его отдельные части и инструкция по их обратному сбору. Как только пользователь пытается открыть файл, OceanStore загружает недостающие фрагменты с ближайших узлов и соединяет их вместе. Каждый из фрагментов зашифрован 160-битным ключом, так что за приватность данных можно не беспокоиться. По крайней мере пока.
Разумеется, у пользователя остается возможность сохранять файлы, как и раньше, на собственный жесткий диск. Однако распылив файлы в никуда, можно не волноваться о гибели винчестера. Даже если это произойдет, с информацией ничего не случится. Таким образом, OceanStore является прозрачной заменой резервного копирования, только в качестве носителя здесь выступает сама Сеть.
Часть вышеупомянутых сервисов уже доступна пользователям PlanetLab. Часть — только разрабатывается и находится в опытной эксплуатации. Описанная функциональность — конечная цель разработчиков. Важно другое — реализовать NetBait или OceanStore в рамках сегодняшнего Интернета невозможно в принципе. Тогда как в PlanetLab — это дело времени.
Сегодня PlanetLab состоит из 458 машин, размещенных на 209 площадках в 25 странах. Как правило, участниками PlanetLab являются научные институты, чьи сотрудники экспериментируют с новой сетью и пытаются придумать приложения, которые можно в ней реализовать. PlanetLab — миниатюрная модель Интернета будущего, которая за два года не вышла даже на предполагаемый уровень масштабирования, — в полную силу сеть заработает, когда в ней будет не меньше тысячи узлов.