SGCG

…esto no es un subtítulo…

Ir a: contenido categorías calendario archivo suscripción

Volver arriba

Por qué los ficheros adjuntos de correo electrónico pesan de más

2018-06-15

Los ficheros binarios ocupan más espacio de almacenamiento cuando circulan adjuntos en un mensaje de correo electrónico que normalmente. En este artículo veremos cómo sucede este fenómeno.

Unos compañeros estaban enviando ficheros binarios adjuntos de gran tamaño por correo electrónico y se encontraron con un límite de volumen de datos admitido por el servidor. Sus ficheros adjuntos parecían ocupar apreciablemente menos espacio de almacenamiento que lo que el servidor les indicaba que era el máximo, así que se preguntaban qué podía estar sucediendo. La discrepancia era perfectamente normal: los ficheros adjuntos binarios no se envían tal cual, sino que van con una codificación especial que permite expresarlos como texto US-ASCII, pero que hace que ocupen en torno a un 37 % de espacio de almacenamiento adicional. Este texto que codifica el fichero adjunto es un galimatías, pero los programas de correo electrónico se ocupan de hacer la codificación y la decodificación de forma transparente, de manera que el usuario no suele ser consciente de estos detalles. La codificación que se usa habitualmente es Base64 con líneas limitadas a 76 caracteres separadas por pares CR/LF; esto supone un incremento de tamaño que hay que tener en cuenta cuando hay limitaciones en el volumen de datos que está permitido o es admisible transmitir.

Sobrecostes debido a la codificación Base64

En Base64, los datos de entrada se dividen en grupos de 3 octetos. Cada uno de estos grupos de 3 octetos de entrada da lugar a un grupo de 4 octetos de salida. Por lo tanto, si ignoramos las pequeñas variaciones cuando el volumen de datos de entrada no es un múltiplo entero de 3 octetos, podemos decir que los datos de salida ocupan 4 ⁄ 3 lo que los datos de entrada.

Sobrecostes debido a la separación en líneas

Los datos codificados van en líneas de 76 caracteres como máximo y estas líneas suelen ir separadas por un par CR/LF. Si asumimos líneas enteras de la máxima longitud con 2 caracteres de separador de línea, podemos decir que los datos con codificación base64 separados en líneas pasan a ocupar 1 + (2 ⁄ 76) veces lo que ocupan los datos con codificación base64 sin separar en líneas.

Todo junto

Los datos codificados pasan a ocupar (4 ⁄ 3) [1 + (2 ⁄ 76)] = 26 ⁄ 19 veces lo que los datos de entrada sin codificar. Esto es un crecimiento de casi 37 centésimas partes.


Categorías: Informática

Permalink: http://sgcg.es/articulos/2018/06/15/por-que-los-ficheros-adjuntos-de-correo-electronico-pesan-de-mas/