Коллектив Авторов - Цифровой журнал «Компьютерра» № 145
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Коллектив Авторов - Цифровой журнал «Компьютерра» № 145 краткое содержание
Цифровой журнал «Компьютерра» № 145 читать онлайн бесплатно
Компьютерра
29.10.2012 - 04.11.2012
Интервью
Руслан Смелянский (ЦПИ КС) о будущем компьютерных сетей
Евгений Крестников
Опубликовано 02 ноября 2012 года
Лежащая в основе современных сетей архитектура закладывалась полвека назад, когда мир был совсем другим. Объемы трафика растут гораздо быстрее, чем увеличивается пропускная способность систем передачи данных, а его структура все время усложняется. О перспективных методах решения этих проблем «Компьютерре» рассказал директор по науке и образованию Центра прикладных исследований компьютерных сетей (ЦПИ КС), член-корреспондент РАН, профессор МГУ им. М.В. Ломоносова, д.ф-м.н. и заслуженный деятель науки Российской Федерации Руслан Смелянский.
- Не могли бы вы рассказать о вашем центре: когда он был создан и каковы его цели и задачи?
- Центр юридически был создан в январе этого года и уже в феврале ему был присвоен статус резидента «Сколково». Мы стали, насколько мне известно, первой некоммерческой организацией-резидентом, которая полностью ориентирована на научные исследования.
Основных направлений деятельности три. Во-первых, это установление партнерских взаимоотношений с международными исследовательскими центрами. Второе направление нашей деятельности — работа с НИИ Академии Наук и российскими университетами с целью инициировать там научные исследования в области компьютерных сетей. Третье направление деятельности — это продвижение новых технологий, демонстрация их преимуществ нашей отечественной промышленности, создание совместных проектов и проверка эффективности этих технологий на реальных задачах.
- Говоря о технологиях, вы имеете в виду только программно-конфигурируемые сети (SDN), или Центр занимается чем-то еще?
- Мы занимаемся компьютерными сетями, которые сегодня переживают глубокий кризис. Если очень кратко, то причина этого кризиса, во-первых, в том, что лежащая в основе современных сетей архитектура закладывалась в конце шестидесятых — начале семидесятых годов прошлого века и безнадежно устарела.
Во-вторых, недавно в области компьютерных сетей появились новые тенденции. Темпы роста трафика и структура этого трафика стали существенно обгонять те возможности, которые предоставляют системы передачи данных. Раньше темпы роста пропускной способности систем передачи данных практически удваивались каждый год, и это всех устраивало. Сейчас объем трафика увеличивается существенно быстрее пропускной способности каналов, и это начинает создавать проблемы.
И наконец, в-третьих, что является, в какой-то степени, следствием первого: компьютерные сети — одна из наиболее сложных инженерно-технических систем, поведение которой сложно предсказать. Достаточно сказать, что в современных сетях активно используется более шестисот разных протоколов. Связать их между собой по управлению и данным надежно и безопасно — это задача чрезвычайно трудная. Именно поэтому администрирование компьютерных сетей — скорее, искусство, нежели инженерия. И понятно, что с таким положением уже никто не хочет мириться.
Лет пять или шесть назад в США возникло движение по созданию компьютерных сетей (или, если хотите, интернета) нового поколения. И начались поисковые исследования. Одно из таких направлений, которое на сегодняшний день стало лидирующим — программно-конфигурируемые сети (software defined network). Его мы и развиваем сейчас в России.
- Если конкретизировать проблемы компьютерных сетей, то четко вырисовываются две проблемы. Это отставание темпов роста пропускной способности каналов от темпов роста трафика и сложная гетерогенная структура, которой очень тяжело управлять. Это основные факторы?
- Не только это. Есть и третий фактор. На сегодняшний день оборудование, с помощью которого строятся компьютерные сети является проприетарным. То есть для системного администратора это «черный ящик», в который он втыкает провода и функциональностью которого он пользуется. Там есть прошитый производителем софт, но пользователь без производителя ПО сменить не может.
- Но разве это проблема? Допустим, оборудование – «черный ящик», но все входы и выходы из этого ящика описаны — протоколы стандартизированы.
- Протоколов более шестисот. Действительно, каждый из них имеет стандарт, но подавляющее большинство используемых в интернете протоколов стандартом де-юре не является.
- Но это в основном протоколы уровня приложений?
- Вы глубоко заблуждаетесь. Протоколы TCP/IP не являются стандартами де-юре с точки зрения международного права — это стандарты де-факто.
- Но они являются отраслевыми техническим стандартами де-факто, описанным в RFC.
- Они не являются отраслевыми стандартами. Понятие отраслевого стандарта совсем другое. Они являются стандартами де-факто, выпущенными неким образованным в США society и ставшими международными. Но де-юре это не стандарты.
Мало того, чтобы согласовать протоколы между собою, одного стандарта недостаточно. Он не определяет многих технических параметров и не описывает (да и не должен описывать, чтобы не связывать по рукам и ногам производителей) очень многих деталей. Даже при наличии стандарта могут возникать ситуации нестыковки протоколов между собой. Но самое главное, организация сетей в виде «черных ящиков» блокирует возможности проведения экспериментов с новыми протоколами.
- Один из предлагаемых вариантов решения этих проблем — программно-конфигурируемые сети. В чем суть этой технологии?
- Проблем, конечно, не три, их много больше. В основной массе использующихся сейчас протоколов смешаны два разных вида данных: управляющие (с помощью которых происходит управление обменом информации) и, собственно, передающие данные. Программно-конфигурируемые сети их разделяют, то есть управление здесь происходит по совершенно другим каналам, нежели чем сама передача.
Кроме того, передача данных идет не через отдельно маршрутизируемые пакеты, как это сделано, скажем, в IP, а в виде потока. Если мы вспомним IPv4 и IPv6, то там есть такое поле — идентификатор потока. Здесь оно существенно используется.
- Но данные одного потока все равно оформлены в виде пакетов?
- Совершенно верно, данные идут по виртуальному соединению, которое маршрутизируется в момент своего создания. И дальше все относящиеся к нему пакеты идут по одному маршруту. Как только появляется пакет, маршрутизатор смотрит, знает ли он поток, к которому тот относится. Если устройство в своих таблицах маршрутизации находит соответствующие правила (то есть знает этот поток), то пакет обрабатывается в соответствии с ними. Если такого правила нет, то устройство обращается к так называемому контроллеру, который принимает решение об открытии нового потока и формирует правила. Они загружаются с помощью протокола Openflow в таблицы маршрутизатора и используются при обработке всех пакетов нового потока.
Таким образом, решается очень серьезная проблема — на ранних этапах развития интернета было принято решение, что каждый пакет может маршрутизироваться самостоятельно. Оно было следствием сформулированной в конце шестидесятых годов в DARPA проблемы: военным были нужны высокоживучие системы передачи данных, чтобы уничтожение отдельного узла не приводило к выходу из строя всей сети. Пока каналы были медленными и потоки данных небольшими — это было приемлемо.
Каждый узел сети при этом должен решать две задачи: построение маршрута для пакета и коммутация пакета в соответствии с принятым маршрутом. С точки зрения вычислительной сложности эти задачи принципиально разные. Проблема была осознана только в девяностые годы, и люди стали пытаться их разделить, то есть вытащить все, что связано с расчетом маршрута и его оптимизацией, в отдельные специализированные сервера, оставив основной части узлов сети только задачи маршрутизации.
Именно на этом принципе построены так называемые MPLS-сети или маршрутизация по меткам. В программно-конфигурируемых сетях решение доведено до логического конца — сформулировано понятие сетевой операционной системы, управляющей ресурсами сети (маршрутизаторами, свичами, линками), как традиционная ОС управляет ресурсами компьютера. Поверх нее работают различные приложения: по маршрутизации, по балансировке потоков, по оптимизации пропускной способности каналов и т. д. и т. д. и т. д. Эти приложения работают на так называемых контроллерах, а остальные устройства просто решают задачи маршрутизации и коммутации.