Selección de router

Ver código fuente en GitHub

Conjunto dominante conectado

Conjunto dominante conectado de OT
Ejemplo de un conjunto dominante conectado

Los routers deben formar un conjunto dominante conectado (CDS), lo que significa lo siguiente:

  1. Hay una ruta solo de router entre dos routers.
  2. Cualquier router de una red Thread puede llegar a cualquier otro router si se mantiene completamente dentro del conjunto de routers.
  3. Cada dispositivo final de una red Thread está conectado directamente a un router.

Un algoritmo distribuido mantiene el CDS, lo que garantiza un nivel mínimo de redundancia. Inicialmente, cada dispositivo se conecta a la red como dispositivo final (secundario). A medida que cambia el estado de la red de Thread, el algoritmo agrega o quita routers para mantener el CDS.

Thread agrega routers a lo siguiente:

  • Aumenta la cobertura si la red está por debajo del umbral de 16 del router
  • Aumenta la diversidad de las rutas
  • Mantén un nivel mínimo de redundancia
  • Extiende la conectividad y admite más dispositivos infantiles

Thread quita routers para lo siguiente:

  • Reduce el estado de enrutamiento por debajo del máximo de 32 routers
  • Permite routers nuevos en otras partes de la red cuando sea necesario

Actualiza a un router

Después de conectarse a una red Thread, el dispositivo secundario puede optar por convertirse en un router. Antes de iniciar el proceso de solicitud de vinculación de MLE, el secundario envía un mensaje de solicitud de dirección al líder para solicitar un ID de router. Si el líder acepta, responde con un ID de router y el secundario se actualiza a un router.

Luego, se usa el proceso de solicitud de vínculo MLE para establecer vínculos bidireccionales entre routers con routers vecinos.

  1. El router nuevo envía una solicitud de vínculo multicast a los routers vecinos.
  2. Los routers responden con mensajes de Link Accept and Request.
  3. El router nuevo responde a cada router con un Link Accept unicast para establecer el vínculo entre routers.

Una solicitud de vinculación es una solicitud del router a todos los demás routers de la red Thread. Cuando se convierte en un router por primera vez, el dispositivo envía una solicitud de vínculo multicast a ff02::2. Más adelante, después de descubrir los otros routers a través de anuncios MLE, los dispositivos envían solicitudes de vínculo unicast.

Solicitud de vinculación de MLE de OT
Contenido del mensaje de solicitud de vinculación
Versión Versión del protocolo de subproceso
Desafío Prueba la puntualidad de la respuesta de vinculación para evitar ataques de reproducción
Dirección de origen RLOC16 del remitente
Datos de líderes Información sobre el líder del router, tal como se almacena en el remitente (RLOC, ID de partición, peso de partición)

Una solicitud de vinculación y aceptación es una combinación de los mensajes de vinculación y aceptación. Thread usa esta optimización en el proceso de solicitud de vinculación de MLE para reducir la cantidad de mensajes de cuatro a tres.

Aceptación y solicitud de vinculación de MLE de OT

Una aceptación de vínculo es una respuesta unicast a una solicitud de vínculo de un router vecino que proporciona información sobre sí mismo y acepta el vínculo con el router vecino.

Aceptación de vínculo de MLE de OT
Vincula el contenido del mensaje de aceptación
Versión Versión del protocolo de subproceso
Respuesta Prueba la puntualidad de la respuesta de vinculación para evitar ataques de reproducción
Contador de tramas de vinculación Contador de tramas 802.15.4 en el remitente
Contador de marcos de MLE Contador de fotogramas de MLE en el remitente
Dirección de origen RLOC16 del remitente
Datos de líderes Información sobre el líder del router, tal como se almacena en el remitente (RLOC, ID de partición, peso de partición)

Cómo cambiar a una versión inferior de REED

