Узкое место на пути данных — не сетевой интерфейс, а центральный процессор
По словам Гордона Хаффа, производители еще не нашли способа эффективной разгрузки TCP/IP

Расширение сетевых магистралей и потребность в дальнейшей интеллектуализации обработки трафика заставляют производителей и пользователей серверов серьезно задуматься над вопросом: где взять дополнительные мощности для обработки сетевого трафика?

Когда данные поступают на сервер или отправляются в сеть, они должны обрабатываться, например извлекаться из пакетов или помещаться в пакеты. Традиционно такая обработка возлагалась на центральный процессор сервера. Однако по мере того, как типовые сетевые платы стали поддерживать скорости уже не 100 Мбит/с, а 1 Гбит/с или даже 10 Гбит/с, в узкое место на участке пути данных «сервер-сеть» стал превращаться уже не сетевой интерфейс, а центральный процессор. Затраты вычислительных ресурсов увеличиваются и за счет того, что кроме базовой обработки по протоколу TCP/IP пользователям стали требоваться дополнительные функции, такие, например, как шифрование.

Главный аналитик Linley Group Линлей Гвеннап утверждает, что при полной загрузке используемые в настоящее время сетевые соединения на скорости 1 Гбит/с создают большую нагрузку даже на двухгигагерцевый процессор. «Половина вычислительной мощности может уйти только на низкоуровневую обработку поступающих через сетевую плату данных по протоколу TCP/IP», — говорит Гвеннап.

Проблема эта породила множество решений, каждое со своими достоинствами и энтузиастами.

Некоторые производители, такие как Trebia Networks, предпочитают вариант, при котором функция сетевой обработки смещается в сторону сетевой платы, так, чтобы каждый раз при добавлении к серверу новой платы происходило наращивание вычислительной мощности. Другие ратуют за введение сетевого процессора в набор микросхем наряду с центральным процессором. Третьи, например, корпорация Sun Microsystems, видят решение проблемы в создании нового поколения центральных процессоров с несколькими ядрами и большой разделяемой кэш-памятью.

В Sun обратили внимание на тот факт, что многоядерные процессоры способны разгружать отдельные задачи, такие как TCP/IP-процедуры, зашифрованные посредством SSL запросы и обработка больших мультимедийных файлов. Эта технология будет внедрена в моделях серверов Sun младшего класса с числом процессоров от одного до четырех. Таким образом у одного производителя можно будет приобретать оборудование и для обычных вычислений, и для выполнения специальных функций перераспределения сетевой нагрузки. Как утверждается, выпуск таких процессоров запланирован на 2004 год.

Другие компании, такие как Intel и Cisco Systems, уже выпустили сетевые процессоры (network processing unit, NPU), поддерживающие пропускную способность до 10 Гбит/с, по функциям аналогичные перспективным продуктам Sun. Продукты семейства Cisco Toaster и новые Intel IXP2850 могут эффективно обрабатывать стек TCP/IP, а также снабжены широкими возможностями шифрования.

Директор по технологиям компании Astute Networks Фазиль Озман представил на новую процессорную архитектуру Pericles. Она разработана для того, чтобы обеспечить возможность работы систем сетевого хранения данных (в том числе, SAN и NAS) на скорости 10 Гбит/с. Архитектура предполагает наличие до десяти ядер, каждое из которых работает с тактовой частотой 233 МГц. По словам Озмана, на разных ядрах могут работать протоколы разных сетей хранения данных, так что при разработке сетей можно обеспечивать одновременную поддержку технологий Fibre Channel и iSCSI одним устройством.

Сетевые процессоры позволяют изготовителям коммутаторов предлагать интерфейсные платы с большим числом портов, микросхемы для устройств сетевого хранения первого поколения поддерживают широкий диапазон протоколов, а Pericles обладает обоими этими достоинствами. Набор инструментальных средств разработки программного обеспечения для пользователей, собирающихся создавать системы с архитектурой Pericles, предлагается с лета.

В прошлом августе компания Alacritech первой представила сетевые платы особой категории, получившей название TOE (TCP/IP Offload Engine — «механизм разгрузки TCP/IP»). Эти платы могут повышать производительность серверов и систем хранения данных. Обработка по принципу TOE будет также поддерживаться в процессорах EthernetMAX (Media Access Xccelerator), выпуск которых налаживают компании iReady и National Semiconductor. Директор по технологиям компании iReady Майкл Смит рассказал, что эти процессоры смогут выполнять функции физического интерфейса Gigabit Ethernet, MAC, TOE, шифрование и дешифрование в соответствии с протоколом IPSec, а также iSCSI.

По словам Смита, EthernetMAX способен полностью разгрузить центральный процессор от всех видов сетевой обработки. Однако разработчики при желании могут передать часть функций EthernetMAX в центральный процессор. Первоначально EthernetMAX предназначался для систем хранения, но он может использоваться почти в любой конфигурации — от объединительных панелей, через которые порты подключаются к коммутаторам, до оптических магистралей дальней связи. Опытная партия первого продукта семейства EthernetMAX — микросхемы Gigabit Ethernet — ожидается в январе. По уверению Смита, при массовом выпуске ее цена не превысит 100 долл.

Гвеннап утверждает, что передача функций обработки TCP/IP сетевым платам приносит пользователям серверов увеличение эффективной вычислительной мощности по мере увеличения или ускорения сетевых магистралей. Если же они выполняются центральным процессором или набором микросхем, пользователь получает некую мощность. Поначалу она кажется ему чересчур большой, но впоследствии ему этого окажется мало.

Однако Гордон Хафф, аналитик компании Illuminata заявил, что пока не удалось продемонстрировать, что хоть один из новых продуктов — микросхем TOE, сетевых процессоров или многоядерных центральных процессоров, — может решить проблемы конечных пользователей.

«Сейчас многие просто отмахиваются от этой проблемы, — говорит он. — Существует мнение, что универсальные устройства категории TOE волшебным образом решат все сетевые протокольные проблемы. Не лучше обстоят дела и у сторонников процессорных решений. Нам нужны более детальные, чем сейчас, объяснения, как будут работать функции разгрузки без изменения всего программного обеспечения».

По словам Хаффа, производители еще не нашли способа эффективной разгрузки TCP/IP, который не потребовал бы изменения способа коммуникации с процессорами, реализуемой на программном уровне.