¿Cómo averiguar qué aplicación envía/recibe grandes cantidades de datos en un iPhone?

Tengo un iPhone que de repente (en los últimos dos meses) comenzó a superar el plan de datos de 200 MB en el que estaba. Antes de esto, ni siquiera estaba cerca de los límites.

La única información que me da la compañía telefónica (AT&T) son los montos y los tiempos (que por lo que entiendo es solo un tiempo de facturación para una cantidad de datos agrupados). Aquí hay una muestra:

08/23  12:07 AM  Sent  198679KB
08/22  12:07 AM  Sent  6070KB
08/21  12:06 AM  Sent  13757KB
08/20  12:06 AM  Sent  5993KB
08/19  12:54 AM  Sent  64947KB
08/17  10:05 PM  Sent  165247KB
08/17  12:02 AM  Sent  12707KB
08/16  12:02 AM  Sent  90KB
08/15  12:42 AM  Sent  23581KB
08/14  12:10 AM  Sent  35819KB

Y además de las enormes cantidades de 3G, este teléfono pasó muy poco tiempo fuera de Wifi.

¿Hay alguna forma posible (¡sin jailbreak!) de averiguar qué aplicación podría transferir esta cantidad de datos? Actualmente, AT&T no me dará o no puede darme un desglose de los destinos del tráfico. Incluso si fuera posible, me gustaría una respuesta que se encuentre dentro del teléfono como una verificación de lo que está midiendo el operador, si eso es posible.

Muchos de los comentaristas en este hilo de comentarios parecen estar experimentando exactamente el mismo problema.
No puede usar proxy para el tráfico 3G como puede hacerlo con el tráfico TCP/IP. Al menos no lo proxy y lo estudie. Está encriptado. Si pudiera construir un puente 3G con el que su teléfono hablara fácilmente y pudiera ver los datagramas a través de este puente, haría que espiar las redes basadas en 3G fuera aterrador. Su mejor apuesta es observar el tráfico cuando está en una red WiFi.
He realizado una edición bastante importante en mi respuesta: cuando su teléfono está en modo de suspensión, usa 3G, no WiFi. La radio 3G consume menos energía, por lo que Apple decidió usarla cuando el dispositivo está inactivo. Necesitas desactivar los datos móviles en el teléfono con mi técnica. De hecho, puede desactivar el uso de datos móviles para salvarse mientras resuelve esto.
Ciertamente espero que no sea algo que cargue datos de rollo de cámara a los servidores. bits.blogs.nytimes.com/2012/02/28/…

Respuestas (8)

Después de varias lecturas cuidadosas de su pregunta, algo se destacó:

Y además de las enormes cantidades de 3G, este teléfono pasó muy poco tiempo fuera de Wifi.

Su iPhone, cuando está en modo de suspensión, apaga la radio WiFi para conservar la energía de la batería . Por lo tanto, si tiene aplicaciones hambrientas de datos que están haciendo cosas en segundo plano cuando su teléfono está inactivo/bloqueado, lo están haciendo a través de 3G. Tenga en cuenta que el comportamiento de WiFi-off-in-sleep-mode es algo inconsistente. Pero puede asegurarse de que su teléfono nunca use 3G mientras realiza estas pruebas apagando los datos móviles. De esa manera, cuando duerma, seguirá usando WiFi y no 3G para datos y estará seguro de capturar todo el tráfico en su red de monitoreo.


Puede improvisar algunas tecnologías que podrían ayudarlo a localizar al culpable.

Como un primer paso rápido, puede intentar monitorear el teléfono cuando está en una red WiFi usando mitmproxy. Desde esta excelente publicación de blog mclov.in , puede configurar un proxy para su teléfono en su Mac y filtrar todo el tráfico http/s a través de él:

  1. Descargue la herramienta mitmproxy y configúrela yendo a la carpeta de mitmproxy y ejecutando Sudo python setup.py install. Si todo va bien, mitmproxy debe estar disponible en su $PATH.
  2. Inicie mitmproxy ejecutando mitmproxy.
  3. Obtenga la dirección IP de su computadora ejecutando ifconfig en1 (o cualquiera que sea la interfaz que esté utilizando).
  4. Configure el proxy en su iPhone yendo a su configuración inalámbrica, configurando el proxy para que sea "Manual", y configure la IP para que sea la IP de su computadora y el puerto como 8080.

Si configura mitmproxy para registrar llamadas http/s en un archivo, puede analizarlo después de un período de tiempo y buscar tendencias. También podrá inspeccionar las cargas útiles en las llamadas http/s para que pueda detectar solicitudes inusualmente grandes de esta manera.

Por supuesto: este enfoque asume que el culpable está usando http/s para la comunicación. Si no es así, no verá el problema a través de mitmproxy y tendrá que recurrir a una solución de nivel inferior.

