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