Аннотация:
Традиционная архитектура сети передачи данных является негибкой и сложной. Данное обстоятельство привело к появлению парадигмы программно-конфигурируемой сети (ПКС), в которой уровень управления сетью отделен от уровня передачи данных. Это стало возможно за счет переноса плоскости управления с коммутационного оборудования в программные модули, которые работают на выделенном сервере, называемом контроллером (или сетевой операционной системой), или в сетевые приложения, которые работают с этим контроллером. Способы представления, хранения и интерфейсы взаимодействия с элементами сетевой топологии, доступные пользователям контроллера ПКС, являются одними из наиболее важных аспектов сетевых операционных систем. Данное обстоятельство обусловлено тем, что функционирование некоторых ключевых модулей контроллера в существенной степени основано на внутреннем представлении сетевой топологии. Такими модулями, к примеру, являются модуль firewall, модуль маршрутизации и т.д. В данной статье рассмотрены применяемые способы представления и хранения сетевой топологии, а также интерфейсы взаимодействия с соответствующими модулями контроллера Floodlight. Предложен и разработан альтернативный алгоритм обмена сообщениями об изменении сетевой топологии между контроллером и сетевыми приложениями, позволяющий реализовать оповещение на основе подписки на соответствующие события. Разработан API для модуля взаимодействия с прикладными программами контроллера программно-конфигурируемой сети. На основе данного алгоритма и API разработан модуль Topology Tracker, способный в активном режиме сообщать сетевым приложениям о произошедших изменениях в топологии сети и хранящий ее компактное представление для ускорения процесса взаимодействия.