Cuando un router cambia a una versión inferior a REED, se desconectan sus vínculos entre routers y el dispositivo inicia el proceso de conexión de MLE para establecer un vínculo entre nodos secundarios y superiores.

Consulta Cómo unirse a una red existente para obtener más información sobre el proceso de conexión de MLE.

En algunos casos, es posible que debas establecer un vínculo de recepción unidireccional.

Después de restablecer un router, es posible que los routers vecinos aún tengan un vínculo de recepción válido con el router restablecido. En este caso, el router restablecido envía un mensaje de solicitud de vinculación para restablecer la vinculación entre routers.

Es posible que un dispositivo final también desee establecer un vínculo de recepción con routers vecinos que no sean de nivel superior para mejorar la confiabilidad de la transmisión multicast. Aprenderemos más sobre esto cuando lleguemos al enrutamiento multicast.

Resumen

Qué aprendiste:

  • Los routers de una red Thread deben formar un conjunto dominante conectado (CDS).
  • Los dispositivos Thread se actualizan a routers o se cambian a dispositivos finales para mantener el CDS.
  • El proceso de solicitud de vínculo de MLE se usa para establecer vínculos entre routers.

Verifica tu comprensión

¿Cuáles de estas reglas no se aplican con un conjunto dominante conectado (CDS)?
Hay una ruta solo de router entre dos routers.
Incorrecto.
Cualquier router de una red Thread puede llegar a cualquier otro router si permanece dentro del conjunto de routers.
Incorrecto.
Cada dispositivo final de una red Thread está conectado directamente a un router.
Incorrecto.
Solo un router en una red Thread puede ser un router de borde.
Correcto. Una red Thread puede tener varios routers de borde.
¿Por qué se podría quitar un router de una red Thread?
Para reducir el estado de enrutamiento por debajo del máximo de 32 routers.
Correcto. Las redes Thread se esfuerzan por mantener una cantidad óptima de routers. La cantidad máxima de routers que puede tener cualquier red Thread es de 32.
Para liberar canales.
Incorrecto. La cantidad de routers no tiene relación con el uso ni la capacidad del canal.
Para permitir la elección de routers nuevos en otras partes de la red cuando sea necesario.
Correcto. Reducir la cantidad de routers activos en una parte de una red de Thread aumenta su capacidad para aumentar la capacidad de enrutamiento en otro lugar.
¿Qué debe suceder antes de que un REED que intenta convertirse en un router pueda establecer vínculos directos con los otros routers?
El REED debe enviar un mensaje de solicitud de dirección al líder de la red.
Correcto.
El líder debe otorgar un ID de router al REED.
Correcto. Sin un ID de router, el REED seguirá siendo un dispositivo secundario.
El REED debe enviar una solicitud de vinculación de MLE.
Todo lo contrario. La solicitud de vínculo MLE es la forma en que el dispositivo establece vínculos con otros routers una vez que se convierte en un router.
¿Cuál de las siguientes afirmaciones describe con exactitud lo que sucede cuando un router cambia a una versión inferior?
El dispositivo permanece automáticamente en la red, pero como secundario (REED).
Todo lo contrario. Cuando un router realiza una baja de versión, se deben seguir más pasos.
El dispositivo debe iniciar el proceso de conexión de MLE para establecer una conexión nueva con la red.
Correcto. Un dispositivo que cambia de la versión del router a la de REED se desconecta y debe renegociar su conexión a la red.
¿Qué proceso se usa para establecer vínculos entre routers?
El proceso de solicitud de vinculación de MLE
Correcto.
Proceso de solicitud y aceptación de vínculos.
Incorrecto. No existe un proceso de aceptación y solicitud de vinculación. Los routers envían mensajes de aceptación y solicitud de vinculación en respuesta a los mensajes de solicitud de vinculación como parte del proceso de solicitud de vinculación de MLE.
El proceso de conexión de MLE
Incorrecto. El proceso de conexión de MLE es el proceso mediante el cual un dispositivo se une a una red Thread existente.