Введение

IP-протокол маршрутизации, оптимизированный для мобильных ad hoc сетей

Оптимизированный протокол маршрутизации на основе состояния каналов (OLSR) — это IP-протокол маршрутизации, оптимизированный для мобильных ad hoc сетей, который также может применяться в других беспроводных ad hoc сетях. OLSR является проактивным протоколом маршрутизации на основе состояния каналов, использующим hello-сообщения и сообщения топологического контроля (TC) для обнаружения и последующего распространения информации о состоянии каналов по всей мобильной ad hoc сети. Отдельные узлы используют эту топологическую информацию для вычисления оптимальных маршрутов до всех узлов сети, применяя принцип пересылки по кратчайшему пути.

Особенности OLSR

Протоколы маршрутизации состояния канала, такие как Open Shortest Path First (OSPF) и Intermediate System to Intermediate System (IS IS), выбирают назначенный маршрутизатор на каждой линии связи для распространения информации о топологии. В беспроводных ad hoc сетях понятие линии связи отличается: пакеты могут и действительно передаваться через один и тот же интерфейс, поэтому для оптимизации процесса распространения требуется иной подход. Используя Hello-сообщения, протокол OLSR на каждом узле обнаруживает информацию о соседях в пределах двух скачков и выполняет распределенный выбор набора многоточечных ретрансляторов (MPR). Узлы выбирают MPR таким образом, чтобы существовал путь к каждому из соседей в пределах двух скачков через узел, выбранный в качестве MPR. Эти узлы MPR затем формируют и пересылают TC-сообщения, содержащие селекторы MPR. Такая работа MPR делает OLSR отличным от других протоколов маршрутизации состояния канала несколькими способами: путь пересылки TC-сообщений не является общим для всех узлов, а меняется в зависимости от источника, только подмножество узлов формирует информацию о состоянии канала, не все линии связи узла рекламируются, а только те, которые отражают выбор MPR. Поскольку маршрутизация состояния канала требует синхронизации топологической базы данных по всей сети, OSPF и IS IS выполняют распространение топологии, используя надежный алгоритм. Разработать такой алгоритм для беспроводных ad hoc сетей очень сложно, поэтому OLSR не стремится к надежности; он просто достаточно часто распространяет топологические данные, чтобы гарантировать, что база данных не останется несинхронизированной на длительное время.

Многоточечные реле

Многоточечные ретрансляторы (MPR) передают сообщения между узлами. Они также играют ключевую роль в маршрутизации и выборе оптимального маршрута от любого источника до любого целевого узла назначения. MPR периодически распространяют информацию о состоянии каналов связи для своих MPR-селекторов (узла, выбранного в качестве MPR) в своих управляющих сообщениях. MPR также используются для построения маршрута от заданного узла к любому пункту назначения при вычислении маршрута. Каждый узел периодически транслирует служебное сообщение "Hello" для определения состояния каналов связи, обнаружения соседей и выбора MPR.

Преимущества

Будучи проактивным протоколом, маршруты ко всем конечным точкам в сети известны и поддерживаются до момента их использования. Наличие маршрутов в стандартной таблице маршрутизации может быть полезно для некоторых систем и сетевых приложений, поскольку отсутствует задержка, связанная с поиском нового маршрута. Накладные расходы на маршрутизацию, хотя обычно и выше, чем у реактивных протоколов, не увеличиваются с ростом числа создаваемых маршрутов. Маршруты по умолчанию и сетевые маршруты могут быть добавлены в систему с помощью сообщений ассоциации хоста и сети (HNA), обеспечивая подключение к Интернету или другим сетям в облаке OLSR MANET. Сетевая маршрутизация – это область, в которой реактивные протоколы в настоящее время работают недостаточно эффективно. Значения времени ожидания и информация о действительности содержатся в сообщениях, передающих информацию, что позволяет использовать различные значения таймеров на разных узлах.

Критика

