Ведущий инженер компании Cisco Systems Сандер Айер получил известность благодаря разработкам в области увеличения производительности маршрутизаторов и коммутаторов с помощью алгоритмов, созданных им еще во время работы в компании Nemo Systems, которую Cisco купила три года тому назад.
О деятельности 35-летнего Айера недавно рассказал журнал MIT Technology Review Magazine. Он начал заниматься данной темой в Стэнфордском университете, во время работы над докторской диссертацией, посвященной «сетевой памяти». В его исследовании решалась проблема борьбы со снижением производительности в сетях с быстродействием до 100 Гбит/c, возникающим в результате недостатка пропускной способности памяти маршрутизаторов и связанных с этим перегрузок.
В 2004 году Айер основал компанию Nemo Systems, где занимал должности директора по технологиям и старшего архитектора. В октябре 2005 года Cisco купила Nemo. Алгоритмы сетевой памяти Nemo будут реализованы почти в трех десятках продуктов Cisco, коммерческий выпуск которых намечен на 2009-й или начало 2010 года.
Проблема перегрузки возникает в высокоскоростных сетях, в том числе в магистралях Internet, поскольку пакеты поступают в маршрутизаторы значительно быстрее, чем их могут принимать стандартные модули памяти.
«Системы должны обрабатывать сотни тысяч пакетов, которые записываются в память или извлекаются из нее с очень высокой скоростью», — пояснил Айер.
Например, в канале с 10-гигабитным быстродействием пакеты могут появляться примерно каждые 50 нс, в то время как время между двумя последовательными обращениями в таких стандартных, массовых модулях памяти, как DRAM, тоже составляет 50 нс. Такие пакеты могут поступать в произвольном порядке и требуют непредсказуемого, или случайного, доступа к памяти.
Таким образом, в канале с быстродействием передачи данных 10 Гбит/c каждые 50 нс необходимо выполнять две операции: одну для записи пакета, а другую — для чтения. Но если модуль памяти способен выполнять только одну операцию каждые 50 нс, то он не в состоянии поддерживать столь высокий темп работы, и по мере роста быстродействия перегрузка только увеличится, а ситуация ухудшится.
Получается так, что маршрутизаторы не могут обеспечивать передачу трафика приложений реального времени — IP-телефонии, видеоконференций, мультимедиа и игр, требующих гарантированной производительности, поскольку нет никакой уверенности в том, что при высоком быстродействии канала пакеты будут своевременно записаны в память и считаны из нее.
Увеличение производительности памяти добавлением специализированных 10-гигабитных модулей SRAM или DRAM с уменьшенной задержкой, по словам Айера, стоит очень дорого, требует значительного числа компонентов и приводит к заметному повышению энергопотребления каждой системой. Такие модули не справятся также с быстродействием 40 Гбит/c.
Более того, они не в состоянии выдерживать вирусные атаки, которые могут поразить систему, используя в качестве основы шаблоны управления пакетной памятью. Если хакер выяснит, что это за шаблон, он может использовать его снова и снова, вызывая переполнение памяти маршрутизатора или коммутатора.
Оптимальное решение, по словам Айера, — это алгоритмы сетевой памяти, которые при работе со стандартными, массовыми модулями памяти объединяют алгоритмы балансировки нагрузки и кэширования. Балансировка распределяет нагрузку между модулями памяти и обеспечивает доступность памяти в момент обращения к ней; кэширование гарантирует постоянное присутствие данных в кэше.
«Эти алгоритмы предоставляют твердые, математически оправданные гарантии того, что производительность никогда не снизится», — подчеркнул Айер.
Сетевую память можно использовать для буферизации пакетов, сбора информации об IP-трафике по протоколу Netflow, поддержки качества обслуживания в сети.
При буферизации маршрутизаторы должны быть «уверены», что необходимые им пакеты всегда находятся в кэше. Используя алгоритмы сетевой памяти, можно создать большой и быстрый буфер пакетов с низким потреблением энергии, применяя небольшие кэши SRAM, которые размещаются в специализированных сетевых микросхемах, предназначенных для обработки пакетов, и медленные массовые модули DRAM.
Для обеспечения качества обслуживания сетевая память позволяет маршрутизаторам лучше обеспечивать жесткие требования к производительности сети для таких критически важных приложений, как телехирургия и суперкомпьютерные вычисления.
Технология сетевой памяти, разрабатываемая сегодня, рассчитана на быстродействие портов 10 Гбит/c и 40 Гбит/c в устройствах Cisco следующего поколения, корпоративных маршрутизаторах и коммутаторах Ethernet. По словам Айера, она также будет использоваться в 100-гигабитных линейных модулях маршрутизаторов следующего поколения.
Помимо повышения эффективности работы памяти и увеличения производительности маршрутизаторов при работе с высокоскоростными каналами, предложенные алгоритмы уменьшают место на платах за счет сокращения числа выводов специализированных микросхем, предназначенных для обработки пакетов, а также снижают количество таких микросхем на плате. Все это, в свою очередь, примерно вдвое сокращает размеры линейных карт маршрутизаторов и значительно снижает энергопотребление высокоскоростных систем.