¿Qué medidas ha tomado el protocolo s-mac para abordar estos factores?
El protocolo S-MAC está diseñado en base al SC9636-006 del protocolo IEEE 802.11 para satisfacer las necesidades de ahorro energético de las redes de sensores. S-MAC incluye métodos para ahorrar energía a partir de diversos métodos de consumo de energía, como: escucha inactiva, colisión, diafonía y sobrecarga de control. Antes de describir los componentes de S-MAC, primero describimos nuestras suposiciones sobre las redes de sensores inalámbricos y sus aplicaciones.
Descripción general del protocolo S-MAC del protocolo MAC para redes de sensores inalámbricos
Las redes de sensores están compuestas por múltiples nodos y utilizan comunicación de múltiples saltos de corta distancia para ahorrar energía. Las comunicaciones se producen entre nodos pares. El procesamiento dentro de la red es importante para la vida útil de la red, lo que significa que los datos se procesarán como un mensaje completo en forma de almacenamiento y reenvío. Finalmente, asumimos que la aplicación tendrá largos períodos de inactividad y podrá tolerar retrasos cronológicos en la entrega de la red.
1. Escucha y suspensión periódicas
Como se mencionó anteriormente, en la mayoría de las aplicaciones de redes de sensores, si no se detecta ningún evento, el nodo estará inactivo durante mucho tiempo. Suponemos que la velocidad de datos durante este período es muy baja, por lo que no es necesario mantener el nodo escuchando todo el tiempo. S——MAC reduce el tiempo de escucha al poner los nodos en estado de suspensión periódica. Cada nodo duerme durante un período de tiempo, luego se despierta y escucha para ver si otros nodos quieren comunicarse con él. Durante el sueño, el nodo apaga el dispositivo inalámbrico y configura un temporizador para despertarse más tarde.
Un ciclo completo de escucha y sueño se llama marco. El intervalo de escucha suele ser fijo y se determina en función de los parámetros de la capa física y de la capa MAC, como el ancho de banda inalámbrico y el tamaño de la ventana de contención. El ciclo de trabajo se refiere a la relación entre el intervalo de escucha y la longitud total del cuadro. El intervalo de suspensión puede variar según los diferentes requisitos de la aplicación, lo que en realidad cambia el ciclo de trabajo. En pocas palabras, estos valores son los mismos para todos los nodos y todos los nodos son libres de elegir su propio horario de escucha/sueño. Sin embargo, para reducir la sobrecarga de control, preferimos que los nodos vecinos permanezcan sincronizados, es decir, escuchen al mismo tiempo y entren en suspensión al mismo tiempo. Vale la pena señalar que no todos los nodos vecinos pueden permanecer sincronizados en una red de múltiples saltos. Si el nodo A y el nodo B tienen que sincronizarse con diferentes nodos C y D respectivamente, entonces el nodo A y el nodo B pueden tener horarios diferentes y los nodos vecinos A y B tienen horarios diferentes con el nodo C y el nodo D respectivamente.
Los nodos intercambian sus horarios transmitiendo periódicamente paquetes SYNC a sus vecinos inmediatos. Un nodo se comunica con sus nodos vecinos en horarios de escucha programados para garantizar que todos los nodos vecinos puedan comunicarse, incluso si tienen horarios diferentes. Por ejemplo, si el nodo A quiere comunicarse con el nodo B, el nodo A debe esperar hasta que el nodo B esté escuchando. El momento en que un nodo envía un paquete SYNC se denomina tiempo de sincronización. Una característica de S-MAC es que forma nodos en una topología plana de igual a igual. A diferencia de los protocolos de clúster, SMAC no necesita cooperar a través de cabezas de clúster. En cambio, los nodos forman clústeres virtuales según un cronograma común y se comunican directamente con sus pares. Una ventaja de este enfoque es que es más sólido que los enfoques basados en clústeres cuando cambia la topología. La desventaja de este mecanismo es que el sueño periódico aumenta la latencia y, además, la latencia tiene el potencial de acumularse en cada salto.
2. Evitar conflictos
Si varios nodos vecinos quieren comunicarse con un nodo al mismo tiempo, intentarán enviar mensajes cuando el nodo comience a escuchar, en cuyo caso lo necesitarán. Medios en competencia. Entre los protocolos de la competencia, IEEE 802.II hace un buen trabajo evitando colisiones. S - MAC sigue un proceso similar, que incluye detección de portadora virtual y detección de portadora física, intercambio RTS/CTS (solicitud de envío/borrado de envío) para resolver el problema del terminal oculto. Hay un campo de duración en cada paquete de transmisión para identificar cuánto tiempo se transmitirá el paquete. Si un nodo recibe un paquete transmitido a otro nodo, el nodo puede saber cuánto tiempo tomará en el campo de duración. El nodo registra este valor en forma de una variable, llamada vector de asignación de red (NAV), que puede verse como un temporizador. Cada vez que el temporizador comienza a contar, el nodo disminuye su NAV hasta que se reduce a 0. Antes de transmitir, el nodo primero verifica su NAV. Si su valor no es 0, el nodo considera que el medio está ocupado. Esto se denomina detección de portadora virtual.
La detección de portadora física se realiza en la capa física escuchando el canal para detectar posibles transmisiones. El tiempo de detección del portador es un valor aleatorio dentro de la ventana de contención para evitar colisiones y muertes por inanición. Si tanto la detección de portadora virtual como la detección de portadora física indican que el medio está inactivo, entonces el medio está inactivo.
Todos los remitentes realizan la detección de portadora antes de iniciar una transmisión. Si un nodo no adquiere medios, entrará en modo de suspensión y se despertará cuando el receptor esté inactivo y escuche nuevamente. La transmisión de paquetes de difusión no requiere RTS/CTS, y los paquetes de unidifusión siguen la secuencia RTS/CTS/DATA/ACK entre el remitente y el receptor. Después de que RTS y CTS se intercambien exitosamente, ambos nodos usarán su tiempo de inactividad para la transmisión de paquetes de datos y no seguirán su horario de inactividad hasta que completen la transmisión. Dentro de cada intervalo de escucha, S-MAC identifica efectivamente el consumo de energía debido a la escucha y las colisiones debidas a la operación del ciclo de trabajo y los mecanismos de contención.
4. Las tecnologías clave para la implementación del protocolo S-MAC son las siguientes.
(1) Estructura anidada de paquetes de datos
En el protocolo S-MAC, el paquete de datos de la capa superior contiene el contenido del paquete de datos de la capa inferior. Cualquiera que sea la capa a la que se envíe un paquete, esa capa solo necesita procesar su parte.
(2) Estructura y función de la pila
En la pila del protocolo S-MAC, cuando la capa MAC recibe el paquete de datos transmitido desde la capa superior, inicia la detección de portadora. Si el resultado muestra que la capa MAC está inactiva, transmitirá los datos a la capa física; si la capa MAC está ocupada, entrará en estado de suspensión hasta que llegue el próximo tiempo disponible y luego los reenviará. Cuando la capa MAC recibe el paquete de datos transmitido desde la capa física, primero pasa la verificación de redundancia cíclica (CRC) para indicar que no hay ningún error y la capa MAC transmitirá el paquete de datos a la capa superior.
(3) Seleccionar y mantener el horario
Antes de comenzar a escuchar y dormir periódicamente, cada nodo debe seleccionar un mecanismo de programación del sueño y ser coherente con los nodos vecinos. La forma de elegir y mantener el mecanismo de programación se divide en las siguientes tres situaciones.
① Durante el tiempo de escucha, si el nodo no escucha el mecanismo de programación del sueño de otros nodos, seleccionará inmediatamente un mecanismo de programación del sueño.
② Cuando un nodo recibe el mecanismo de programación del sueño transmitido por un nodo vecino antes de seleccionar y anunciar su propio mecanismo de programación, adoptará el mecanismo de programación del sueño del nodo vecino.
③Cuando un nodo recibe varios mecanismos de programación de sueño diferentes después de seleccionar y transmitir su propio mecanismo de programación de sueño, se debe considerar en las dos situaciones siguientes: Cuando un nodo no tiene nodos vecinos, abandonará su sueño actual mecanismo de programación y adopta el mecanismo de programación de sueño que acaba de recibir; cuando un nodo tiene uno o más nodos vecinos, adoptará diferentes mecanismos de programación al mismo tiempo;
(4) Sincronización horaria
En el protocolo S-MAC, el nodo y sus nodos vecinos necesitan mantener la sincronización horaria para escuchar y dormir al mismo tiempo. El protocolo S-MAC utiliza marcas de tiempo relativas en lugar de absolutas y hace que el tiempo de escucha sea mucho mayor que el error y la deriva del reloj para reducir los errores de sincronización, y el nodo actualizará su propio tiempo en función de los paquetes de datos recibidos de los nodos vecinos. sincronización horaria con nodos vecinos.
(5) Acceso múltiple con detección de portadora y prevención de colisiones
El mecanismo básico de acceso múltiple con detección de portadora y prevención de colisiones (CSMA/CA) se establece entre el receptor y un mecanismo de protocolo de enlace. entre remitentes para transmitir datos.
El mecanismo de protocolo de enlace es: el remitente envía una solicitud para enviar un paquete (RTS) a su receptor, y el receptor responde con un paquete listo para recibir (CTS) después de recibirlo. El remitente recibe el CTS después. Después de enviar el paquete, el paquete de datos comienza a enviarse. El protocolo de enlace entre RTS y CTS es para que los nodos vecinos del extremo emisor y del extremo receptor sepan que están transmitiendo datos, reduciendo así las colisiones de transmisión.
(6) Vector de asignación de red
En el protocolo S-MAC, cada nodo mantiene un vector de asignación de red (NAV) para representar el tiempo de actividad de los nodos vecinos, S- El MAC El protocolo contiene un valor de indicador de duración en cada paquete de datos. El valor del indicador de duración indica cuánto tiempo debe durar la comunicación actual. Cuando un nodo vecino recibe un paquete de datos enviado por el remitente o el receptor a otros nodos, puede saber cuánto tiempo necesita dormir, es decir, actualizar el valor NAV con la duración en el paquete de datos cuando el valor NAV no es cero. , el nodo debe entrar en suspensión para evitar conversaciones cruzadas.
Cuando el NAV llega a cero, se activa inmediatamente y está listo para comunicarse.
En comparación con IEEE 802.11 MAC, el protocolo S-MAC extiende el tiempo de suspensión de otros nodos tanto como sea posible, reduce la probabilidad de colisión y reduce la energía consumida por la escucha inactiva a través de la escucha adaptativa del tráfico; mecanismo, Reducir el retraso de transmisión de mensajes en la red; utilizar señalización dentro de banda para reducir las retransmisiones y evitar monitorear datos innecesarios mediante segmentación de mensajes y mecanismos de entrega en ráfaga y retraso en el procesamiento de datos dentro de banda; Por lo tanto, el protocolo S-MAC tiene buenas características de ahorro de energía, lo cual es razonable para las necesidades y características de las redes de sensores inalámbricos. Sin embargo, debido al ciclo de trabajo fijo en S-MAC, no puede adaptarse bien a los cambios del tráfico de la red. y la implementación del protocolo es muy compleja y requiere una gran cantidad de espacio de almacenamiento. Esto es especialmente importante para los nodos de sensores con recursos limitados.