crtdrops
HERRAMIENTA · RASTREO

Datos celulares de una flota

¿Cuántos megas al mes gasta cada equipo, y cuánto de eso son tus datos?

Un reporte de 60 bytes no cuesta 60 bytes: encima van encabezados, ACK, la respuesta del servidor, abrir y cerrar conexiones, el saludo de TLS, los keepalive y las retransmisiones. Pon cómo reporta tu equipo y cómo se conecta, y ve el consumo al mes y en qué se va. Corre en tu navegador y no envía nada.

CADA REPORTE

Los bytes de datos son lo que arma tu equipo: posición, hora, entradas, sensores. La respuesta es la confirmación de la aplicación (0 si el servidor no contesta nada propio). Juntar varios reportes en un envío ahorra encabezados, a cambio de que lleguen más tarde.

CADA CUÁNTO REPORTA

Un intervalo de 0 quiere decir que en ese estado no reporta; con la conexión abierta, en esas horas sólo van keepalive.

CÓMO SE CONECTA

Con la conexión abierta, la red del operador suele cortarla si pasa un rato sin tráfico, así que el equipo manda keepalive; y la conexión se cae y se vuelve a abrir varias veces al día. El saludo de TLS depende sobre todo de los certificados: con una cadena RSA de dos certificados, entre 3 y 6 KB es común; con ECDSA puede ser menos de la mitad, y si el equipo también presenta su certificado, más. Reanudar una sesión lo baja a unos cientos de bytes. Pon los bytes IP del saludo, con sus encabezados y ACK.

FLOTA Y PLAN
POR EQUIPO, AL MES
MB
CADA REPORTE CUESTA
SON TUS DATOS
LA FLOTA, AL MES

    Cómo calcula

    Los reportes al día salen de las horas en movimiento y estacionado entre sus intervalos; los envíos, de los reportes entre los que van en cada envío (un lote va en un solo paquete y, con TLS, en un solo registro). Cada envío lleva sus datos con un encabezado IPv4 y TCP de 40 bytes (28 con UDP); la respuesta del servidor lleva el suyo, con el ACK del servidor encima, y el equipo le contesta con un ACK; si el servidor no responde nada propio, se cuenta sólo su ACK. Abrir una conexión TCP cuesta 160 bytes (SYN y SYN-ACK de entre 44 y 60 bytes según sus opciones, aquí 60, y el ACK) y cerrarla, hasta otros 160 (FIN y ACK de cada lado). Con la conexión abierta se abre sólo en cada reconexión, y los keepalive van en los huecos entre envíos más largos que su intervalo (o durante todo un estado en el que no reporta), cada uno una sonda y su ACK; con conexión nueva se abre y se cierra en cada envío. Con TLS se suma el saludo cada vez que se abre, y 29 bytes por registro (TLS 1.2 con AES-GCM). Las retransmisiones son un porcentaje de todo lo anterior; con UDP cuentan como el reenvío de tu protocolo. Un mes son 30 días y un MB, un millón de bytes.

    Lo que no modela: las opciones de TCP en cada paquete (las marcas de tiempo suman 12 bytes), IPv6 (20 bytes más de encabezado), TLS 1.3 (22 bytes por registro en lugar de 29, y sus tickets de sesión después del saludo), DTLS sobre UDP (unos 37 bytes por datagrama, y su saludo aparte), los latidos de la aplicación como el PING de MQTT (cuestan más que un keepalive de TCP, y dentro de TLS más todavía), el servidor que manda su ACK aparte porque tarda en responder (40 bytes más por reporte), los cierres de tres paquetes o con un solo RST, las retransmisiones que se pierden antes de notar que una conexión ya murió, las consultas de DNS, los comandos y actualizaciones que manda el servidor, y el redondeo que algunos operadores hacen por sesión: si tu operador cobra un mínimo por cada sesión de datos, con muchas reconexiones el consumo cobrado puede ser bastante mayor. Si tu operador cuenta el MB como 1,048,576 bytes, la cifra en su factura sale alrededor de 5 % menor. Los ejemplos son ilustrativos.

    La nota: los bytes que no son tuyos →