La capa MAC

El estándar 802.11 define en su capa ce control de acceso al medio (MAC, medium access control) una serie de funciones para realizar las operaciones propias de las redes inalámbricas. La capa MAC se encarga, en general, de gestionar y mantener las comunicaciones entre estaciones 801.11, bien sean puntos de acceso a adaptadores de red. La capa MAC tiene que coordinar el acceso a un canal de radio compartido y utilizar su capa Física (PHY) 802.11b o 802.11g para detectar la portadora y transmisión y recepción de tramas.

Un adaptador de red cliente tiene que obtener primero el acceso al medio antes de poder transmitir tramas. El medio es una canal de radio compartido. El estándar 802.11 define dos formas de acceso al medio, función de coordinación distribuida (DCF) y función de coordinación de punto (PCF) que no vamos a tratar.

DCF es obligatorio en todas las estaciones inalámbricas y se basa en el protocolo CSMA/CA (carrier sense multiple access/collision avoidance). Una estación sólo puede transmitir cuando el canal está libre, si otra estación envía una trama debe esperar a que el canal esté libre para poder transmitir. Observamos como ethernet utiliza CSMA/CD (carrier sense multiple access/collision detection) ligeramente diferente del caso inalámbrico.

En CSMA/CA cuando estación que quiere transmitir realiza una serie de pasos:

  • Escuchar en el canal correspondiente.

  • Si el canal está libre envía la trama.

  • Si el canal está ocupado espera un tiempo aleatorio denominado contención y vuelve a intentarlo.

  • Transcurrido el tiempo de contención vuelve a repetir todo el proceso hasta que pueda enviar la trama.

En las estaciones inalámbricas una estación emisora no puede escuchar las colisiones mientras envía datos, básicamente porque no pueden activar el receptor mientras transmiten una trama. Como consecuencia, la estación receptora debe enviar un ACK si no hubo errores en la recepción. Si la estación emisora no recibe el ACK tras un periodo de tiempo establecido supone que ha habido una colisión o una interferencia de radiofrecuencia y reenvía la trama.

Observamos que las colisiones pueden deteriorar seriamente el tráfico de la red, porque implica que el emisor, por un lado tenga que espere a recibir el ACK que no va a llegar y por otro, volver a intentar enviar la trama. Por este motivo el control de acceso al medio debería establecer algún tipo de mecanismo que paliara esta deficiencia.

La capa MAC comprueba, como condición para permitir el acceso al medio, una forma de evitar colisiones, el valor del vector de ubicación de red (network allocation vector, NAV), que es un contador residente en cada estación y que representa la cantidad de tiempo que tardó en transmitirse la anterior trama de cualquier estación. El valor de NAV tiene que ser cero antes de que una estación intente enviar una trama, porque sabe que durante ese tiempo ya hay otra estación emitiendo y si trata de emitir entrará en estado de contención, cosa que se trata de evitar. Antes de transmitir una trama la estación calcula el tiempo necesario para la transmisión basándose en su longitud y en la tasa de transmisión y lo sitúa en el campo de duración en la cabecera de la trama. Cuando cualquier estación recibe la trama, toma el campo de duración y lo utiliza para establecer su correspondiente NAV. Este proceso reserva el medio para la estación emisora y evita que otras estaciones comiencen a transmitir mientras no haya acabado.

Como hemos visto, un aspecto importante de DCF es un temporizador aleatorio que la estación utiliza cuando detecta una colisión por estar el medio ocupado. Si el canal está en uso la estación tendrá que esperar un un tiempo aleatorio antes de volver a intentar tener acceso al medio y de esta forma garantizamos que dos estaciones no van a transmitir al mismo tiempo. Este tiempo se conoce como contención.

Identificación de un nodo

Cada nodo se identifica mediante los 6 bytes de su dirección MAC. Cada nodo receptor reconoce su propia dirección MAC.

Funciones de la capa MAC 802.11

Vemos a continuación un resumen significativo de las funciones de la capa MAC para redes en modo infraestructura:

Búsqueda (Scanning)

