resumen
- pregunta
- ¿Qué debe hacer una herramienta cuando los datos no alcanzan para una respuesta clara?
- método
- Dos casos: celltrace (qué torre atiende a un celular, sin GPS) y AccessScope (qué responde un servidor de Minecraft). En los dos, el resultado incluye su propia incertidumbre
- resultado
- celltrace da confianza baja, media o alta; AccessScope devuelve «ambiguo» si sus reglas no coinciden, y no presenta un problema de cuenta como baneo
- límites
- No hay una medición de cuánto mejora la precisión al abstenerse; es una decisión de diseño, apoyada en una idea conocida (Chow, 1970)
Hay herramientas que siempre te dan una respuesta, aunque no la tengan. En dos de mis proyectos tomé la decisión contraria: si los datos no alcanzan, el resultado lo dice
Qué sabe un celular de la red
Un celular conectado sabe más de lo que muestra: el país y el operador (MCC y MNC), el área (LAC en 3G, TAC en LTE y 5G), la celda que lo atiende (Cell ID) y la calidad de la señal. En LTE, la potencia de la señal de referencia se mide como RSRP, y su calidad como RSRQ (las dos están definidas en la especificación 3GPP TS 36.214); RSSNR es la relación señal/ruido. CellTraceLogger anota todo eso, en 5G NR, LTE y 3G
observación (una línea NDJSON) │ MCC · MNC · TAC · Cell ID · RSRP · RSRQ · RSSNR ▼ celtrace ◄── OpenCellID: Cell ID → posición aproximada │ ¿una celda domina en el tiempo? ¿la señal es estable? ▼ torre más probable · confianza
Ojo con lo que identifica un Cell ID: la celda, que suele ser un sector de una antena, no un punto exacto. Y la posición de una celda en OpenCellID viene de mediciones colaborativas, así que también es aproximada. Por eso celltrace infiere infraestructura (qué torre o qué sector), no la ubicación de una persona
celltrace: confianza baja, media o alta
Cada inferencia trae un nivel de confianza según qué tan estable fue la señal y si una celda domina en el tiempo. Si hay celdas que se solapan o la red está inestable, lo dice en vez de elegir una. En la página del proyecto hay una simulación: cuando el celular queda entre dos torres, las observaciones se reparten y la confianza baja
AccessScope: reglas que votan
AccessScope entra a un servidor de Minecraft como lo haría un jugador (con Mineflayer) y clasifica lo que el servidor le responde: el mensaje de expulsión, el MOTD, la versión. La clasificación usa reglas escritas a mano, y las reglas votan. Si dos apuntan a cosas distintas, el resultado es «ambiguo» y no se elige ninguna:
mensaje: "This server is whitelisted. Banned players cannot join." whitelist ✓ → lista blanca ban ✓ → baneo ───────────────────────────── resultado → ambiguo
Tampoco se estira lo que dice la evidencia: un problema de cuenta no se presenta como baneo, porque no es evidencia de eso
La idea de fondo: abstenerse
Esto tiene nombre en reconocimiento de patrones: un clasificador con opción de rechazo. C. K. Chow lo formalizó en 1970: si un sistema puede negarse a decidir en los casos dudosos, comete menos errores en los que sí decide, a cambio de responder menos veces. Es un intercambio entre precisión y cobertura
responder siempre → cobertura alta, más errores dichos con seguridad
abstenerse si hay duda → cobertura menor, menos errores en lo que se responde
y los casos dudosos quedan a la vistaLas dos herramientas eligen el segundo lado. Y en AccessScope la regla de agregación es conservadora a propósito: no gana la mayoría, hace falta que no haya contradicción
ideaUn resultado equivocado dicho con seguridad hace más daño que un «no sé». Si la herramienta admite la duda, quien la usa sabe cuándo puede confiar y cuándo tiene que mirar más de cerca
Límites
- Las reglas de AccessScope solo cubren los mensajes que ya vi; uno nuevo queda sin clasificar hasta que se escriba su regla. Así pasó con un mensaje de baneo en español que al principio no reconocía
- La calidad de celltrace depende de cuántas celdas de la zona estén en OpenCellID; donde hay pocos datos, la confianza baja aunque la señal sea buena
- No medí cuánto sube la precisión al abstenerse: el argumento es de diseño, no un resultado experimental
Preguntas frecuentes
¿Se puede saber qué torre celular te da servicio sin GPS?
Sí, de forma aproximada. El celular conoce el Cell ID de la celda que lo atiende y la calidad de la señal; cruzando ese Cell ID con una base abierta como OpenCellID se obtiene una posición aproximada de la torre o del sector
¿Ubicar una torre es lo mismo que ubicar a una persona?
No. Un Cell ID identifica una celda, que puede cubrir un área grande. celltrace infiere infraestructura, no la ubicación exacta de nadie
¿Qué son RSRP y RSRQ?
Dos medidas de LTE definidas por 3GPP: RSRP es la potencia de la señal de referencia que llega al celular y RSRQ es su calidad, teniendo en cuenta la interferencia
¿Cómo saber si un servidor de Minecraft te tiene baneado o en lista blanca?
Por el mensaje que el servidor manda al expulsarte. AccessScope lo lee, lo clasifica con reglas, y si las reglas no coinciden responde «ambiguo» en vez de adivinar
¿Por qué una herramienta debería poder decir «no sé»?
Porque abstenerse en los casos dudosos reduce los errores en los que sí responde. Es la idea del clasificador con opción de rechazo (Chow, 1970)
Referencias
- C. K. Chow · On optimum recognition error and reject tradeoff · IEEE Transactions on Information Theory, 1970
- 3GPP TS 36.214 · E-UTRA Physical layer measurements (RSRP and RSRQ definitions)
- OpenCellID · open database of cell towers · opencellid.org
- Mineflayer · Minecraft client for Node.js · github.com/PrismarineJS/mineflayer
- Nuulz/celltrace · the Python library · github.com/Nuulz/celltrace