Обнаружение и формирование сети

Посмотреть исходный код на GitHub

Сети потоков

Сети потоков идентифицируются тремя уникальными идентификаторами:

  • 2-байтовый идентификатор персональной сети (PAN ID)
  • 8-байтовый расширенный идентификатор персональной сети (XPAN ID)
  • Удобочитаемое сетевое имя

Например, сеть Thread может иметь следующие идентификаторы:

Идентификатор Ценить
Идентификатор карты 0xBEEF
Идентификатор XPAN 0xBEEF1111CAFE2222
Имя сети yourThreadCafe
OT Активное сканирование

При создании новой сети Thread или поиске существующей сети для присоединения устройство Thread выполняет активное сканирование сетей 802.15.4 в пределах радиодиапазона:

  1. Устройство передает запрос маяка 802.15.4 по определенному каналу.
  2. В свою очередь, любые маршрутизаторы или конечные устройства, отвечающие требованиям маршрутизатора (REED), находящиеся в пределах досягаемости, транслируют сигнал маяка, который содержит идентификатор PAN сети потока, идентификатор XPAN и имя сети.
  3. Устройство повторяет предыдущие два шага для каждого канала.

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

Thread использует протокол Mesh Link Establishment (MLE) для настройки ссылок и распространения информации о сети на устройства Thread.

В конфигурации канала MLE используется для:

  • Обнаружение ссылок на соседние устройства
  • Определить качество ссылок на соседние устройства
  • Установить ссылки на соседние устройства
  • Согласование параметров канала (тип устройства, счетчики кадров, время ожидания) с одноранговыми узлами.

MLE распространяет следующие типы информации на устройства, желающие установить связь:

  • Данные лидера (RLOC лидера, идентификатор раздела, вес раздела)
  • Сетевые данные (сетевые префиксы, автоконфигурация адресов, более конкретные маршруты)
  • Распространение маршрута

Распространение маршрута в Thread работает аналогично протоколу маршрутной информации (RIP), протоколу маршрутизации на основе вектора расстояния.

Создать новую сеть

Если устройство решает создать новую сеть, оно выбирает наименее загруженный канал и идентификатор PAN, не используемый другими сетями, затем становится маршрутизатором и выбирает себя лидером. Это устройство отправляет сообщения MLE Advertisement другим устройствам 802.15.4, чтобы информировать их о состоянии своего канала, и отвечает на запросы Beacon от других устройств Thread, выполняющих активное сканирование.

Присоединяйтесь к существующей сети

Если устройство решает присоединиться к существующей сети, оно настраивает свой канал, идентификатор PAN, идентификатор XPAN и сетевое имя в соответствии с таковыми в целевой сети с помощью настройки потока, а затем проходит процесс подключения MLE для подключения в качестве дочернего (конечного устройства). ). Этот процесс используется для ссылок «дочерний-родительский».

  1. Дочерний элемент отправляет многоадресный родительский запрос всем соседним маршрутизаторам и устройствам REED в целевой сети.
  2. Все соседние маршрутизаторы и REED (если маска сканирования родительского запроса включает REED) отправляют родительские ответы с информацией о себе.
  3. Дочерний элемент выбирает Родительское устройство и отправляет ему Запрос идентификатора дочернего элемента .
  4. Родитель отправляет ответ с идентификатором ребенка для подтверждения установления связи.

1. Родительский запрос

Родительский запрос — это многоадресный запрос от подключаемого устройства, который используется для обнаружения соседних маршрутизаторов и конечных устройств, отвечающих требованиям маршрутизатора (REED), в целевой сети.

OT MLE Прикрепить родительский запрос
Содержание сообщения родительского запроса
Режим Описывает прикрепляющее устройство
Испытание Проверяет своевременность родительского ответа для предотвращения повторных атак.
Маска сканирования Ограничивает запрос только маршрутизаторами или обоими маршрутизаторами и REED

2. Ответ родителей

Родительский ответ — это одноадресный ответ на родительский запрос, который предоставляет информацию о маршрутизаторе или REED для присоединяемого устройства.

