Читать «Цифровой журнал «Компьютерра» № 145» онлайн - страница 3

Коллектив авторов

- Но данные одного потока все равно оформлены в виде пакетов?

- Совершенно верно, данные идут по виртуальному соединению, которое маршрутизируется в момент своего создания. И дальше все относящиеся к нему пакеты идут по одному маршруту. Как только появляется пакет, маршрутизатор смотрит, знает ли он поток, к которому тот относится. Если устройство в своих таблицах маршрутизации находит соответствующие правила (то есть знает этот поток), то пакет обрабатывается в соответствии с ними. Если такого правила нет, то устройство обращается к так называемому контроллеру, который принимает решение об открытии нового потока и формирует правила. Они загружаются с помощью протокола Openflow в таблицы маршрутизатора и используются при обработке всех пакетов нового потока.

Таким образом, решается очень серьезная проблема — на ранних этапах развития интернета было принято решение, что каждый пакет может маршрутизироваться самостоятельно. Оно было следствием сформулированной в конце шестидесятых годов в DARPA проблемы: военным были нужны высокоживучие системы передачи данных, чтобы уничтожение отдельного узла не приводило к выходу из строя всей сети. Пока каналы были медленными и потоки данных небольшими — это было приемлемо.

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

Именно на этом принципе построены так называемые MPLS-сети или маршрутизация по меткам. В программно-конфигурируемых сетях решение доведено до логического конца — сформулировано понятие сетевой операционной системы, управляющей ресурсами сети (маршрутизаторами, свичами, линками), как традиционная ОС управляет ресурсами компьютера. Поверх нее работают различные приложения: по маршрутизации, по балансировке потоков, по оптимизации пропускной способности каналов и т. д. и т. д. и т. д. Эти приложения работают на так называемых контроллерах, а остальные устройства просто решают задачи маршрутизации и коммутации.

- Насколько я понимаю, здесь активно используются технологии виртуализации? Живучесть контроллера (на котором очень многое завязано) мы не теряем?

- Естественно, этот подход открывает новые возможности по виртуализации.

- Но разве программно-конфигурируемые сети могут решить проблему с пропускной способностью каналов? Ведь, скажем, 2 Мбита есть 2 Мбита и ничего с этим не сделаешь на программном уровне.

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