El estándar 802.11 define tanto la búsqueda activa como pasiva, sistemas que utiliza un adaptador de red para localizar puntos de acceso. La búsqueda pasiva es obligatoria donde cada adaptador de red busca canales individuales para encontrar la mejor señal del punto de acceso. Periódicamente, cada punto de acceso difunde señales como si fuera un faro, y el adaptador de red recibe estas señales (beacon) mientras busca tomando nota de sus datos. Estas beacon (señales de faro) contiene datos sobre el punto de acceso incluyendo por ejemplo el SSID, tasas de transmisión admitidas, etc. El adaptador de red puede usar esta información para compararla y determinar junto con otras características, como la fuerza de la señal, qué punto de acceso utilizar.

La búsqueda activa es similar salvo que la propia tarjeta inicia el proceso difundiendo una trama de prueba a la que responden todos los puntos de acceso que estén al alcance con otra trama de prueba. En la búsqueda activa se permite que un adaptador de red reciba respuesta inmediata del punto de acceso sin necesidad de esperar a una transmisión beacon. En la práctica la búsqueda activa impone un carga adicional en la red debido a las tramas de prueba y sus respuestas.

Autenticación (Authentication)

La autenticación es el proceso para comprobar la identidad de un adaptador en la red para aceptarlo o rechazarlo. El estándar 802.11 especifica dos formas de autenticación, el sistem abierto y el sistema basado en una clave compartida.

El sistema abierto es obligatorio y consta de dos pasos.

  • El adaptador de red inicia el proceso enviando una trama de solicitud de autenticación al punto de acceso.

  • El punto de acceso responde con una trama de autenticación que indica si acepta o rechaza la autenticación en el campo de código de estado de la trama.

La autenticación de clave compartida es opcional y básicamente comprueba si la clave WEP es la correcta. El hecho de ser opcional para el protocolo no impide que esté en la práctica totalidad de los adaptadores y puntos de acceso. Este proceso consta de cuatro pasos:

  • El adaptador de red inicia el proceso enviando una trama de solicitud de autenticación al punto de acceso.

  • El punto de acceso responde con una trama de autenticación que contiene un texto de desafío.

  • El adaptador de red utiliza su clave WEP para cifrar el texto de desafío y lo devuelve al punto de acceso en otra trama de autenticación.

  • El punto de acceso descifra el valor cifrado, lo compara con el original y responde con una trama de autenticación que indica si acepta o rechaza la autenticación. Si coinciden el valor original y el de la respuesta el punto de acceso supone que el solicitante tiene la clave correcta.

Asociación

La asociación es un proceso por el cual el punto de acceso reserva recursos y sincroniza con una estación cliente.

Una vez que el adaptador de red se ha autenticado, también tiene que asociarse al punto de acceso antes poder transmitir tramas de datos. La asociación es importante para sincronizar a ambos elementos con información importante como por ejemplo las tasas de transmisión admitidas.

El adaptador de de inicia la asociación enviando una trama de solicitud de asociación que contiene elementos como el SSID y tasas de transferencia admitidas. El punto de acceso reserva memoria para ese cliente, le asigna un ID de asociación y le responde con una trama de respuesta de asociación que contiene el ID de asociación junto con otra información referente al punto de acceso. Una vez que el adaptador de red y el punto de acceso hayan completado el proceso de asociación pueden comenzar a transmitir tramas de datos entre ellos, es decir el cliente puede utilizar el punto de de acceso para comunicar con otros clientes de la red.

WEP

WEP es opcional en el estándar 802.11. Cuando tenemos WEP activo, el adaptador de red va a cifrar el cuerpo, no la cabecera, de cada trama antes de transmitirla. Para cifrar utiliza la clave común, la misma que tiene que utilizar el receptor para descifrarla.

El sistema de cifrado WEP está descrito en en la sección de seguridad.

RTS/CTS

Se puede presentar un problema en una red inalámbrica cuando dos estaciones asociadas al mismo punto de acceso no se ven entre sí. Cuando intenten transmitir ninguna de ellas detectará a la otra por lo que pueden transmitir simultáneamente, lo que origina una corrupción de datos en el resto de las estaciones. Para solucionar este problema se puede establecer un mecanismo para que cada estación notifique al punto de acceso que va a transmitir.

