236
Способность к многошаговой передаче помогает обеспечить живучесть сети (способность к самовосстановлению). Если одно из устройств отказывает или оказывается под воздействием по-
мех, сеть способна перемаршрутизироваться, используя оставшиеся устройства.
Рисунок 3. Ячеистая сеть ZigBee
Принципиальное отличие сетей ZigBee от других беспроводных сетей, таких как IEEE 802.11/WiFi, в том, что вместо централизованной звездообразной структуры сети ZigBee допуска-
ют иерархию присоединения к сети. В результате может быть достигнуто несколько уровней при-
соединения. Такая иерархия устройств служит для создания истинно беспроводных сетей.
Для сравнения, IEEE 802.11/WiFi предлагает технологию точки беспроводного доступа:
беспроводное подключение производится между, скажем, ноутбуком или телевизором и точкой доступа, которая не является беспроводным маршрутизатором. Поэтому далее поток данных направляется на провода (например, по проводной сети к другим проводным устройствам или к другой точке беспроводного доступа). Сеть ZigBee способна доставлять пакеты полностью по беспроводной сети через несколько промежуточных беспроводных устройств.
Преимущества
Ячеистая топология обладает высокой живучестью и надежностью. Если какой-либо маршрутизатор становится недоступным, могут быть найдены и использованы альтернативные маршруты.
Использование промежуточных устройств при передаче данных делает ячеистую сеть широко масштабируемой.
Слабые сигналы и мертвые зоны могут быть легко исключены простым добавлением дополнительных маршрутов.
Формирование сети ZigBee
237
Любая сеть ZigBee начинается с ее формирования. Устройство, способное быть координа-
тором (оно назначается при проектировании сети), определяет свободный от помех канал и настраивает себя в качестве координатора. В ZigBee это устройство называется PAN координато-
ром – координатором персональной (в отличие от локальной – LAN) сети.
Устройства, которые хотели бы присоединиться к сети (подключиться, войти в состав се-
ти), рассылают широковещательный запрос. Первоначально на этот запрос отвечает только PAN
координатор. В дальнейшем кроме PAN координатора предоставить присоединение к сети могут маршрутизаторы ZigBee, которые уже присоединились к PAN координатору непосредственно или через другие маршрутизаторы. После того, как устройство, желающее присоединится к сети, по-
лучает ответ на широковещательный запрос, следует обмен сообщениями, которые определяют,
может ли устройство присоединиться к сети. Ключевым фактором определения возможности яв-
ляется способность маршрутизатора обслужить новые устройства в дополнение к ранее подклю-
ченным.
Вступление в сеть
Существует два пути вступления устройств в сеть ZigBee: МАС ассоциация и повторное сетевое присоединение (NWK rejoin).
МАС ассоциация
Как очевидно из названия, МАС ассоциация осуществляется на МАС уровне. Способно-
стью к МАС ассоциации должно по умолчанию обладать каждое устройство ZigBee. Механизм МАС ассоциации следующий:
Координатор или маршрутизатор, который собирается позволить другим устрой-
ствам присоединиться к нему, должен выставить на свой МАС уровень разрешение на присоеди-
нение NLME-PERMIT-JOINING.request.
В свою очередь, устройство, желающее вступить в сеть, выставляет на свой МАС уровень запрос на присоединение NLME-NETWORK-DISCOVERY.request.
После этого вступающее в сеть устройство передает в эфир широковещательный за-
прос маячка и получает этот маячок от маршрутизатора(ов), готового(ых) подключить новое
устройство.
Получив маячок (маячки), устройство определяет, в какую сеть оно желает вступить
ик какому конкретно устройству присоединиться, после чего выставляет на свой МАС уровень требование NLME-JOIN.request с установленным в значение FALSE флажком «повторное присо-
единение» (rejoin).
Сделав это, вступающее устройство направляет на выбранный маршрутизатор за-
прос на присоединение и получает ответ, содержащий присвоенный ему сетевой адрес.
Отметим, что МАС ассоциация не является безопасной, так как все сообщения передаются в открытом (не зашифрованном) виде.
238
Повторное сетевое присоединение (NWK rejoin)
Повторное сетевое присоединение (NWK rejoin) вопреки названию может использоваться и при первом подключении устройства к сети. И, как ясно из названия, осуществляется на сетевом уровне. Это означает, во-первых, что стандартный механизм МАС ассоциации в этом случае мо-
жет либо применяться (в этом случае ZigBee маршрутизатор выставит разрешение на присоедине-
ние NLME-PERMIT-JOINING.request), либо нет. Во-вторых, это означает, что обмен пакетами может быть безопасным, если вступающее устройство знает текущий сетевой ключ. Это возмож-
но, если устройство действительно переподключается, либо если оно включается впервые, но по-
лучило сетевой ключ через какой-то сторонний механизм (например, при настройке).
При таком подключении устройство, желающее вступить в сеть, выставляет на свой сете-
вой уровень (NWK) запрос на присоединение NLME-JOIN.request и обменивается с подключаю-
щим его маршрутизатором пакетами «запрос подключения» – «ответ на запрос подключения».
Динамика сети
Помимо процесса подключения новых устройств к изменению структуры сети могут при-
вести другие процессы. Устройства могут, например, покидатьсеть или повторно подключаться к сети в других местах (например, при перезагрузке устройства).
Рисунок 4 показывает пример переподключения. В этом примере устройство с коротким адресом «0E3B» переподключается к сети, как «097D» и впоследствии как «0260». На каждом эта-
пе это устройство присоединяется к другому маршрутизатору, который выделяет адрес из имею-
щегося в его распоряжении диапазона адресов.
Одно из важных достоинств сети ZigBee – способность отслеживать устройства и тополо-
гию сети в режиме частых подключений, отключений и переподключений устройств.
Рисунок 4. Переподключение конечного устройства в древовидной сети
Маршрутизация в сетях ZigBee
Основной алгоритм маршрутизации в сетях ZigBee – «Ad hoc On Demand Distance Vector» (AODV) основан на понятии «вектор расстояния» маршрута, когда каждый маршрутизатор, участ-
239
вующий в трансляции запроса маршрута от конкретного источника к конкретному пункту назна-
чения создает свою запись в маршрутной таблице. Эта запись как минимум содержит «логическое расстояние» от источника запроса и адрес предыдущего маршрутизатора.
Алгоритм работает следующим образом:
когда устройству «источник» (И) необходимо отправить пакет на устрой-
ство «адресат» (А), источник инициирует процесс обнаружения маршрута путем рассылки широ-
ковещательного пакета «запрос маршрута», запрашивая маршрут к устройству А (см. рис.5);
каждое устройство, которое получило этот запрос маршрута, вносит свою запись в таблицу маршрутизации и может транслировать этот запрос, включив в него таблицу со своей за-
писью (см. рис. 6);
следующие устройства, получившие ретранслированный запрос, транслируют его дальше, и с каждым шагом «логическое расстояние», пройденное запросом, увеличивается на ве-
личину, зависящую от качества связи на очередном участке;
процесс продолжается пока запрос не достигает устройства А, причем обычно устройства Адостигает несколько ретранслированных запросов (от разных маршрутизаторов) и «логические расстояния» (ЛР) маршрутов этих пакетов различны;
устройство А отправляет ответ по маршруту, имеющему минимальное «логическое
расстояние»;
ответ будет возвращаться в соответствие с таблицей маршрута по пути, пройденно-
му первоначальным запросом, пока не прибудет на устройство И (рис. 7).
Эта серия передаваемых в обратном направлении ответов формирует прямой маршрут для будущей передачи пакетов от И до А (рис. 8). Механизм «логического расстояния» позволяет ис-
точнику и узлам, расположенным на пути запроса, выбрать минимальное «логическое расстояние» маршрута от источника до места назначения.
Рисунок 5. Поиск маршрута. Шаг 1
240
Рисунок 6. Поиск маршрута. Шаг 2 (ЛР – логическое расстояние)
Рисунок 7. Поиск маршрута. Шаг 3
Рисунок 8. Поиск маршрута. Шаг 4
Описанный базовый алгоритм эффективен и универсален, однако требует значительного объема памяти для хранения маршрутов, что усложняет и удорожает устройства.
Поэтому в сетях ZigBee реализован и другой алгоритм, которые позволяет снизить требо-
вания к объему памяти, а иногда и уменьшить сетевой трафик, необходимый для поиска маршру-
тов. Действие алгоритма основано на том, что адреса в ZigBee сети распределяются иерархически,
начиная с координатора. Устройство, не имеющее возможностей маршрутизации или устройство,