ANEXO B

Anuncio
Anexos
11
ANEXO B
B CONTROL DE ACCESO AL MEDIO
En este apartado se da a conocer cómo el estándar IEEE 802.11b define la subcapa de
Control de Acceso al Medio (MAC: Medium Access Control), uno de los elementos más
importantes en el desarrollo de esta tesis. Se especifican aspectos importantes del formato
de tramas establecido por el estándar se introduce la arquitectura de la subcapa MAC,
incluyendo la función de coordinación distribuida (DCF: Distributed Coordination
Function), la función de coordinación por punto (PCF: Point Coordination Function), y su
coexistencia en una LAN IEEE 802.11b. Más adelante se tratará con mayor detalle la DCF,
brindándose una completa descripción de ella.
B.1
Terminología Específica
Antes de describir las características del protocolo, es necesario que cierta terminología
específica de uso frecuente sea explicada. En particular, se hará referencia a dos conceptos
definidos por el estándar: Estación y Conjunto de Servicio Básico.
Estación es definida como cualquier aparato que contiene una capa de control de acceso al
medio (MAC) conforme a IEEE 802.11b y una interfaz de capa física al medio
inalámbrico. Por ejemplo, una estación puede ser una computadora portátil que posee una
tarjeta adecuada para conectarse a una red inalámbrica IEEE 802.11b. En general, es
cualquier terminal que puede enviar y recibir información a través de una red 802.11b.
Conjunto de servicio básico (BSS: Basic Service Set}). Es un conjunto de estaciones
controladas por una sola función de coordinación. Alternativamente, es posible definirlo
como un conjunto de dos o más estaciones que se comunican directamente dentro de una
red básica 802.11b. Este grupo básico puede intercomunicarse con otros de su misma
naturaleza mediante puntos de acceso e infraestructuras de red tales como backbones, pero
debe recordarse que todo otro elemento está fuera del conjunto de acceso básico.
B.2
Formato de Tramas MAC
Cada trama está constituida por los siguientes componentes básicos:
a) Una cabecera MAC, la cual contiene información de control de trama, duración,
dirección, y control de secuencia.
b) Un cuerpo de trama de tamaño variable, el cual contiene información
específica para cada tipo de trama.
c) Una secuencia de chequeo de trama (FCS: Frame Check Sequence), la cual
contiene código de redundancia cíclica (CRC) de 32 bits.
Anexos
12
B.2.1 Formato General de Trama
El formato de trama MAC comprende un conjunto de campos en orden fijo. La figura B.1
muestra el formato general. Los números sobre cada campo representan el número de
octetos que lo componen. Los campos Address 2, Address 3, Sequence Control, Address 4,
y Frame Body sólo están presentes en ciertos tipos de trama. Cada campo es definido a
continuación.
Figura B.1 Formato general de trama MAC
Campo Frame Control
El campo Frame Control está compuesto por los siguientes subcampos: Protocol Version,
Type, Subtype, To DS, From DS, More Fragments, Retry, Power Management, More Data,
Wired Equivalent Privacy (WEP), y Order. El formato del campo Frame Control se ilustra
en la figura B.2. El receptor leerá primero el bit B0 del campo Frame Control; el último bit
que leerá será el B15.
Figura B.2 Campo Frame Control
A continuación se explican los subcampos del campo Frame Control.
Protocol Version: Este subcampo indica la versión de protocolo que generó la trama. Un
aparato que reciba una trama generada por una versión superior que la soportada por él,
descartará la trama sin indicarlo a la estación emisora.
Type y Subtype : El subcampo Type tiene 2 bits de longitud, y el subcampo Subtype posee 4
bits. Ambos subcampos identifican la función de una trama. Existen tres tipos de trama:
Management (00), Control (01), y Data (10). Cada uno de estos tipos posee a su vez varios
subtipos definidos. Por ejemplo, al tipo Data comúnmente se asocia el subtipo Data (0000);
el tipo Control acepta, entre otros, los subtipos Request To Send (RTS) (1011), Clear To
Send (CTS) (1100) y Akcnowledgment (ACK) (1101).
To DS y From DS: Ambos subcampos tienen sentido cuando se trata de un BSS que está
asociado a una infraestructura de red mayor, a través de un Sistema de Distribución (DS), e
Anexos
13
indican que la trama está dirigida hacia (To) o proviene desde (From) dicho Sistema de
Distribución.
More Fragments: El subcampo More Fragments posee 1 bit de longitud, que se establece
en 1 para todas las tramas de datos o administración que han sido fragmentadas y tienen
otro(s) fragmento(s) de la unidad de datos actual a seguir. Para todas las otras tramas, este
bit se establece en 0.
Retry: El subcampo Retry es un bit con valor 1 para toda trama que corresponde a la
retransmisión de una trama anterior. De otro modo, su valor es 0.
Power Management : Este bit indica el modo de administración de energía en la estación
emisora. Un valor 1 indica modo de ahorro de energía. Un valor 0 indica modo activo.
More Data: Consiste en un bit, cuyo valor 1 indica a una estación en modo de ahorro de
energía, que hay por lo menos una trama más, esperando ser transmitida hacia ella en el
búfer del punto de acceso al BSS.
WEP: Este subcampo consiste en un bit, cuyo valor se establece en 1 cuando el campo
Frame Body contiene información, que ha sido procesada con el algoritmo WEP Wired
Equivalent Privacy: Privacidad equivalente a cable). En caso contrario, su valor es 0. El
algoritmo WEP provee un servicio de confidencialidad, que tiene como fin proveer
funcionalidad para una LAN inalámbrica, equivalente a la provista por los atributos de
seguridad inherentes a un medio alámbrico.
Order: Este subcampo consiste en un bit, cuyo valor 1 indica que la trama contiene una
unidad de datos de servicio MAC (MSDU: MAC Service Data Unit), o un fragmento de
ella, que está siendo transferida estrictamente en orden. Este bit tiene valor 0 en todo otro
caso.
Campo Duration/ID
En la mayoría de las tramas este campo contiene el valor de duración (Duration), que es
utilizado para actualizar el Vector de Asignación de Red (NAV: Network Allocation
Vector), vinculado con la función de detección virtual de portadora. El valor del campo
Duration/ID se calcula para cada tipo de trama.
Campos Address
Hay cuatro campos Address en el formato de trama MAC. Se utilizan para señalar el
Identificador de Conjunto de Servicio Básico (BSSID: Basic Service Set Identifier), la
Dirección Fuente (SA: Source Address), la Dirección Destino (DA: Destination Address),
la Dirección de Estación Transmisora (TA: Transmitter Address), y la Dirección de
Estación Receptora (RA: Receiver Address). Ciertas tramas no contienen todos los campos
de dirección.
Anexos
14
Campo Sequence Control
El formato del campo Sequence Control se ilustra en la figura B.3. Este campo consiste en
16 bits, y se divide en 2 subcampos: Sequence Number y Fragment Number. En seguida se
explican el significado de los subcampos que componen este elemento.
Figura B.3 Campo Sequence Control
Sequence Number: Es un subcampo de 16 bits que indica el número de secuencia de
una Unidad de Datos de Servicio MAC (MSDU: MAC Service Data Unit) o una Unidad de
Datos de Protocolo de Administración MAC (MMPDU: MAC Management Protocol Data
Unit). A cada MSDU o MMPDU transmitida por una estación se le asigna un número a
través de un contador módulo 4096, que se incrementa sucesivamente en 1. Este número de
secuencia se mantiene constante para cada retransmisión de una MSDU, MMPDU, o
fragmento de ella.
Fragment Number: Es un subcampo de 4 bits, que contiene el número correlativo de
cada fragmento de una MSDU o MMPDU. Este número se establece en cero en el primer o
único fragmento de una MSDU o MMPDU, y es incrementado en 1 para cada fragmento
sucesivo. El número de fragmento permanece constante en todas las retransmisiones del
fragmento.
Campo Frame Body
Frame Body es un campo de tamaño variable, que contiene información específica para
cada tipo y subtipo de trama. Su tamaño varía entre 0 octetos y la máxima MSDU
admisible.
Campo FCS
Este campo contiene una Secuencia de Chequeo de Trama (FCS: Frame Check Sequence),
consistente en Código de Redundancia Cíclica (CRC: Cyclic Redundancy Code) de 32 bits.
El FCS se calcula sobre todos los campos de la cabecera MAC y el campo Frame Body.
B.2.2 Formato de Tipos Individuales de Trama
Formato de Trama Request To Send (RTS)
El formato de una trama RTS se define en la figura B.4.
Anexos
15
Figura B.4 Formato de trama RTS
El campo RA Receiver Address de la trama RTS es la dirección de la estación destino de la
trama pendiente, de datos o administración, que se requiere transferir posterior al
intercambio RTS/CTS.
TA (Transmitter Address) es la dirección de la estación transmisora de la trama RTS.
El valor contenido en el campo Duration/ID es el tiempo, en microsegundos, requerido
para transmitir la trama de datos o administración pendiente, más un CTS, una trama ACK,
y tres intervalos SIFS. Si la duración calculada incluye una fracción de microsegundo, el
valor es redondeado al entero inmediatamente superior.
Formato de Trama Clear To Send (CTS)
El formato de una trama CTS se define en la figura B.5.
Figura B.5 Formato de trama CTS
El campo RA de la trama CTS se copia del campo TA de la trama RTS previa, a la que se
responde con esta trama CTS.
El valor de duración se obtiene del campo Duration/ID de la trama RTS previa, menos el
tiempo, en microsegundos, requerido para transmitir la trama CTS y su intervalo SIFS. Si la
duración calculada incluye una fracción de microsegundos, el valor es redondeado al entero
inmediatamente superior.
Formato de Trama de Acuse de Recibo (ACK)
El formato de una trama ACK se define en la figura B.6.
Anexos
16
Figura B.6 Formato de trama ACK
El campo RA de la trama ACK se copia del campo Address 2 de la trama de administración
o datos previa.
Si el bit More Fragment del campo Frame Control de la trama de administración o datos
inmediatamente anterior tenía valor 0, el valor de duración se establece 0. Si el bit More
Fragment tenía valor 1, el valor de duración es el valor obtenido del campo Duration/ID
de la trama de administración o datos previa, menos el tiempo, en microsegundos,
requerido para transmitir la trama ACK y su intervalo SIFS. Si la duración calculada
incluye una fracción de microsegundo, el valor es redondeado al entero inmediatamente
superior.
Formato de Trama de Datos
El formato de una trama de datos es independiente del subtipo, y es presentada en la figura
B.7.
Figura B.7 Formato de trama de datos
El contenido de los campos Address de la trama de datos depende del valor de los bits To
DS y From DS, como se define en la tabla B.1. Cuando la tabla muestra el contenido del
campo como no aplicable (N/A), dicho campo es omitido.
To DS
0
0
1
1
From DS
0
1
0
1
Address 1
DA
DA
BSSID
RA
Address 2
SA
BSSID
SA
TA
Address 3
BSSID
SA
DA
DA
Address 4
N/A
N/A
N/A
SA
Tabla B.1 Contenido del campo Address en trama de datos
Una estación utiliza el contenido del campo Address 2 para enviar el acuse de recibo,
cuando es necesario.
DA es el destino de la MSDU (o fragmento de ella) contenida en el campo Frame Body.
Anexos
17
SA es la dirección de la entidad MAC que generó la MSDU (o su fragmento) contenida en
el campo Frame Body.
RA es la dirección de la estación en el punto de acceso al BSS, entendida como el
recipiente inmediato de la trama.
TA es la dirección de la estación en el punto de acceso al BSS, transmisora de la trama.
BSSID es el identificador del conjunto de acceso básico que corresponda.
B.3
Arquitectura MAC
La arquitectura MAC puede ser descrita como se muestra en la figura B.8, provista de una
Función de Coordinación por Punto (PCF: Point Coordination Function), basada en los
servicios de la Función de Coordinación Distribuida (DCF: Distributed Coordination
Function).
Figura B.8 Arquitectura de MAC
B.3.1 Función de Coordinación Distribuida (DCF)
El método de acceso fundamental de la subcapa MAC del estándar IEEE 802.11b es una
Función de Coordinación Distribuida (DCF) basada en Acceso Múltiple con Detección de
Portadora Evitando Colisiones (CSMA/CA: Carrier Sense Multiple Access with Collision
Avoidance). Esta DCF estará implementada en todas las estaciones del BSS.
Para que una estación pueda transmitir, ella detectará el estado del medio para determinar si
otra estación está transmitiendo. Si se establece que el medio no está ocupado, la
transmisión puede llevarse a cabo. El algoritmo distribuido CSMA/CA obliga a que exista
una brecha de duración mínima establecida entre secuencias contiguas de trama. Una
estación transmisora se asegurará que el medio permanezca ocioso durante este tiempo
requerido antes de intentar transmitir. Si el medio es detectado ocupado, la estación
esperará hasta el fin de la transmisión actual. Una vez finalizada exitosamente la
transmisión actual en el medio, pero antes de transmitir, la estación seleccionará un
intervalo de cuenta regresiva aleatorio, y decrementará el contador de intervalo de cuenta
regresiva mientras el medio permanezca ocioso.
Anexos
18
En forma optativa, es posible utilizar un refinamiento del método, bajo diversas
circunstancias, para minimizar el efecto de las colisiones: las estaciones transmisora y
receptora intercambian tramas de control cortas (tramas Request To Send (RTS) y Clear To
Send (CTS)) previo a la transmisión de los datos.
B.3.2 Función de Coordinación por Punto (PCF)
La MAC IEEE 802.11 también puede incorporar un método de acceso opcional llamado
PCF, el cual sólo puede ser utilizado en configuraciones de red de infraestructura, es decir,
cuando el BSS pertenece a una infraestructura de red mayor. Este método de acceso usa un
Coordinador de Punto (PC: Point Coordinator), el cual operará en el punto de acceso al
BSS, para determinar cuál estación posee actualmente el derecho a transmitir. La operación
es esencialmente una encuesta (polling), con el PC desempeñando el papel de maestro o
director de encuesta.
La PCF usa un mecanismo virtual de detección de portadora, auxiliado por un mecanismo
de prioridad de acceso. La PCF distribuirá información mediante tramas de administración
para ganar el control del medio. Además, todas las transmisiones de tramas bajo la PCF
pueden usar un espacio entre tramas (IFS: InterFrame Space) que es menor al espacio
utilizado para tramas transmitidas bajo la DCF. El uso de un IFS menor implica que el
tráfico coordinado por punto tendrá acceso prioritario al medio sobre el método de acceso
vía DCF.
La prioridad de acceso provista por la PCF puede ser utilizada para crear un método de
acceso libre de contienda (CF: Contention-Free). El PC controla la transmisión de las
estaciones con el fin de eliminar la contienda por un período limitado de tiempo.
B.3.3 Coexistencia de DCF y PCF
La DCF y la PCF coexistirán de una manera que permita a ambas operar concurrentemente
dentro del mismo BSS. Cuando un PC esta operando en un BSS, los dos métodos de acceso
se alternan, con un período libre de contienda (CFP: Contention-Free Period) seguido de
un período de contienda (CP: Contention Period). No se tratará en mayor detalle la PCF,
dado que se trata de un elemento opcional en el estándar, y no ha sido considerada en el
desarrollo de esta memoria.
B.3.4 Aspectos Generales de Fragmentación y Defragmentación
Fragmentación es el proceso de particionar una MSDU o una MMPDU en tramas de nivel
MAC más pequeñas: unidades de datos de protocolo MAC (MPDUs: MAC Protocol Data
Units). La fragmentación crea MPDUs más pequeñas que la longitud de la MSDU o
MMPDU original para incrementar la confiabilidad, aumentando la probabilidad de
transmisión exitosa de la MSDU o MMPDU cuando las características del canal limitan la
confiabilidad de la recepción para tramas más grandes. La fragmentación es realizada en
cada transmisor inmediato. El proceso de recombinar MPDUs en una sola MSDU o
Anexos
19
MMPDU es definido como defragmentación. La defragmentación es realizada en cada
recipiente inmediato.
Sólo MPDUs con una dirección de receptor único (unicast) serán fragmentadas. Tramas
broadcast o multicast no serán fragmentadas, aunque sus longitudes excedan el umbral de
fragmentación aFragmentationThreshold.
Cuando se recibe una MSDU o una MMPDU dirigida con una longitud mayor a
aFragmentationThreshold, la MSDU o MMPDU será fragmentada. La MSDU o MMPDU
es dividida en MPDUs. Cada fragmento es una trama de longitud no mayor que
aFragmentationThreshold. Es posible que cualquier fragmento sea más pequeño que
aFragmentationThreshold. Una ilustración de fragmentación es mostrada en la figura B.9.
Figura B.9 Fragmentación
Las MPDUs resultantes de la fragmentación de una MSDU o MMPDU son enviadas como
transmisiones independientes, cada una con un acuse de recibo (ACK) independiente. Esto
permite que las retransmisiones ocurran por fragmento, en vez de por MSDU o MMPDU.
A menos que haya interrupciones, debidas a limitaciones de ocupación del medio para una
capa física determinada, los fragmentos de una misma MSDU o MMPDU serán enviados
como una ráfaga dur ante en CP, usando una sola invocación del procedimiento de acceso al
medio de la DCF. Los fragmentos de una misma MSDU o MMPDU durante un CFP son
enviados como tramas individuales obedeciendo las reglas del procedimiento de acceso al
medio dado por el PC.
B.4
DCF
El protocolo básico de acceso al medio es una Función de Coordinación Distribuida (DCF)
que permite automáticamente compartir el medio entre capas físicas compatibles a través
del uso de CSMA/CA y de un tiempo aleatorio de cuenta regresiva. Además, todo el tráfico
unicast usa acuse de recibo positivo inmediato (trama ACK), programándose una
retransmisión por parte del remitente si no se recibe ACK.
El protocolo CSMA/CA está diseñado para reducir la probabilidad de colisión entre
múltiples estaciones accediendo al medio, en el punto en que podrían mayormente ocurrir
colisiones. Justo después que el medio queda ocioso, en seguida de un período ocupado, es
cuando existe la mayor probabilidad de colisión. Esto es porque múltiples estaciones
podrían haber estado esperando que el medio se volviera disponible otra vez. Esta es la
situación que requiere un procedimiento de cuenta regresiva aleatorio para resolver los
conflictos de contienda por el medio.
Anexos
20
La detección de portadora será realizada tanto a través de un mecanismo físico como de
uno virtual.
El mecanismo de detección virtual de portadora se logra distribuyendo información de
reservación, que anuncia el uso inminente del medio. El intercambio de tramas RTS y CTS
antes de la trama de datos en sí, es un medio de distribución de esta información de
reservación del medio. Las tramas RTS y CTS contienen un campo Duration/ID, que
define el período de tiempo en que el medio está reservado para transmitir la trama de datos
y la trama ACK de retorno. Todas las estaciones dentro del rango de recepción, tanto de la
estación de origen (la cual transmite el RTS) o la de destino (que transmite el CTS),
entenderán la reservación del medio. De este modo, si una estación fuese incapaz de recibir
desde la estación de origen, con todo aún sabría acerca del uso inminente del medio si
puede detectar la información desde la estación destino.
Otro medio de distribución de la información de reservación del medio es el campo
Duration/ID en tramas unicast. Este campo entrega el tiempo que el medio está reservado,
hasta el fin del ACK inmediatamente siguiente, o en el caso de una secuencia de
fragmentos, hasta el fin del ACK del fragmento siguiente.
El intercambio RTS/CTS también desempeña un tipo de inferencia de colisión rápida y un
chequeo de ruta de transmisión. Si el CTS de retorno no es detectado por la estación que
originó el RTS, ésta puede repetir el proceso (luego de observar las otras reglas de uso del
medio) más rápidamente que si la trama de datos completa hubiera sido transmitida y la
trama ACK de retorno no hubiera sido detectada.
Otra ventaja del mecanismo RTS/CTS ocurre cuando múltiples BSSs utilizando el mismo
canal se sobreponen. El mecanismo de reservación del medio opera a través de los límites
del BSS.
El mecanismo RTS/CTS puede mejorar la operación en una situación típica donde todas las
estaciones pueden recibir desde el punto de acceso, pero no pueden recibir desde todas las
otras estaciones en el área de servicio básico, produciéndose el llamado problema del
terminal oculto.
El mecanismo RTS/CTS no puede ser usado para MPDUs con direcciones multicast o
broadcast , porque hay múltiples destinatarios para RTS, y por tanto potenciales múltiples
remitentes concurrentes de la respuesta CTS. El mecanismo RTS/CTS no necesita ser
utilizado para cada transmisión de datos. Dado que las tramas adicionales RTS y CTS
agregan ineficiencia por overhead, el mecanismo no siempre se justifica, especialmente
para tramas de datos cortas.
El uso del mecanismo RTS/CTS se encuentra bajo el control del umbral
dot11RTSThreshold. Este atributo puede ser establecido en cada estación. Este
procedimiento permite a las estaciones ser configuradas para usar RTS/CTS siempre,
nunca, o sólo para tramas mayores que una longitud especificada.
Anexos
21
Una estación configurada para no utilizar el mecanismo RTS/CTS, aún puede actualizar su
mecanismo de detección virtual de portadora (con la información de duración contenida en
una trama RTS o CTS recibida), y siempre responderá con un CTS al recibir un RTS
dirigido a ella.
B.4.1 Mecanismo de Detección de Portadora
Las funciones de detección de portadora física y virtual, son usadas para determinar el
estado del medio. Cuando cualquier función indica un medio ocupado, el medio será
considerado ocupado; de otro modo, se considerará ocioso.
El mecanismo de físico de detección de portadora será provisto por la capa física. La
información será entregada a la MAC de una manera eficiente.
El mecanismo virtual de detección de portadora será provisto por la MAC. Este mecanismo
es denominado el Vector de Asignación de Red (NAV: Network Allocation Vector). El
NAV mantiene una predicción del tráfico futuro en el medio, basado en la información de
duración que es anunciada en las tramas RTS/CTS antes del intercambio de datos.
El mecanismo de detección de portadora combina el estado del NAV y el estado del
transmisor de la estación, con detección física de portadora, para determinar el estado
ocioso/ocupado del medio. El NAV puede ser entendido como un contador, el cual cuenta
en reversa hasta cero a ritmo constante; mientras sea distinto de cero, la indicación es
ocupado. El medio será determinado como ocupado cada vez que la propia estación esté
transmitiendo.
B.4.2 Acuses de Recibo de Nivel MAC
La recepción de algunas tramas, como se describe en ACK, requiere que la estación
receptora responda con un acuse de recibo, generalmente una trama ACK, si la secuencia
de chequeo (FCS: Frame Check Sequence) de la trama recibida es correcta. Esta técnica se
conoce como acuse de recibo positivo.
La no recepción de un ACK esperado indica a la estación fuente que ha ocurrido un error.
Sin embargo, nótese que la estación de destino puede haber recibido la trama
correctamente, y que el error puede haber ocurrido en la recepción de la trama ACK. Para
quien origina el intercambio, esta condición es indistinguible de un error ocurrido en la
trama inicial.
B.4.3 Espacio entre Tramas (IFS)
El intervalo de tiempo entre tramas es llamado el IFS (InterFrame Space). Una estación
determinará que el medio está libre a través del uso de la función de detección de portadora
para el intervalo especificado. Se definen cuatro diferentes IFSs para proveer de niveles de
prioridad para acceder al medio inalámbrico; ellos son listados en orden, desde el más corto
hasta el más largo. La figura B.10 muestra algunas de esas relaciones.
Anexos
a)
b)
c)
d)
22
SIFS Short InterFrame Space
PIFS PCF InterFrame Space
DIFS DCF InterFrame Space
EIFS Extended InterFrame Space
La temporización de los IFSs será definida como ranuras de tiempo en el medio , y será fija
para cada capa física. Los diversos tamaños son calculados a partir de atributos
especificados por la capa física.
Figura B.10 Algunas relaciones entre IFSs
Short IFS (SIFS)
El SIFS será usado previo a una trama ACK, a una trama CTS, y a la segunda o
subsiguiente MPDU de una ráfaga de fragmentos. El SIFS es el tiempo desde el fin del
último símbolo de la trama previa, al inicio del primer símbolo del preámbulo de la trama
subsiguiente, como visto en la interfaz aérea.
SIFS es el espacio entre tramas más corto. Se usará SIFS cuando las estaciones tengan el
medio tomado y necesiten mantenerlo para completar una secuencia de intercambio de
tramas. El usar la brecha más pequeña entre transmisiones en la secuencia de intercambio,
previene que otras estaciones, que requieren esperar que el medio esté ocioso durante una
brecha mayor de tiempo, intenten usar el medio; otorgando así prioridad a la completación
de la secuencia de intercambio en progreso.
PCF IFS (PIFS)
El PIFS será usado sólo por estaciones operando bajo la PCF, para ganar prioridad de
acceso al medio al inicio del CFP. Una estación usando la PCF podrá transmitir tráfico libre
de contienda, después que su mecanismo de detección de portadora determine que el medio
permanece ocioso hasta el borde de la ranura TxPIFS.
DCF IFS (DIFS)
El DIFS será usado por estaciones operando bajo la DCF, para transmitir tramas de datos
(MPDUs) y de administración (MMPDUs). Una estación usando la DCF podrá transmitir si
su mecanismo de detección de portadora determina que el medio está ocioso en el borde de
Anexos
23
la ranura TxDIFS después de una trama correctamente recibida, y si su tiempo de espera ha
expirado.
Extended IFS (EIFS)
El EIFS será usado por la DCF cada vez que la capa física indica a la MAC que una
transmisión fue comenzada, pero no resultó en la recepción de una trama MAC con un
valor de FCS correcto. El intervalo EIFS comenzará después que la capa física indique que
el medio ha quedado ocioso tras la recepción de una trama errónea. La idea es proveer
tiempo suficiente para que otra estación se percate de la transmisión que, a juicio de esta
estación, fue errónea. La recepción de una trama libre de error durante el EIFS resincroniza
la estación con el verdadero estado ocupado/ocioso del medio, de modo que el EIFS es
terminado y el acceso normal al medio continúa.
B.4.4 Cuenta Regresiva Aleatoria
Una estación que desea iniciar la transferencia de MPDUs de datos y/o MMPDUs de
administración, invocará el mecanismo de detección de portadora para determinar el estado
ocupado/ocioso del medio. Si el medio está ocupado, la estación esperará hasta que se
determine que el medio ha permanecido ocioso, sin interrupción, por un período de tiempo
igual a DIFS, cuando la última trama detectada en el medio fue recibida correctamente.
Después de ese tiempo ocioso DIFS, la estación generará un período de cuenta regresiva
aleatorio, para una suspensión adicional antes de transmitir; para ello utilizará la ecuación
(1). Este proceso minimiza colisiones durante la contienda entre múltiples estaciones, que
han estado esperando por el mismo evento.
Tiempo_de_cuenta_regresiva = Random() x aSlotTime
(1)
donde:
Random() = Entero pseudo aleatorio obtenido de una distribución uniforme sobre el
intervalo [0,CW], donde CW es un entero en el rango aCWmin y aCWmax,
aCWmin ≤ CW ≤ aCWmax .
aSlotTime = El valor de dicha característica de la capa física.
El parámetro ventana de contienda (CW: Contention Window) tomará un valor inicial de
aCWmin. CW tomará el siguiente valor en la serie cada vez que haya un reintento debido a
una transmisión infructuosa, hasta que CW alcance el valor aCWmax. Un reintento se
define como la secuencia entera de tramas enviadas, separadas por intervalos SIFS, en un
intento por entregar una MPDU. Una vez que se alcanza aCWmax , CW mantendrá este
valor para cada reintento sucesivo. Esto mejora la estabilidad del protocolo de acceso bajo
condiciones de alta carga. Ver figura B.11.
El valor de CW será restablecido a aCWmin después de cada intento exitoso de transmitir
una MSDU o MMPDU. El conjunto de valores de CW serán potencias enteras de 2
Anexos
24
secuencialmente ascendentes, menos 1, comenzando con un valor aCWmin especificado
por la capa física.
Figura B.11 Ejemplo de incremento exponencial de CW
B.4.5 Procedimiento de Acceso DCF
El método de acceso CSMA/CA es el fundamento de la DCF.
Acceso Básico
Acceso Básico se refiere al mecanismo central que una estación usa para determinar si
puede transmitir.
En general, una estación puede transmitir una MPDU pendiente cuando determine que el
medio está ocioso por un período mayor o igual a DIFS. Si, bajo esas condiciones, el medio
es determinado ocupado cuando una estación desea iniciar una transferencia de tramas, se
seguirá el algoritmo de espera aleatorio descrito en el siguiente punto.
Figura B.12 Método de acceso básico
Anexos
25
Procedimiento de Cuenta Regresiva
El procedimiento de cuenta regresiva será invocado por una estación para transferir una
trama, cuando el mecanismo virtual o físico de detección de portadora determine al medio
ocupado. Este procedimiento también será invocado cuando una estación transmisora
concluye que su transmisión ha fallado porque no recibe respuesta CTS o acuse de recibo
ACK.
Figura B.13 Procedimiento de cuenta regresiva
Para comenzar el procedimiento de cuenta regresiva, la estación establecerá su
temporizador de cuenta regresiva usando la ecuación (1). Las ranuras de cuenta regresiva se
registran después de un período DIFS durante el cual el medio se determina ocioso.
Una estación realizando el procedimiento de cuenta regresiva, usará el mecanismo de
detección de portadora para determinar si hay actividad durante cada ranura de cuenta
regresiva. Si no se indica actividad en el medio durante una ranura de cuenta regresiva,
entonces el procedimiento decrementará su tiempo de cuenta regresiva en aSlotTime.
Si se determina que el medio está ocupado en cualquier momento durante una ranura de
cuenta regresiva, entonces se suspende el procedimiento de cuenta regresiva; esto es, el
temporizador de cuenta regresiva no se decrementará para esa ranura. El procedimiento se
reanuda una vez que el medio se determina ocioso durante un DIFS, sin restablecer el valor
del temporizador de cuenta regresiva. La transmisión comenzará una vez que el
temporizador alcance el valor cero. Si la transmisión es exitosa, el valor de CW se revierte a
aCWmin antes de elegir un nuevo intervalo de cuenta regresiva.
El efecto de este procedimiento es que cuando múltiples estaciones están esperando y su
cuenta regresiva avanza, entonces la estación que selecciona el tiempo más pequeño usando
la función aleatoria ganará la contienda.
Procedimientos de Recuperación y Límites de Retransmisión
Anexos
26
Recuperar errores siempre es responsabilidad de la estación que inicia el intercambio de
tramas. Un error puede deberse, por ejemplo, a que no se retorne una trama CTS después
que una RTS sea transmitida. Esto puede suceder debido a una colisión con otra
transmisión, debido a interferencias en el canal, o porque la estación que recibe la trama
RTS tiene una condición activa de detección virtual de portadora.
Si la estación remitente infiere que su transmisión falló, y la trama es considerada ``larga'',
se intentará retransmitir hasta que la transmisión sea exitosa, o hasta alcanzar el límite de
reintentos aLongRetryLimit. Se define también un límite dot11ShortRetryLimit de
reintentos de transmitir una trama “corta”. Una trama es considerada larga cuando el
contenido de su campo Frame Body supera el umbral dot11RTSThreshold (la trama será
precedida por intercambio RTS/CTS); en caso contrario, es considerada corta. Además,
todas las tramas RTS son consideradas cortas.
Estableciendo y Restableciendo el NAV
Figura B.14 Establecimiento de NAV
Las estaciones que reciban una trama válida actualizarán su NAV con la información
recibida en el campo Duration/ID, pero sólo cuando el valor del nuevo NAV es mayor que
el valor actual y la trama no está dirigida a la estación receptora.
La Figura B.14 muestra el NAV para estaciones que reciben la trama RTS, mientras otras
estaciones pueden recibir sólo la trama CTS, resultando en la barra NAV inferior (con
excepción de la estación a la cual está direccionado el RTS).
Control del Canal
Se usa el SIFS para proveer un mecanismo eficiente de entrega de MSDU. Una vez que la
estación ha contendido por el canal, la estación continuará enviando fragmentos hasta que
todos los fragmentos de una MSDU o MMPDU hayan sido enviados, hasta que falle un
acuse de recibo, o hasta que la estación quede restringida para enviar fragmentos
adicionales, debido a límites de tiempo de permanencia en el medio.
La figura B.15 ilustra la transmisión de una MSDU de múltiples fragmentos usando SIFS.
Anexos
27
Figura B.15 Transmisión de una MSDU de múltiples fragmentos usando SIFS
Cuando la estación fuente transmite un fragmento, liberará el canal, inmediatamente
monitoreará el acuse de recibo.
Cuando la estación destino ha finalizado el envío del acuse de recibo, el SIFS siguiente será
reservado para que la estación fuente continúe (si es necesario) con otro fragmento. La
estación que envía el acuse de recibo no transmitirá inmediatamente después de él.
El proceso de enviar múltiples fragmentos después de contender por el canal se define
como ráfaga de fragmentos.
Si la estación fuente no recibe un acuse de recibo, intentará retransmitir la MPDU fallada u
otra, después de realizar el proceso de contienda y el procedimiento de cuenta regresiva.
Después que una estación contiende por el canal para retransmitir un fragmento de una
MSDU, comenzará con el último fragmento que no fue reconocido. La estación destino
recibirá los fragmentos en orden (dado que la fuente los envía en orden, y son reconocidos
individualmente). Es posible, sin embargo, que la estación destino reciba fragmentos
duplicados. Es responsabilidad de la estación destino detectar y descartar duplicados.
Una estación transmitirá después de un SIFS sólo bajo las siguientes condiciones durante
una ráfaga de fragmentos:
-
La estación acaba de recibir un fragmento que requiere acuse de recibo.
La fuente ha recibido el acuse de recibo del fragmento previo y tiene más
fragmentos de la misma MSDU por transmitir.
Uso de RTS/CTS con Fragmentación
Cuando una trama de datos es fragmentada, el campo Duration/ID de las tramas RTS/CTS
previas define la duración del primer fragmento de trama, más el acuse de recibo (ACK)
correspondiente. Este mismo campo, en cada fragmento y en el ACK, especifica la
duración total del próximo fragmento y su ACK.
Anexos
28
Figura B.16 RTS/CTS con MSDU fragmentada
Cada trama contiene información que define la duración de la próxima transmisión. La
información de duración en la trama RTS será usada para actualizar el NAV, indicando un
medio ocupado hasta el fin del ACK 0, asimismo la información en la trama CTS. Tanto el
fragmento 0 como el ACK 0 contendrán información de duración para actualizar el NAV
para indicar ocupado hasta el fin de ACK 1. Esto continuará hasta el último fragmento, que
indica hasta el fin de ACK 2. ACK 2 indica una duración adicional cero.
En el caso en que un ACK es enviado, pero no recibido por la estación fuente, las
estaciones que escucharon el fragmento o el ACK, marcarán el canal ocupado al actualizar
su NAV. Este es el peor caso y se muestra en la figura B.17. Si un ACK no es enviado por
la estación destino, las estaciones que sólo pueden oírla a ella no actualizarán su NAV y
pueden intentar acceder al canal cuando sus NAVs lleguen a cero.
Figura B.17 RTS/CTS con prioridad de transmisor y ACK perdido
Procedimiento CTS
Una estación direccionada por un RTS transmitirá una trama CTS después de un período
SIFS si su NAV indica que el medio está libre. En caso contrario, esa estación no
responderá a la trama RTS.
Después de transmitir una trama RTS, la estación fuente esperará un intervalo CTSTimeout.
Si no se registra recepción en dicho intervalo, la estación concluirá que la transmisión del
RTS ha fallado e invocará su procedimiento de cuenta regresiva. El reconocimiento de una
trama CTS válida enviada por el recipiente del RTS previo, será interpretado como una
respuesta exitosa, permitiendo continuar la secuencia de tramas. El reconocimiento de
cualquier otra trama válida, será interpretado como una falla en la transmisión del RTS. En
Anexos
29
tal caso, la estación invocará su procedimiento de cuenta regresiva y podrá procesar la
trama recibida.
B.4.6 Procedimiento de Transferencia de MPDU
Una estación usará un intercambio RTS/CTS sólo cuando la longitud de la MPDU sea
mayor que el umbral de longitud indicado por el atributo dot11RTSTheshold.
El valor 0 en el atributo dot11RTSTheshold será usado para indicar que todas las MPDUs
serán entregadas usando RTS/CTS. Valores mayores a la máxima longitud de MSDU
indicarán que todas las MPDUs serán entregadas sin intercambio RTS/CTS.
Con o sin el uso de RTS/CTS, la estación destino seguirá el procedimiento de ACK.
B.4.7 Procedimiento ACK
Se transmitirá un ACK tras la recepción de una trama unicast que requiera acuse de recibo,
pero no si se recibe una trama broadcast o multicast. La transmisión comenzará después de
un período SIFS, sin respetar el estado ocupado/ocioso del medio.
Figura B.18 MPDU unicast y ACK
La estación fuente esperará una cantidad ACKTimeout de tiempo sin recibir una trama ACK
antes de concluir que la MPDU falló (ver figura B.18). En ese caso, invocará su
procedimiento de cuenta regresiva al expirar el intervalo ACKTimeout. Si recibe una
transmisión, esperará hasta el fin de ésta para determinar si ha habido éxito. El
reconocimiento de un ACK válido enviado por el recipiente de la MPDU previamente
transmitida, será interpretado como un acuse de recibo exitoso, permitiendo a la secuencia
de tramas continuar, o finalizar sin reintentos. El reconocimiento de cualquier otra cosa,
incluyendo tramas válidas, será interpretado como una falla en la transmisión de la MPDU.
En ese caso, la estación invocará su procedimiento de cuenta regresiva y puede procesar la
trama recibida.
Anexos
30
B.4.8 Relaciones de Tiempo en la DCF
Las relaciones entre las IFS se definen como ranuras de tiempo en el medio. Los atributos
asociados son provistos por la capa física específica (ver figura B.19).
Los tiempos se miden desde el fin del último símbolo de una trama hasta el inicio del
primer símbolo de la trama siguiente en el medio.
Figura B.19 Relaciones de tiempo en la DCF
aSIFSTime y aSlotTime son fijados por la capa física.
PIFS y DIFS son derivados de las siguientes ecuaciones, como ilustra la figura B.19.
PIFS =
aSIFSTime + aSlotTime
(2)
DIFS =
aSIFSTime + 2 x aSlotTime
(3)
La figura B.19 ilustra la relación entre SIFS, PIFS y DIFS como son medidos en el medio y
las diferentes límites de ranura TxSIFS, TxPIFS, y TxDIFS. Estos límites de ranura definen
cuándo la MAC debe encender el transmisor para ajustarse a los diferentes tiempos de IFS
en el medio.
B.5
Fragmentación
La MAC puede fragmentar y reensamblar MSDUs o MMPDUs. Los mecanismos de
fragmentación y defragmentación permiten retransmisión de fragmentos.
La longitud de un fragmento MPDU será un número igual de octetos para todos los
fragmentos, excepto el último, el cual puede ser menor. La longitud de un fragmento
MPDU siempre será un número par de octetos, excepto para el último fragmento, en que
puede ser impar. La longitud de un fragmento nunca será mayor que
Anexos
31
aFragmentationThreshold, excepto en casos muy especiales que no son de interés en el
presente trabajo.
Al momento de transmitir datos, el número de octetos en el fragmento será determinado por
aFragmentationThreshold y el número de octetos en la MPDU que han de ser asignados a
un fragmento en el instante que éste es construido por primera vez. Una vez que el
fragmento es transmitido por primera vez, su contenid o y tamaño serán fijos hasta ser
entregado exitosamente a la estación destino.
La estación fuente mantendrá un temporizador para cada MSDU en transmisión. El atributo
aMaxTransmitMSDULifetime especifica la cantidad de tiempo máxima permitida para
transmitir una MSDU. El temporizador parte al intentar transmitir el primer fragmento de la
MSDU. Si el temporizador excede aMaxTransmitMSDULifetime, entonces todos los
fragmentos remanentes son descartados por la estación fuente y no se intentará completar la
transmisión de la MSDU.
B.6
Defragmentación
Cada fragmento contiene información para permitir reensamblar la MSDU o MMPDU
completa a partir de sus fragmentos constituyentes. La cabecera de cada fragmento contiene
la siguiente información que es usada por la estación destino para reensamblar la MSDU o
MMPDU:
-
-
Tipo de trama
Dirección del remitente, obtenida del campo Address2
Dirección destino
Campo Sequence Control: Este campo permite a la estación destino chequear
que todos los fragmentos entrantes pertenecen a la misma MSDU o MMPDU, y
la secuencia en la cual los fragmentos deben ser reensamblados. El número de
secuencia en el campo Sequence Control es el mismo para todos los fragmentos,
mientras que el número de fragmento en el mismo campo se incrementa para
cada fragmento.
Indicador More Fragments: Indica al destinatario que este no es el último
fragmento de la MSDU o MMPDU. Sólo el último o único fragmento tendrá
este bit en cero. Todos los otros fragmentos de la MSDU o MMPDU tendrán un
uno.
La estación destino reconstruirá la MSDU o MMPDU combinando los fragmentos en
orden. Si aun no se ha recibido el fragmento con el bit More Fragments establecido a cero,
entonces la estación destino sabe que la MSDU o MMPDU aun no está completa. Tan
pronto como la estación recibe el fragmento con el bit More Fragments establecido en cero,
la estación sabe que no pueden ser recibidos más fragmentos para la MSDU o MMPDU.
Anexos
32
La estación destino mantendrá un temporizador de recepción para cada MSDU o MMPDU
siendo recibida. El atributo aMaxReceiveLifetime especifica la cantidad máxima de tiempo
permitida para recibir una MSDU. El temporizador se inicia al recibir el primer fragmento.
Si el temporizador excede aMaxReceiveLifetime, entonces todos los fragmentos recibidos
de la MSDU o MMPDU son descartados por la estación destino. Si se reciben fragmentos
adicionales después que se ha excedido aMaxReceiveLifetime, se enviarán acuses de recibo,
pero se descartarán los fragmentos.
Para reensamblar en forma correcta MPDUs en MSDU o MMPDU, una estación destino
descartará cualquier fragmento duplicado, sin embargo, enviará el acuse de recibo
respectivo.
Descargar