cambio de bloqueo
Inglés: locking shift
Un mecanismo de codificación dependiente del estado utilizado en la comunicación de datos (como GSM SMS) y los estándares de codificación de caracteres para cambiar entre diferentes conjuntos de caracteres o ventanas.
Cambio de bloqueo: cambio permanente de conjuntos de caracteres hasta que se revierta
Un cambio de bloqueo es un carácter de control o secuencia de código que cambia un dispositivo de comunicación o procesador a un modo de codificación de caracteres diferente, y lo mantiene allí hasta que se recibe un comando de desbloqueo explícito. A diferencia de un cambio momentáneo (que afecta solo al siguiente carácter), un cambio de bloqueo cambia la interpretación de referencia de todos los datos subsiguientes hasta que se cancela activamente. Este mecanismo es esencial en sistemas donde el espacio de símbolos disponible es menor que el rango completo de caracteres necesarios.
En la mensajería SMS GSM, el alfabeto predeterminado de 7 bits proporciona 128 caracteres a través del conjunto de caracteres GSM estándar. Para acceder a caracteres extendidos como llaves, corchetes o ciertos acentos, el sistema utiliza comandos de cambio de bloqueo: típicamente códigos de cambio que alternan entre el conjunto de caracteres principal y un conjunto de extensión. Un solo cambio de bloqueo en medio de un mensaje significa que cada carácter posterior utiliza la tabla alternativa, hasta que un segundo cambio de bloqueo vuelve a cambiar. Esto difiere fundamentalmente de las secuencias de escape en algunos protocolos, donde cada carácter especial debe invocarse explícitamente.
El término aparece con mayor frecuencia en los estándares de telecomunicaciones móviles y en los protocolos de transmisión de datos heredados. Los primeros sistemas de codificación de caracteres como ISO 2022 utilizaron cambios de bloqueo como el mecanismo principal para manejar múltiples alfabetos en un solo mensaje. En ese estándar, los caracteres de control SI (Shift In) y SO (Shift Out) realizan exactamente esta función: SO bloquea el dispositivo en un conjunto de caracteres alternativo, y SI lo bloquea de nuevo al predeterminado. Los sistemas modernos como UTF-8 han dejado obsoleto este enfoque al utilizar codificación de ancho variable, pero el cambio de bloqueo sigue siendo importante en entornos restringidos como SMS, donde el ancho de banda se mide por carácter.
Implicaciones prácticas y modos de fallo
Un problema común en los sistemas que utilizan cambios de bloqueo es el cambio no coincidente: si se envía un código de cambio de bloqueo pero el desbloqueo correspondiente se pierde o se corrompe en la transmisión, todos los caracteres subsiguientes se decodifican utilizando la tabla incorrecta, produciendo "basura" hasta que el dispositivo receptor se reinicia o se sincroniza manualmente. Algunas implementaciones incluyen mecanismos de tiempo de espera para volver al conjunto de caracteres predeterminado si no aparecen caracteres válidos dentro de un período de tiempo, pero esto no es universal. Los desarrolladores que trabajan con SMS o protocolos similares con caracteres limitados deben rastrear cuidadosamente el estado de cambio y asegurarse de que los cambios emparejados se registren y validen.
La razón por la que existen los cambios de bloqueo es económica: ahorran ancho de banda. Una secuencia de escape de cambio momentáneo generalmente requiere de 1 a 3 bytes de sobrecarga por carácter especial, mientras que un solo cambio de bloqueo puede aplicarse a docenas de caracteres a la vez. En SMS, donde cada carácter cuesta dinero y el espacio está limitado a 160 caracteres para la tarifa base, este ahorro es tangible. Sin embargo, esta eficiencia tiene el costo de la "statefulness" (dependencia del estado), lo que aumenta la complejidad en el análisis y la recuperación de errores.
Fuentes
- Fuente de la definiciónWiktionary