Debe monitorear todo el tráfico en una red WiFi que controle para ayudarlo a buscar al menos los puntos finales para las transferencias de datos. El monitoreo del ancho de banda no es difícil de configurar, pero mantener un registro por IP y por punto final es realmente difícil de hacer con hardware de nivel de consumidor porque puede ser una cantidad ENORME de datos. Se debe verificar el origen y el destino de cada paquete, registrar el tiempo y el tamaño; se suma muy rápido.

Pero puede obtener algunos números decentes y reducir el espacio de búsqueda para que sea algo potencialmente analizable por humanos.

Primero: debe configurar una red con monitoreo de ancho de banda en un nivel por IP. Para eso, recomiendo un enrutador WiFi de nivel de consumidor Linksys WRT54GL que ejecute Tomato y el complemento TeamanIPTraffic para el seguimiento del ancho de banda a nivel de IP.

Segundo: configure su DNS en el enrutador para usar OpenDNS . En su cuenta de OpenDNS para realizar un seguimiento de las búsquedas de DNS:

  • Inicie sesión en https://dashboard.opendns.com/
  • Haga clic en la pestaña 'Configuración'
  • Haga clic en la dirección IP de la red asociada con su enrutador
  • Haga clic en 'Estadísticas y registros' en el lado izquierdo
  • Asegúrese de que 'Habilitar estadísticas y registros' esté marcado y haga clic en el botón 'Aplicar'

Ahora se registrarán todas las búsquedas de DNS realizadas en su red.

Asigne a su teléfono una IP estática en esta red para que sea más fácil de rastrear.

Y... espera y observa.

Vas a monitorear la actividad de la dirección IP asignada a tu teléfono en las tablas de actividad por IP de tu enrutador. Cuando la actividad de datos para esta dirección IP aumente, se dirigirá a su consola OpenDNS y observará las estadísticas y los registros de sus búsquedas de DNS durante el período de tiempo en que el movimiento de datos fue alto para su teléfono.

Eso debería dar una lista corta [sic] de nombres de host que se estaban resolviendo en ese momento. Y armado con esa lista, es posible que pueda reducirla a una aplicación.

Esto es exactamente lo que esperaba: detalles sobre cómo enviar los datos por proxy. Profundizaré en esto y veré si tengo más preguntas. Excelentes enlaces y trabajo en esto.
Tengo una mejora en este enfoque si también tienes una Mac. Lo escribiré en un momento cuando tenga tiempo para depurar la idea.

En su lugar, con mi escaso conocimiento, elegiría uno o dos buenos candidatos y los eliminaría del iPhone con iTunes. Debería resultar en una gran pérdida de espacio libre, e iTunes podría demostrarlo.

Otro método menos complicado sería simplemente apagarlos haciendo doble clic en el botón Inicio y manteniendo presionado uno hasta que aparezca la x.

Probablemente sea solo una aplicación, pero resolverla llevará tiempo y dinero hasta que la encuentre.

Probablemente haya mejores formas que otros sugerirán, pero esto es algo para empezar.

Interesante idea, lo conectaré y lo probaré. Simplemente asumí que los datos probablemente no se estaban escribiendo en el disco de todos modos.
Gran sugerencia para otra forma indirecta de medir los cambios. Y, si el almacenamiento no cambia, entonces el uso de datos podría atribuirse de manera más confiable a un error o transmisión de algo en lugar de descargar algo para uso permanente en el dispositivo.

Hay varias aplicaciones que pueden ayudarlo a rastrear el uso de datos de la aplicación:

  • Una combinación de NetStat y uso de datos : el primero le permitirá conocer todas las conexiones en un momento dado. Este último afirma trabajar con cualquier proveedor inalámbrico y puede proporcionar informes de uso de datos inalámbricos y WiFi. La aplicación también afirma " rastrear la aplicación de acaparamiento de datos comprobando desde el último contador de ejecución". Estos ayudarán en un proceso de búsqueda de eliminación para descartar potencialmente o en algunas aplicaciones como usuarios de los datos.

  • Onavo ( revisado aquí ): proporciona compresión de datos para el iPhone y genera informes de la cantidad de uso de datos por aplicación/categoría. Limitaciones : actualmente solo funciona con AT&T para usuarios de EE. UU., no puede comprimir la transmisión de video. También puede haber riesgos de seguridad, ya que sus datos se enrutan a través de los servidores de Onavo.

También encontré esta lista de notables aplicaciones de seguimiento de datos de iOS que pueden satisfacer sus necesidades.

Advertencia : personalmente no he usado estas aplicaciones, pero las reseñas parecen prometedoras.

