Descubrimiento y formación de redes

Ver código fuente en GitHub

Redes Thread

Las redes de Thread se identifican mediante tres identificadores únicos:

  • ID de red de área personal de dos bytes (ID de PAN)
  • ID de red de área personal extendida de 8 bytes (ID de XPAN)
  • Un nombre de red legible

Por ejemplo, una red Thread puede tener los siguientes identificadores:

Identificador Valor
ID PAN 0xBEEF
ID de XPAN 0xBEEF1111CAFE2222
Nombre de la red yourThreadCafe
Búsqueda activa de PO

Cuando se crea una nueva red Thread o se busca una existente, un dispositivo Thread realiza un análisis activo de las redes 802.15.4 dentro del rango de radio:

  1. El dispositivo transmite una solicitud de baliza 802.15.4 en un canal específico.
  2. A cambio, cualquier router o dispositivo final apto (REED) del router dentro del rango transmite una baliza que contiene su ID PAN, ID XPAN y nombre de red de Thread.
  3. El dispositivo repite los dos pasos anteriores para cada canal.

Una vez que un dispositivo Thread descubre todas las redes que se encuentran dentro del alcance, puede conectarse a una red existente o crear una nueva si no se detectan redes.

Thread usa el protocolo de establecimiento de vínculos de malla (MLE) para configurar vínculos y distribuir información sobre la red a dispositivos Thread.

En la configuración del vínculo, el MLE se usa para lo siguiente:

  • Descubre vínculos a dispositivos cercanos
  • Determina la calidad de los vínculos a dispositivos cercanos
  • Establecer vínculos a dispositivos cercanos
  • Negociar parámetros de vínculo (tipo de dispositivo, contadores de marcos, tiempo de espera) con pares

El MLE divulga los siguientes tipos de información a los dispositivos que desean establecer vínculos:

  • Datos del líder (RLOC líder, ID de la partición, peso de la partición)
  • Datos de red (prefijos de malla, configuración automática de direcciones, rutas más específicas)
  • Propagación de ruta

La propagación de rutas en Thread funciona de manera similar al Protocolo de información de enrutamiento (RIP), un protocolo de enrutamiento de vector de distancia.

Crear red nueva

Si el dispositivo decide crear una nueva red, selecciona el canal menos ocupado y un ID de PAN que no están en uso en otras redes, luego se convierte en un router y se elige como líder. Este dispositivo envía mensajes de anuncios de MLE a otros dispositivos 802.15.4 para informarles sobre su estado de vínculo y responde a las solicitudes de balizas de otros dispositivos Thread que realizan un análisis activo.

Unirse a una red existente

Si el dispositivo decide unirse a una red existente, configura su canal, ID de PAN, ID de XPAN y nombre de red para que coincida con el de la red de destino mediante la confirmación del subproceso, y luego se somete al proceso de conexión de MLE para establecer la conexión como elemento secundario (dispositivo final). Este proceso se utiliza para los vínculos entre el hijo y el padre o la madre.

  1. El elemento secundario envía una solicitud superior multidifusión a todos los routers y REED vecinos en la red de destino.
  2. Todos los REED y los routers cercanos (si la máscara de análisis de solicitud superior incluye REED) envían respuestas superiores con información sobre ellos mismos.
  3. El elemento secundario elige un dispositivo superior y le envía una Solicitud de ID secundaria.
  4. El elemento superior envía una respuesta de ID de elemento secundario para confirmar el establecimiento del vínculo.

1. Solicitud de la red superior

Una solicitud superior es una solicitud de multidifusión del dispositivo adjunto que se usa para descubrir routers y dispositivos finales aptos (REED) vecinos en la red de destino.

Adjuntar solicitud al superior para ML ML
Contenido del mensaje para la solicitud de la madre o el padre
Modo Describe el dispositivo de conexión
Desafío Prueba la puntualidad de la respuesta de los padres para evitar ataques de repetición
Scan Mask Limita la solicitud solo a los routers, o a los routers y a los REED.

2. Respuesta de los padres

Una respuesta superior es una respuesta de unidifusión a una solicitud superior que proporciona información sobre un router o REED al dispositivo adjunto.