Las funciones request-to send y clear-to-send (RTS/CTS) permiten al punto de acceso controlar el uso del medio de las estaciones activando RTS/CTS. Si el adaptador activa RTS/CTS, entonces primero enviará una trama RTS al punto de acceso antes de enviar una trama de datos. El punto de acceso responde con una trama CTS indicando que el adaptador puede enviar la trama de datos. Con la trama CTS el punto de acceso envía un valor en el campo de duración de la cabecera de la trama que evita que otras estaciones transmitan hasta que el adaptador que haya iniciado RTS pueda enviar su trama de datos.

Este proceso de solicitud de envío evita colisiones entre nodos ocultos. El saludo RTS/CTS continúa en cada trama mientras que el tamaño de la trama exceda del umbral establecido en el adaptador correspondiente. En la mayoría de adaptadores de red los usuario pueden fijar un umbral máximo de tamaño de trama para que el adaptador de red active RTS/CTS. Por ejemplo, si establecemos un tamaño de trama de 1.000 bytes, cualquier trama de una tamaño superior a 1.000 bytes disparará RTS/CTS. De esta forma el proceso sólo afectaría a las tramas más grandes y más costosas de retransmitir pero las más pequeñas es mejor arriesgarse.

Como hemos visto, el uso de RTS/CTS puede solucionar el problemas que se presentaba cuando dos nodos asociados al mismo punto de acceso no se ven entre sí.

Modo ahorro energía (Power Save Mode)

El funcionamiento normal de las redes inalámbricas supone un acceso constante al medio (CAM, Constant Access Mode), es decir, escucha de forma constante la red con el consiguiente consumo de energía. En dispositivos móviles puede representar un serio inconveniente el excesivo consumo de batería, por lo que 802.11 establece unos mecanismos para intentar evitarlo. El mecanismo consiste en apagar el adaptador y hacer que se active en periodos regulares en todos los adapadores de la red en busca de un paquete beacon especial denominado TIM. Durante el tiempo que transcurre entre paquetes TIM el adaptador se desactiva para ahorrar energía. Todos los adaptadores de una red tienen que activarse simultáneamente para escuchar el TIM del punto de acceso.

El TIM informa a los clientes que tienen datos pendientes en el punto de acceso. Cuando un adaptador sabe mediante el TIM que tiene datos pendientes permanece activo el tiempo necesario para recibirlos. El punto de acceso dispone de un buffer para almacenar los datos hasta que los envía al adaptador. Una vez que el adaptador ha recibido sus datos, entonces vuelve al modo inactivo.

Un punto de acceso indica la presencia de tráfico de difusión mediante paquetes DTIM (delivery traffic information map). DTIM es un temporizador múltiplo de TIM. Gracias a este valor, que podemos configurar en el punto de acceso, podemos especificar cuanto tiempo tiene que permanecer una estación activa para buscar tráfico de difusión.

El sistema de ahoro de energía es también opcional en el protocolo 802.11, y permite activar o desactivar el adaptador de forma inteligente para que ahorre energía cuando no tiene que transmitir datos. Cuando el ahorro de energía está activado el adaptador indica al punto de acceso su deseo de entrar al estado "dormido" mediante un bit de estado de la cabecera de la trama. El punto de acceso toma nota de todos los adaptadores que quieren entrar en el modo de ahorro de energía y utiliza un buffer para los paquetes correspondientes a estas estaciones.

Para poder todavía recibir tramas de datos el adaptador dormido tiene que despertar periódicamente, en el instante adecuado, para recibir las transmisiones beacon TIM del punto de acceso. Estos beacon identifican si las estaciones dormidas tienen tramas en el buffer en el punto de acceso y esperando para su entrega a los respectivos destinos. Los adaptadores con tramas a la espera las solicitan al punto de acceso y una vez recibidas puede volver al estado de dormido.

Fragmentación

La función de fragmentación permite que una estación divida los paquetes de datos en tramas más pequeñas para evitar la necesidad de retransmitir tramas grandes en un ambiente de interferencias de radiofrecuencia. Los bits erróneos ocasionados por las interferencias es más probable que afecten a una simple trama y disminuimos la carga si sólo retransmitimos tramas pequeñas. como en el caso de RTS/CTS, los usuarios normalmente pueden establecer un umbral de tamaño de trama máximo para que el adaptador active la fragmentación. El el tamaño de la trama es mayor que el umbral fijado, el adaptador lo divide en múltiples tramas adaptadas a ese tamaño.