Buscaré en Onavo, pero parece que realmente no quiero compresión tanto como un medidor que pueda monitorear. Tal vez no haya servicio solo de medición...

Desde iOS 7, puede ir a Configuración -> Datos móviles y ver una lista de todas las aplicaciones junto con la cantidad de datos utilizados (desde que se restablecieron las estadísticas por última vez) por cada una. También puede desactivar los datos móviles por aplicación en el mismo lugar.

Si observa un alto uso inexplicable de datos móviles, intente deshabilitar Wi-Fi Assist en la misma pantalla de configuración; permite que su teléfono use datos móviles incluso cuando tiene una conexión Wi-Fi, si considera que esa conexión es deficiente.

Creo que hay algunas aplicaciones para iPhone que te permiten registrar y monitorear tu uso de datos. No he usado ninguno personalmente, pero busqué un poco en Google y descubrí que los muchachos que crearon NetUse para Mac planean crear una aplicación similar para iPhone. También encontré este hilo , que esencialmente hace la misma pregunta; tal vez hay algunas respuestas allí.

Tal vez podría usarlo cuando salga, o buscar en la tienda de aplicaciones de iPhone para ver si ya existe algo similar :)

Recomendaría tomar varias horas para revisar sistemáticamente sus aplicaciones, una por una. Primero, cierra todas tus aplicaciones. Toma nota de la hora en que abres la aplicación y la hora en que la cierras (eliminándola de la barra de multitarea, por supuesto). Repita con la siguiente aplicación. Cuando vea el informe de AT&T, debería poder saber a partir de los tiempos dados qué aplicación usa tanto la red.

¿Es esto diferente a la respuesta de agosto que proponía un proceso de eliminación y trataba de llegar al uso indirectamente midiendo lo que no es? apple.stackexchange.com/a/23017/5472
@bmike Es muy similar a la segunda mitad de esa respuesta, pero esa es algo vaga sobre cómo se podría determinar exactamente usando ese método. Parece que piensan que simplemente eliminar las aplicaciones que no están en uso actualmente de la barra multitarea eliminará el problema. Lo más probable es que sea cierto, pero no ayuda a encontrar qué aplicación es la culpable.

Me sorprende que no se haya mencionado... Pero ASEGÚRESE de verificar la configuración de su CORREO ELECTRÓNICO. Hay opciones para...

  1. ¿Empuja? (más ancho de banda)
  2. ¿Configuración de vista previa de mensajes? (más ancho de banda, supongo)
  3. ¿Cargar imágenes? (más ancho de banda)
  4. ¿Tiempo de buscar? (menor = más ancho de banda)
  5. ¿Multiples cuentas?

Y dependiendo de la configuración de tu calendario/contactos, fotos, frecuencia de cambios... Eso también podría estar afectando. Además, ¿tiene iCloud o Find my iPhone activado últimamente? Eso seguramente podría haber afectado sus números de uso.

Si bien es prolly insignificante... También puede activar y desactivar las notificaciones de aplicaciones no esenciales... Para eliminar una fuente adicional (poco probable) del problema.

Revisé mi iPad un mes, y cambiando mi agresiva configuración de verificación de correo electrónico lo arregló todo para mí... Pero, en el tiempo poco después de que sucediera... También lo ponía en modo avión/wifi activado siempre que era posible... Asumiría que está utilizando la red celular para llamadas telefónicas (lo cual no hice), por lo que esa medida de precaución puede ser inapropiada... Pero si necesita hacer lo que debe hacer para asegurarse de no repasar .. Esa es una opción.

Me preocupa más medir lo que está pasando que llegar a un límite arbitrario. Quiero saber si es correo, no necesariamente hay que hacer el proceso de eliminación mencionado el pasado mes de agosto . Agradezco la sugerencia de que puede ser un correo, sin embargo, mi teléfono no está configurado para enviar mensajes y no se entrega ningún correo hasta que toco el icono por la mañana. (Eso no estaba en la pregunta original, así que no hay forma de saberlo :-)
No lo mencioné en la pregunta original, pero estoy bastante seguro de que las grandes cantidades de datos enviados se producían en segundo plano. Como mencioné, fue un gran aumento en las facturas anteriores (mismo teléfono, misma configuración), que no podía explicarse por el uso estándar de la aplicación.

Bueno, puede apagarlo cerrando todas sus aplicaciones que requieren datos y luego yendo a Configuración -> General -> Red y apagando el interruptor de datos móviles.

Creo que la idea aquí es seguir usando los datos, pero determinar qué aplicaciones (ya sea en primer plano o en segundo plano, del sistema o de terceros) están usando qué porción de los datos totales. Una vez que podemos medirlo, es fácil elegir usar más o menos según lo proporcione cada situación.