Respuesta de la declaración superior adjunta de OT MLE
Contenido del mensaje para la respuesta de los padres
Versión Versión del protocolo de subprocesos
Respuesta Copia del Desafío de solicitud para padres
Contador de marcos de vínculos Contador de marcos 802.15.4 en el router/REED
MLE Frame Counter Contador de marcos MLE en el router/REED
Dirección de origen RLOC16 del router/REED
Margen del vínculo Recibir la calidad de señal del router/REED
Conectividad Describe el nivel de conectividad del router/REED
Datos del líder Información sobre el router o el líder del REED
Desafío Prueba la puntualidad de la solicitud de ID del elemento secundario para evitar ataques de repetición

3. Solicitud de ID secundaria

Una solicitud de ID secundario es una solicitud de unidifusión del dispositivo adjunto (secundario), que se envía al router o al REED (superior) para establecer un vínculo superior-secundario. Si la solicitud se envía a un REED, se actualiza a un router antes de aceptar la solicitud.

Solicitud para adjuntar el ID secundario de MLE de OT
Contenido del mensaje de solicitud de ID del niño
Versión Versión del protocolo de subprocesos
Respuesta Copia del desafío de respuesta para padres
Contador de marcos de vínculos 802.15.4 Contador de marcos en el elemento secundario
MLE Frame CounterContador de marcos de MLE en el elemento secundario
Modo Describe al niño
Tiempo de espera Duración de la inactividad antes de que el elemento superior quite el elemento secundario
Registro de la dirección (solo para MED y SED) Registra direcciones IPv6

4. Respuesta de ID secundario

Una respuesta de ID secundaria es una respuesta de unidifusión del elemento superior que se envía al secundario para confirmar que se estableció un vínculo secundario.

Respuesta de OT MLE Attach Child ID
Contenido del mensaje de respuesta del ID del niño
Dirección de origen RLOC16 para padres
Dirección16 RLOC16 para niños
Datos del líder Información sobre el líder superior (RLOC, ID de partición, peso de la partición)
Datos de red Información sobre la red de Thread (prefijos en malla, configuración automática de direcciones, rutas más específicas)
Ruta (solo REED) Propagación de ruta
Tiempo de espera Duración de la inactividad antes de que el elemento superior quite el elemento secundario
Registro de la dirección (solo para MED y SED) Confirmar direcciones registradas

Resumen

Qué aprendiste:

  • Un dispositivo Thread realiza un análisis activo en busca de redes existentes
  • Thread usa Mesh Link Establishment para configurar vínculos y difundir información sobre los dispositivos de red.
  • Los mensajes de anuncios de MLE informan a otros dispositivos Thread sobre la red de un dispositivo y el estado del vínculo.
  • El proceso de vinculación de MLE establece vínculos entre el elemento secundario y el superior.

Comprueba tu comprensión

¿Qué identificador no se usa para identificar una red Thread?
Un ID de 2 bytes de la red de área personal (ID de PAN).
Incorrecto. Una red de subprocesos se identifica, en parte, con un ID PAN.
Un ID de red de área personal extendida de 8 bytes (ID de XPAN).
Incorrecto. Una red de subprocesos se identifica, en parte, con un ID de XPAN.
Un nombre de red legible.
Incorrecto. Una red de subprocesos se identifica, en parte, mediante un nombre de red legible.
Un SSID de 32 caracteres
Correcto. A diferencia de la red Wi-Fi 802.11, los identificadores de red Thread no usan SSID.
¿Para qué se usa una solicitud de nivel superior?
Para detectar routers y dispositivos finales aptos (REED) cercanos en la red de destino
Correcto. Una solicitud superior es emitida por un dispositivo que intenta conectarse a una red.
Para anunciar que un router se está convirtiendo en uno superior.
Incorrecto. Un router no inicia una relación de superior y secundario con otro dispositivo de red. En su lugar, un dispositivo de red selecciona un router para que se convierta en su elemento secundario.
Solicitar que un dispositivo final apto para router ascienda a un router
Incorrecto.
¿Qué tipo de dirección usa una solicitud de superior?
Unicast
Incorrecto.
Anycast
Incorrecto.
multidifusión
Correcto.
transmisión
Incorrecto.
Cuando un dispositivo se conecta inicialmente a una red Thread, ¿cuál es su clasificación?
Niño (Dispositivo final)
Correcto. Un dispositivo que se une a una red Thread siempre comienza como un dispositivo final en esa red.
FTD (dispositivo de conversación completa)
Incorrecto.
REED (dispositivo final apto para el router)
Incorrecto.