Посмотреть исходный код на GitHub
Связанный доминирующий набор
Маршрутизаторы должны формировать Connected Domination Set (CDS), что означает:
- Между любыми двумя маршрутизаторами существует путь только для маршрутизатора.
- Любой маршрутизатор в сети потоков может связаться с любым другим маршрутизатором, полностью оставаясь в пределах набора маршрутизаторов.
- Каждое конечное устройство в сети Thread напрямую подключено к маршрутизатору.
Распределенный алгоритм поддерживает CDS, что обеспечивает минимальный уровень избыточности. Каждое устройство изначально подключается к сети как конечное устройство (дочернее). По мере изменения состояния сети потоков алгоритм добавляет или удаляет маршрутизаторы для поддержания CDS.
Тема добавляет маршрутизаторы в:
- Увеличьте покрытие, если сеть ниже порогового значения маршрутизатора 16.
- Увеличение разнообразия путей
- Поддерживать минимальный уровень резервирования
- Расширьте возможности подключения и поддержите больше детей
Тема удаляет маршрутизаторы для:
- Уменьшите состояние маршрутизации ниже максимального значения в 32 маршрутизатора.
- При необходимости разрешите новые маршрутизаторы в других частях сети.
Обновите маршрутизатор
После подключения к сети Thread дочернее устройство может выбрать роль маршрутизатора. Прежде чем инициировать процесс запроса соединения MLE, ребенок отправляет сообщение запроса адреса лидеру, запрашивая идентификатор маршрутизатора. Если Лидер соглашается, он отвечает идентификатором Маршрутизатора, и Дочерний элемент обновляется до Маршрутизатора.
Затем процесс запроса соединения MLE используется для установления двунаправленных соединений маршрутизатор-маршрутизатор с соседними маршрутизаторами.
- Новый маршрутизатор отправляет запрос многоадресной связи соседним маршрутизаторам.
- Маршрутизаторы отвечают сообщениями Link Accept и Request .
- Новый маршрутизатор отвечает каждому маршрутизатору одноадресным сообщением Link Accept для установления соединения между маршрутизаторами.
1. Запрос ссылки
Запрос на соединение — это запрос от маршрутизатора ко всем другим маршрутизаторам в сети потоков. Впервые становясь маршрутизатором, устройство отправляет запрос многоадресной связи на ff02::2
. Позже, после обнаружения других маршрутизаторов через объявления MLE, устройства отправляют одноадресные запросы на соединение.
Содержание сообщения запроса ссылки | |
---|---|
Версия | Версия протокола потока |
Испытание | Проверяет своевременность ответа по ссылке для предотвращения атак повторного воспроизведения. |
Исходный адрес | RLOC16 отправителя |
Данные лидера | Информация о лидере маршрутизатора, хранящаяся у отправителя (RLOC, идентификатор раздела, вес раздела). |
2. Принятие ссылки и запрос
Сообщение «Принятие и запрос соединения» представляет собой комбинацию сообщений «Принятие соединения» и «Запрос соединения». Thread использует эту оптимизацию в процессе запроса соединения MLE, чтобы уменьшить количество сообщений с четырех до трех.
3. Принять ссылку
Link Accept — это одноадресный ответ на запрос соединения от соседнего маршрутизатора, который предоставляет информацию о себе и принимает ссылку на соседний маршрутизатор.
Ссылка Принять Содержимое сообщения | |
---|---|
Версия | Версия протокола потока |
Ответ | Проверяет своевременность ответа по ссылке для предотвращения атак повторного воспроизведения. |
Счетчик кадров ссылки | Счетчик кадров 802.15.4 на отправителе |
Счетчик кадров MLE | Счетчик кадров MLE на отправителе |
Исходный адрес | RLOC16 отправителя |
Данные лидера | Информация о лидере маршрутизатора, хранящаяся у отправителя (RLOC, идентификатор раздела, вес раздела). |
Переход на REED
Когда маршрутизатор переходит на REED, его каналы связи «маршрутизатор-маршрутизатор» отключаются, и устройство инициирует процесс подключения MLE для установления соединения «дочерний-родительский».
См. раздел «Присоединение к существующей сети» для получения дополнительной информации о процессе подключения MLE.
Односторонние ссылки для получения
В некоторых сценариях может потребоваться установить одностороннюю линию приема.
После сброса маршрутизатора соседние маршрутизаторы могут по-прежнему иметь действующую линию приема с перезагруженным маршрутизатором. В этом случае перезагруженный маршрутизатор отправляет сообщение запроса соединения для повторного установления соединения маршрутизатор-маршрутизатор.
Конечное устройство также может захотеть установить канал приема с соседними неродительскими маршрутизаторами для повышения надежности многоадресной рассылки. Мы узнаем об этом больше, когда доберемся до многоадресной маршрутизации.
Резюме
Что вы узнали:
- Маршрутизаторы в сети Thread должны образовывать Connected Domination Set (CDS).
- Потоковые устройства обновляются до маршрутизаторов или понижаются до конечных устройств для поддержки CDS.
- Процесс запроса соединения MLE используется для установления соединений маршрутизатор-маршрутизатор.