Wireless USB (especificación)
# Wireless USB (especificación)

## Visión general

La motivación detrás del desarrollo de esta especificación es el enorme éxito del USB como base de conectividad para todo tipo de periféricos: se mencionan, entre otras razones, la gran facilidad de uso y reducido coste, que posibilitan la existencia de un puerto bidireccional ubicuo. La definición de Ultra-WideBand se ajusta de forma natural a las características y tasas de transferencia de datos de USB (desde 1,5 y 12 Mbps hasta 480 Mbps en el caso de USB 2.0); es una extensión evidente al ámbito inalámbrico del propio USB en cortas distancias (3 metros o 10 si se utiliza una tasa de transferencia reducida de 110 Mbps). Aun así, la transición implica que ya no hay un bus físico que pueda suministrar energía a los periféricos; además, la ausencia de cables conlleva la necesidad de idear estrategias para lograr un servicio equivalente sin los aspectos ventajosos que se dan por sentados en medios sólidos.

El propósito de la especificación es preservar el modelo funcional de USB, desarrollado en torno a anfitriones (hosts) con inteligencia y dispositivos sencillos. Al mismo tiempo, debe ser capaz de funcionar en entornos inalámbricos y mantener los niveles de seguridad que proporcionaría un sistema cableado equivalente. También pretende preservar los niveles de consumo de los sistemas con cables. Para lograr esto, se utiliza un estándar ya existente que define unas capas de base adecuadas: un nivel físico y un control de acceso al medio, que son capaces de obtener el rendimiento deseado. A ellas se adhiere un nivel de convergencia que unifica ambos esfuerzos de especificación.

W-USB se define como un bus, aunque sea un bus lógico y no físico. Éste puede conectar un anfitrión con un cierto número de periféricos. El anfitrión divide el ancho de banda disponible entre los dispositivos por medio de un método de división de tiempo {time-division multiple access}. Sigue preservando el modelo de manipulación segura de dispositivos al vuelo, característica de USB, que se extiende a una distancia inalámbrica de 10 metros.

## Arquitectura de los protocolos

Como ya se ha mencionado, el modelo funcional de USB se mantiene intacto, aunque es necesario realizar pequeños ajustes a las capas definidas por el USB original para adaptar su funcionamiento a las particularidades de un entorno inalámbrico. De los niveles superiores hacia abajo, se detallan los cambios principales:

* El nivel de función sufre cambios menores para aumentar su eficiencia y dar soporte al isocronismo.
* El nivel de dispositivo se amplía con servicios de seguridad en entornos inalámbricos y capacidades de gestión de dispositivos.
* El nivel de bus mantiene su funcionalidad intacta, aunque su implementación interna se modifica sustancialmente para potenciar tanto eficiencia como seguridad.

### Cambios realizados sobre USB

Son representativos en particular los cambios que experimenta en nivel de bus, que deja de funcionar utilizando cable de cobre como medio físico, lo que a su vez genera ambigüedad en el estado de las conexiones anfitrión-dispositivo en un momento dado y, aún más importante, expone por completo las comunicaciones ante cualquier otro dispositivo en el rango de propagación, mientras que el cable ofrece un medio de transmisión relativamente muy seguro: por tanto, debe establecerse una relación de seguridad de forma explícita. Para ello, los niveles de bus y dispositivo ofrecen las funcionalidades necesarias al nivel de función: toda transmisión W-USB está cifrada en el nivel de bus sin que ello afecte a la comunicación horizontal de protocolos de un mismo nivel.

El bus sigue un protocolo basado en encuesta (utilizando para ello división de tiempo) coordinado por el anfitrión. Una transferencia en W-USB está formada por tres partes: token, datos y handshake. Por motivos de eficiencia, se pueden realizar agrupaciones de varios tokens con información temporal para los dispositivos de forma que se transmitan en una única vez, formando los denominados grupos de transacciones. El control de flujo y los tamaños de los paquetes se fijan con vistas a la eficiencia energética a la vez que respetan el modelo de comunicación de alto nivel en tubería entre la fuente y el destino.

Aun respetando el modelo de USB, en medios inalámbricos las tasas de error son muchísimo más elevadas, lo que obliga a adaptar los mecanismos necesarios para lograr la fiabilidad necesaria: entre otros handshakes para datos y utilización de buffers.

### Pila de protocolos subyacente