OT MLE Прикрепить родительский ответ
Содержание сообщения с ответом родителя
Версия Версия протокола потока
Ответ Копия запроса родителей
Счетчик кадров связи 802.15.4 Счетчик кадров на маршрутизаторе/REED
Счетчик кадров MLE Счетчик кадров MLE на маршрутизаторе/REED
Адрес источника RLOC16 маршрутизатора/REED
Поле ссылки Получение качества сигнала маршрутизатора/REED
Связь Описывает уровень подключения маршрутизатора/REED.
Данные лидера Информация о лидере Router/REED
Испытание Проверяет своевременность запроса идентификатора ребенка для предотвращения повторных атак.

3. Запрос удостоверения личности ребенка

Запрос идентификатора ребенка — это одноадресный запрос от присоединяемого устройства (дочернего), который отправляется на маршрутизатор или REED (родительский) с целью установления связи «дочерний-родительский». Если запрос отправляется на REED, он обновляется до маршрутизатора, прежде чем принять запрос.

OT MLE Запрос на присоединение дочернего идентификатора
Содержание сообщения запроса идентификатора ребенка
Версия Версия протокола потока
Ответ Копия запроса на ответ родителей
Счетчик кадров связи 802.15.4 Счетчик кадров в дочернем элементе
Счетчик кадров MLE Счетчик кадров MLE на дочернем элементе
Режим Описывает ребенка
Тайм-аут Продолжительность бездействия до того, как родитель удалит дочерний элемент
Регистрация адреса (только для MED и SED) Зарегистрируйте IPv6-адреса

4. Ответ ID ребенка

Ответ Child ID — это одноадресный ответ от родителя, который отправляется дочернему элементу для подтверждения того, что связь «дочерний-родительский» установлена.

Ответ OT MLE на присоединение дочернего идентификатора
Содержание ответного сообщения ID ребенка
Адрес источника Родительский RLOC16
Адрес16 Детский RLOC16
Данные лидера Информация о родительском лидере (RLOC, ID раздела, вес раздела)
Сетевые данные Информация о сети Thread (сетевые префиксы, автоконфигурация адресов, более конкретные маршруты)
Маршрут (только REED) Распространение маршрута
Тайм-аут Продолжительность бездействия до того, как родитель удалит дочерний элемент
Регистрация адреса (только для MED и SED) Подтвердить зарегистрированные адреса

Резюме

Что вы узнали:

  • Устройство Thread выполняет активное сканирование существующих сетей.
  • Thread использует Mesh Link Establishment для настройки ссылок и распространения информации о сетевых устройствах.
  • Рекламные сообщения MLE информируют другие устройства Thread о сети устройства и состоянии канала.
  • Процесс присоединения MLE устанавливает связи «дочерний-родительский»

Проверьте свое понимание

Какой идентификатор не используется для идентификации сети Thread?
2-байтовый идентификатор персональной сети (PAN ID).
Неправильно. Сеть потоков частично идентифицируется идентификатором PAN.
8-байтовый идентификатор расширенной персональной сети (XPAN ID).
Неправильно. Сеть потоков частично идентифицируется с помощью XPAN ID.
Удобочитаемое сетевое имя.
Неправильно. Сеть потоков частично идентифицируется понятным для человека сетевым именем.
32-символьный SSID.
Правильный. В отличие от сети Wi-Fi 802.11, сетевые идентификаторы Thread не используют SSID.
Для чего используется родительский запрос?
Для обнаружения соседних маршрутизаторов и конечных устройств, соответствующих требованиям маршрутизатора (REED), в целевой сети.
Правильный. Родительский запрос выдается устройством, пытающимся подключиться к сети.
Чтобы объявить, что маршрутизатор становится родителем.
Неправильно. Маршрутизатор не инициирует отношения «родитель-потомок» с другим сетевым устройством. Вместо этого сетевое устройство выбирает маршрутизатор, который становится его дочерним элементом.
Чтобы запросить, чтобы конечное устройство, отвечающее требованиям маршрутизатора, было повышено до маршрутизатора.
Неправильно.
Родительский запрос использует какой тип адреса?
одноадресная передача
Неправильно.
любая передача
Неправильно.
многоадресная рассылка
Правильный.
транслировать
Неправильно.
Когда устройство первоначально подключается к сети Thread, какова его классификация устройств?
Ребенок (конечное устройство)
Правильный. Устройство, присоединяющееся к сети Thread, всегда начинается как конечное устройство в этой сети.
FTD (полнопотоковое устройство)
Неправильно.
REED (конечное устройство с поддержкой маршрутизатора)
Неправильно.