Первоначальное определение OLSR не предусматривает оценку качества связи; оно просто исходит из того, что соединение активно, если недавно было получено несколько приветственных пакетов. Это предполагает, что соединения имеют два состояния (либо работают, либо не работают), что не всегда верно для беспроводных сетей, где соединения часто характеризуются умеренным уровнем потери пакетов. Реализации, такие как OLSRd с открытым исходным кодом (обычно используемые на Linux-основанных mesh-маршрутизаторах), были расширены (по состоянию на версию 0.4.8) для оценки качества связи. Являясь проактивным протоколом, OLSR использует энергию и сетевые ресурсы для распространения информации о потенциально неиспользуемых маршрутах. Хотя это не является проблемой для проводных точек доступа и ноутбуков, это делает OLSR непригодным для сенсорных сетей, которые стремятся большую часть времени находиться в спящем режиме. Для небольших проводных точек доступа с низкой вычислительной мощностью проект OLSRd с открытым исходным кодом показал, что масштабные mesh-сети могут работать с OLSRd на тысячах узлов, потребляя очень мало вычислительной мощности на 200 встроенных устройствах. Будучи протоколом состояния канала связи, OLSR требует значительной пропускной способности и вычислительной мощности для вычисления оптимальных маршрутов в сети. В типичных сетях, где используется OLSR (которые редко превышают несколько сотен узлов), это обычно не представляет собой проблемы. Используя только MPR для распространения топологической информации, OLSR снижает избыточность процесса распространения, которая может быть проблемой в сетях с умеренным или высоким уровнем потери пакетов, однако механизм MPR обладает функцией самооптимизации (что означает, что в случае потери пакетов некоторые узлы, которые в противном случае не переслали бы пакет, могут это сделать).

Сообщения

OLSR использует "Hello"-сообщения для обнаружения односкачковых и двухскачковых соседей по их ответам. Отправитель может затем выбирать многоточечные ретрансляторы (MPR) на основе односкачкового узла, который обеспечивает наилучшие маршруты к двухскачковым узлам. Каждый узел также имеет набор селекторов MPR, перечисляющий узлы, выбравшие его в качестве узла MPR. OLSR использует сообщения топологического контроля (TC) в сочетании с пересылкой через MPR для распространения информации о соседях по всей сети. Сообщения об ассоциации хоста и сети (HNA) используются OLSR для распространения объявлений о сетевых маршрутах аналогично тому, как сообщения TC распространяют объявления о маршрутах хостов.

Другие подходы

Проблема маршрутизации в самоорганизующихся беспроводных сетях активно исследуется, и OLSR – лишь одно из нескольких предложенных решений. Для многих неясно, требуется ли разработка совершенно нового протокола, или же OSPF можно расширить поддержкой беспроводных интерфейсов. В средах с ограниченной пропускной способностью и энергопотреблением, интересно поддерживать сеть в тихом режиме при отсутствии трафика для маршрутизации. Реактивные протоколы маршрутизации не поддерживают таблицы маршрутов, а строят их по мере необходимости. Поскольку протоколы состояния канала требуют синхронизации баз данных, такие протоколы обычно используют подход векторных расстояний, как в AODV и DSDV, или более специализированные подходы, которые не обязательно строят оптимальные маршруты, такие как Dynamic Source Routing. Более подробную информацию можно найти в списке протоколов маршрутизации для ad hoc сетей.

Версия 2 ОЛСР

OLSRv2 был опубликован IETF в апреле 2014 года. Он сохраняет многие ключевые особенности оригинальной версии, включая выбор и распространение MPR. Основные отличия заключаются в гибкости и модульной архитектуре, использующей общие компоненты: формат пакетов packetbb и протокол обнаружения соседства NHDP. Эти компоненты разрабатываются для использования в протоколах MANET нового поколения, разрабатываемых IETF. Также имеются различия в обработке узлов с несколькими адресами и интерфейсами между OLSR и OLSRv2.

Реализация

OLSR.ORG – Загружаемый код для OLSR для Linux, Windows, Mac OS X, FreeBSD, NetBSD и OpenBSD. Содержит обширную документацию, включая информативный обзор смежных работ. NRL OLSR – Исходный код OLSR от NRL. Работает на Windows, MacOS, Linux и различных встраиваемых PDA-системах, таких как Arm/Zaurus и PocketPC, а также в средах моделирования ns2 и OPNET. http://cs.itd.nrl.navy.mil/focus/
SOURCEFORGE.NET OLSR – Разработанный MOVIQUITY на основе исследований в рамках проекта Workpad, он предоставляет код на C# для развертывания MANET (Ad Hoc, Meshnet) с использованием протокола OLSR. Разработан для WM 6, Win XP и может быть адаптирован для других платформ с использованием .NET Framework и Compact Framework. http://sourceforge.net/projects/wmolsr/