UWB define los dos niveles inferiores: físico (PHY) y de acceso al medio (MAC). Estos han de integrarse en el modelo W-USB en consideración: para ello, en concreto, MAC se une con el subnivel de control del enlace lógico (LLC) para formar el nivel de enlace, que es responsable del cifrado y descifrado de información, así como la gestión de errores y sincronización de PHY. A su vez, PHY gestiona la integridad de las cabeceras, no así de los datos, en la recepción.

El nivel MAC es especialmente importante en W-USB. Utiliza una estructura de supertramas (superframes) dividida en 256 slots, de los cuales los primeros se dedican a la transferencia de información de balizado. Otros slots pueden asignarse a grupos de dispositivos para cubrir sus necesidades. Estos grupos se identifican por medio de MMC's (ver más adelante). Un anfitrión mantiene uno o más canales de comunicación W-USB y es plenamente consciente del nivel MAC; por su parte, un dispositivo únicamente necesita utilizar la interfaz definido por W-USB para usar canales existentes.

Aun así, un dispositivo puede ser consciente hasta cierto punto del nivel MAC, en tres grados distintos. El más alto de ellos se corresponde con un dispositivo con balizado autónomo (self-beaconing device), que puede realizar labores de balizado por sí solo. El grado intermedio está formado por dispositivos con balizado dirigido (directed-beaconing devices), que no pueden ver las tramas MAC y tienen una capacidad de balizado limitada; por tanto, dependen del anfitrión para detectar otros dispositivos cercanos y balizar para ellos. Por último se encuentran los dispositivos sin balizado (non-beaconing devices), cuya habilidad para transmitir y recibir información es muy limitada (por otro lado, no pueden afectar a los dispositivos que el anfitrión no puede detectar, ni ser afectados por ellos).

Por lo tanto, los dispositivos sin balizado sólo pueden funcionar en las inmediaciones del anfitrión. Los otros dos tipos de dispositivos deben ser capaces de identificar a sus vecinos ocultos, por medio de emisión de balizas. Por su parte, los anfitriones mantienen relojes globales con la precisión requerida por el medio físico (20 ppm). El tiempo de canal se envía dentro de MMC's, y se utiliza para realizar asignación de slots, por lo que es muy importante que realicen el balizado con precisión. Los dispositivos pueden balizar declaraciones de reserva de recursos.

La supertrama incluye slots para que los dispositivos notifiquen acerca de transferencias asíncronas iniciadas por ellos (éstas no utilizan tuberías, sino directamente el nivel de bus). El host asigna los slots necesarios de forma dinámica. Aparte de esto, las transacciones W-USB entre el host y los endpoints se lleva a cabo igual que en USB.

## Arquitectura de transporte de datos

Las transacciones se realizan por medio de microplanificación basada en TDMA respetando la semántica de USB. Se utiliza un protocolo de transacciones partidas (split-transaction) para poder realizar varias de ellas al mismo tiempo, lo que se relaciona con el concepto de grupo de transacción, consistente en un comando de control microplanificado (microscheduled management command, MMC) y los slots reservados para la ejecución de la carga de trabajo asociada.

Las transferencias inalámbricas suelen incurrir en sobrecargas muy significativas. Para mitigar esto, W-USB reemplaza las transferencias normales con una fase de datos en ráfaga (burst mode data phase) que agrupa uno o más paquetes de datos a la vez que reduce los delimitadores y huecos de separación, frente a la regla de USB que estipula un paquete de datos por transacción. La intensidad de esta práctica es ajustable, con los correspondientes efectos sobre la equidad entre dispositivos que compiten por el acceso.

La especificación define cuatro tipos particulares de transferencias de datos, que se resumen aquí con sus características fundamentales.

