martes, 28 de septiembre de 2010

SMS: ¿por qué 160 caracteres?

Hoy he leido en Microsiervos un artículo acerca de curiosidades sobre los SMS. Me ha parecido muy interesante, pero me ha llamado algo la atención...En el punto 7, dice:
"El aparentemente arbitrario límite de 160 caracteres por mensaje SMS se debe simplemente a que esa era la longitud típica de las frases que uno de los ingenieros que inventó el sistema escribía durante las pruebas.(...)"

Yo tenía entendido que la longitud viene dada por el protocolo que se usa para transmitir los mensajes, y por aprovechar un canal de señalización que estaba desaprovechado... Así que me he puesto a investigar. Y entro en detalle:

Por un lado, los SMS no están limitados a caracteres, sino a octetos (o bytes). A 140 octetos, concretamente.
Para intentar que todo el mundo lo entienda... están limitados a secuencias de "bits". En un SMS pueden ir caracteres normales (todos estamos pensando en caracteres latinos), o más raros (como la ñ, el €, tildes), o más raros aún (caracteres chinos, árabes, etc). Según que alfabeto se elija para enviar, los caracteres ocuparán más o menos "bits". Lo "normal" en los SMS es que los caracteres ocupen 7 bits, y por tanto: ( (140 octetos) * (8 bits/octeto) ) / (7 bits/carácter) = 160 caracteres

Pero si en el alfabeto se incluyen caracteres raros que ocupen los 8 bits (todos los caracteres latinos con sus tildes graves y agudas, por ejemplo), en un SMS cabrían 140 caracteres. Y si cada carácter ocupase 2 bytes, cabrían 70 caracteres (algunos móviles permiten codificar en UCS2 -o lo que es lo mismo, 2 bytes por carácter), lo que limita efectivamente los SMS a 70 caracteres (puede probarse en las Blackberrys).

Pero a lo que íbamos..¿por qué 140 octetos?. Este tamaño se debe al protocolo de comunicación usado para las comunicaciones móviles (MAP, SS7). Los SMS se mandan en tramas cuyo tamaño máximo está definido por dicho protocolo. El datagrama que contiene los datos (el texto) del mensaje tiene la comentada longitud de 140 caracteres... Este completísimo artículo lo explica en breves apartados (y la parte dedicada al tamaño del SMS, aquí).

Pero.. ¿por qué ese protocolo, con ese tamaño? Como explica el largo artículo al que Microsiervos hace mención, todo viene de un ingeniero que plasmaba sus pensamientos en frases cortas, dándose cuenta que de media le sobraba con 160 letras Y buscando un estándar, en el que quiso que se pudieran enviar dicho numero de caracteres, se le ocurrió aprovechar una banda de radiofrecuencia existente en la comunicación con los móviles, pero muy desaprovechada:
 ...a secondary radio channel that already existed on mobile networks.
This smaller data lane had been used only to alert a cellphone about reception strength and to supply it with bits of information regarding incoming calls. Voice communication itself had taken place via a separate signal.
(...) Most of the time, nothing happens on this control link. So, it was free capacity on the system.
 
Así pues, y en resumen, las operadoras aprovechan para el envío de los SMS una banda de radio (de señalización, gracias, Iván), infrautilizada. Esto se traduce en que en realidad no les cuesta "nada" ni enviarlos ni recibirlos, pues esa banda de señalización existiría de todos modos...(así que piénsese en lo que ganan con 0,15€ por sms!)

Y como última reflexión, sabiendo esto, me pregunto yo (al aire), ¿por qué se quedan el 50% de lo que pagan los usuarios por los SMS Premium? (sobretarificados).