* Las transferencias en bloque (bulk) utilizan el ancho de banda del canal según se dispone de él. Se garantiza la recepción, aunque el anfitrión puede favorecer transferencias pendientes o endpoints determinados. Se utilizan para transferencias de gran volumen de datos con un comportamiento temporal irregular. Utilizan tuberías unidireccionales.
* Las transferencias por interrupción se utilizan para envíos cortos que requieren baja latencia y alta fiabilidad. Se garantiza un periodo de servicio máximo, así como un número mínimo de reintentos en dicho periodo.
* Las transferencias isócronas garantizan tasas de envío y latencias acotadas para los intentos de transmisión y una tasa de envío constante en media (en general, aunque con base en el medio físico disponible, comparables a las de USB cableado). Se garantiza un reintento durante el periodo de servicio y proporciona fiabilidad adicional ante ráfagas de errores añadiendo latencia en forma de retraso sobre la base de la capacidad de los buffers. Aun ajustando el tamaño de los datos, podría ser necesario deshacerse de la información más vieja de los buffers; de ser así, se puede informar al receptor de la cantidad de información perdida mientras el canal estaba ocupado. Los anfitriones sólo eliminan datos si el tiempo de presentación de un paquete expira.
* Las transferencias de control no cambian respecto a USB 2.0. El sistema realiza el mejor esfuerzo (best effort) aunque el acceso al canal y al ancho de banda son limitables por software.

La gestión del ahorro de energía puede afectar al transporte de datos, ya que los dispositivos tienen la potestad de controlar su consumo. Como el protocolo de comunicación se basa en TDMA, tanto anfitrión como dispositivos saben exactamente en qué momentos deben estar activos, y pueden usar esta información para entrar en modos de consumo reducido. Un dispositivo puede apagar su radio de forma transparente al anfitrión a la vez que su conexión permanece activa; si desean desactivarla durante periodos largos de tiempo deben notificarlo al anfitrión, pues durante ese tiempo ignorarán cualquier intento de comunicación con ellos. En un momento dado el dispositivo realizará el procedimiento de despertado (wakeup) y comprobará si hay trabajo pendiente para él.

Por su parte, el anfitrión típicamente apagará su radio cuando sabe que no es necesaria. En caso de que decida detener el canal de comunicación temporalmente o bien para hibernar o apagarse, debe indicarlo previamente a los dispositivos.

## Conectividad

W-USB puede conformar sistemas USB verdaderos, formados por un anfitrión, dispositivos y soporte al conexionado. Implementa el paradigma ''spoke-hub'', por medio del cual hasta 127 dispositivos inalámbricos pueden formar enlaces punto a punto con el host (spokes), que actúa como hub. El anfitrión controla el sistema y es único dentro de él. Usualmente está integrado en un ordenador completo, aunque podría conectarse a él por medio de una conexión USB normal, quizá inalámbrica. Esta topología es semejante a la de red en estrella, aunque todas las comunicaciones que pueden darse aquí son estrictamente punto a punto, y nunca entre dispositivos.

Para posibilitar la interacción con dispositivos USB normales, la especificación define adaptadores de cable de dispositivo (device wire adapters). Por su parte, los anfitriones se conectan a sistemas W-USB utilizando adaptadores de cable de anfitrión (host wire adapter). Si bien el nivel físico se basa en UWB, la interfaz de los sistemas W-USB es plenamente compatible con USB. El nivel físico puede disponer de una amplia gama de tasas de transferencia, de entre las que hay tres que todos los dispositivos deben poder usar obligatoriamente: 53,3, 106,7 y 200 Mbps, mientras que los anfitriones deben poder trabajar en todas ellas.

Los dispositivos W-USB se clasifican en tipos igual que cualquier otro dispositivo USB. El uso de adaptadores de cable hace innecesaria la utilización de hubs USB tradicionales. Un dispositivo soporta una o más tuberías de comunicación con el anfitrión, y reserva el endpoint 0 para la tubería de control de USB, a través de la cual se ofrece información del tipo de dispositivo.

Las conexiones con el anfitrión se crean enviando un mensaje de establecimiento en un momento del tiempo. Tras ello, anfitrión y dispositivo pueden autentificarse utilizando para ello sus claves únicas y, si el proceso tiene éxito, el anfitrión asigna una dirección USB única al dispositivo, tras lo que éste es visible para USB. El modelo de conectividad permite la creación de conexiones al vuelo y la desconexión sin aviso previo, como en USB, por lo que las conexiones existentes deben permanecer siempre activas. Además de desconexiones forzadas por los extremos, se pueden activar mecanismos de terminación ante periodos largos de inactividad.

Aún más, los anfitriones W-USB tienen resposabilidades adicionales a los de sus contrapartes cableadas: en concreto, su subnivel MAC debe supervisar los niveles MAC de los dispositivos y, si es necesario, ayudarles en sus labores de balizado y procesar la información de las balizas que les conciernen. Por otra parte, la radio UWB y su ancho de banda asociado pueden compartirse con otras entidades, y el anfitrión debe asegurarse de que las políticas de uso definidas se cumplen. Según el estado de compartición (posiblemente coordinado para evitar interferencias) podrá ofrecer una fracción de la funcionalidad potencial.

## Seguridad

La robustez es una de las necesidades principales identificadas por la especificación. Por ello, la gestión de recursos y las conexiones y desconexiones de dispositivos son aún más importantes que en USB. Se gestiona la pérdida y corrupción de paquetes por medio de timeouts así como buffers hardware, reintentos garantizados (véanse los modelos de transferencia) y otros mecanismos de control de flujo. Si no pueden mantenerse las políticas de sincronismo, los errores se pueden atender por hardware o software (reintentos, fallo por máximo número de reintentos sobrepasado, decisiones de reintento o fallo, etc.).

El anfitrión intenta mitigar la falta de fiabilidad del medio inalámbrico (usualmente se considera aceptable una tasa de error del 10% para paquetes de 1 kB, mientras que en medios cableados este típicamente ronda el $10^{-9}).$ Además, mantiene contadores y estadísticas para cada dispositivo, posiblemente pidiéndoles información periódicamente. También puede acceder a sus funciones de control de energía de transmisión (transmit power control) y modificar parámetros de transmisión como tamaño del payload y ajustes al ancho de banda.

El objetivo siempre es ofrecer una calidad de servicio comparable a la del USB cableado. Los cables ofrecen un nivel de seguridad muy alto, dado un entorno operativo confiado típico, por lo que USB no lo trata explícitamente, aunque no pone frenos a su tratamiento o implementabilidad. W-USB debe controlar la seguridad de forma explícita. Para ello, en lugar de diseñar una solución específica para UWB, se diseña un modelo integrado en USB, y válido para cualquier variante suya. Por ello, debe añadirse al plano de control de dispositivos (device control plane) de USB.

Toda comunicación debe existir en el marco de una relación segura previamente establecida. Estas relaciones deben tener un propósito bien definido y restringir la pertenencia al grupo de comunicación, que es la base de confianza requerida para realizar el trabajo deseado. En sistemas cableados, las transferencias de datos conllevan la existencia de una conexión física controlada; esto se lleva al dominio inalámbrico por medio del concepto de pertenencia (ownership): el usuario otorga su confianza a los dispositivos, que a su vez se la demuestran entre sí, en intercambios denominados ceremonias, para formar las asociaciones necesarias. El identificador de dirección USB es una prueba de la confianza del propietario. Adicionalmente, las aplicaciones podrían demandar otras bases de confianza no compatibles directamente con este modelo específico de USB, en cuyo caso pueden implementarse por encima de la pila de base USB.

Más allá del establecimiento la relación de confianza debe mantenerse o de lo contrario expirará. Tras recibir la clave de grupo de un cluster, un dispositivo debe mantener activa la conexión confirmando su presencia dentro de cada intervalo de timeout de confianza (de cuatro segundos). Si no lo logra, será necesario que se autentifique de nuevo.

El anfitrión es quien inicia todos los procesos (salvo la señalización) siguiendo el modelo asimétrico de USB; la seguridad no es una excepción. Realiza, así, peticiones a los dispositivos para averiguar sus características de seguridad, tras lo que pueden escogerse los dispositivos apropiados. El método de cifrado simétrico predefinido es AES-128 con CCM. No obstante, podría utilizarse criptografía de clave pública para realizar la autentificación inicial (únicamente el envío de la clave CCM inicial) si el nivel de seguridad es comparable. Esto se consigue por medio de RSA de 3072 bits y SHA-256 para los hashes.

Es importante considerar que hay diferencias entre las claves maestras y las claves de sesión. Las claves maestras son de larga duración y típicamente se utilizan como el secreto compartido de una comunicación, así como para distribuir claves de sesión. Éstas, en cambio, no sobrepasan en su duración a la conexión para la que se crean, y suelen ser el método para realizar el cifrado y descifrado propiamente dichos. Un campo de la cabecera indica cuál de las posibles claves está en uso. También son importantes los métodos que previenen la repetición de envíos (replay prevention), para lo que se dispone de contadores que se actualizan en cada recepción válida. El rango de valores de estos contadores limita aún más la vida potencial de las claves de sesión.

