PePa Ping: Android Tool to Take and Predict Periodic Passive Ping Measurements Diego Madariaga, Gabriela Mendoza {diego, gabriela}@niclabs.cl NIC Chile Research Labs Universidad de Chile dispositivo, destacan el tiempo de ida y vuelta (RTT), latencia, jitter, cantidad de paquetes perdidos y velo- Abstract cidad de subida y bajada de datos, los que típicamente se reportan en las pruebas de velocidad realizadas Global increase in the use of mobile Inter- en sitios populares como SpeedTest 1 o Fast 2 , donde net service generates interest in mobile net- estos indicadores son calculados en una conexión end work studies to determine and forecast the to end, tomando medidas respecto al camino entre el QoS provided by mobile operators. This study dispositivo y el servidor de prueba, lo cual no repre- present a method to take passive ping mea- senta necesariamente la calidad general del servicio, surements in Android devices and proposes debido a que la prueba reporta el comportamiento different methods to forecast two of the most de una única conexión de las múltiples que pueden important Internet QoS indicators obtained presentarse de forma simultánea. Además, dichas by the passive ping method: RTT and per- pruebas son realizadas en un momento específico y centage of packets lost in TCP connections, capturan la calidad en ese instante, lo que dificulta based on other passive in-smartphone mea- registrar de forma constante la calidad de servicio surements. del Internet durante un intervalo de tiempo mayor, ya que esto implicaría una permanente sobrecarga 1. Introducción del dispositivo debido a las constantes pruebas, lo cual sería especialmente perjudicial en dispositivos Durante los últimos años, el uso del servicio de móviles, ya que al tratarse de pruebas activas que Internet móvil ha ido en permanente crecimiento introducen paquetes en la red, los planes de datos de a nivel global, lo que se refleja en Chile, en donde Internet se verían fuertemente afectados, debido a que durante el primer trimestre de 2017, el 75.8 % del estos suelen ser limitados. total de accesos a Internet, fue realizado por medio de dispositivos móviles [Sub17]. Dada la gran magnitud Por lo tanto, el trabajo en desarrollo presentado, del uso actual de Internet móvil, es importante realizar muestra una herramienta desarrollada para dispositi- estudios para determinar la calidad de este servicio vos Android que permite de forma pasiva recolectar entregado por los operadores de telefonía móvil, información importante acerca del estado de las cone- así como el desarrollo de métodos predictivos para xiones TCP establecidas, capturando periódicamente la calidad de este servicio, que permitan anticipar valores de RTT y cantidad de paquetes perdidos. Ade- posibles degradaciones en la calidad de servicio del más, se propone la realización de modelos de predic- Internet móvil en un tiempo determinado. ción basado en el análisis de series temporales y ba- sados en la resolución de problemas de regresión que Dentro de los indicadores más utilizados para permitan estimar estos valores para un dispositivo en conocer la calidad de la conexión a Internet desde un específico, tomando como base mediciones anteriores Copyright c by the paper’s authors. Copying permitted for recolectadas y otros indicadores pasivos obtenidos, ta- private and academic purposes. les como intensidad de señal recibida y eventos de des- In: Proceedings of the IV School o Systems and Networks (SSN 2018), Valdivia, Chile, October 29-31, 2018. Published 1 https://speedtest.net at http://ceur-ws.org 2 https://fast.com conexión de la red. presentado, es que propone la obtención y predicción de indicadores de calidad de servicio y no de calidad 2. Trabajo relacionado de experiencia, por medio del uso de mediciones obte- nidas dentro del mismo dispositivo móvil. Las mediciones de latencia, jitter y cantidad de paquetes perdidos suelen llevarse a cabo por medio de la herramienta de software conocida como ping, la 3. Aplicación Android PePa Ping cual realiza sus mediciones enviando paquetes ICMP Dado que la gran mayoría de las soluciones para (Internet Control Message Protocol) de tipo echo estimar tiempo de ida y vuelta (RTT) y cantidad request y esperando la llegada de paquetes ICMP de paquetes perdidos se basan en la interceptación de tipo echo reply como respuesta. A pesar de su de interfaces de red y en el acceso al contenido de común uso, ping no reporta medidas precisas, ni los headers IP y TCP de cada paquete, sus imple- refleja necesariamente la calidad de servicio recibida, mentaciones en entornos Linux requieren permisos principalmente debido a que se basa en el uso de de superusuario (root), lo que dificulta su implemen- paquetes ICMP (utilizados solo con fines de control tación en dispositivos Android (basados en Linux) y diagnóstico), y pueden ser afectados por diferentes ya que para acceder a dichos permisos, el usuario mecanismos de control de tráfico que los paquetes debe realizar un proceso de rooteado del teléfono, TCP. Además, al igual que las pruebas de velocidad interviniendo el estado de fábrica del dispositivo, mencionadas anteriormente, ping reporta el estado perdiendo su garantía y pudiendo incluso quedar de una única conexión y no el estado general de la inutilizable en caso de alguna falla. conectividad a Internet. Ya que para realizar análisis sobre las conexiones a Cómo solución a estos problemas, tanto operadores Internet es indispensable el acceso al tráfico de red, de redes como investigadores han adoptado métodos y considerando las limitaciones mencionadas previa- pasivos para medir la calidad de servicio presente mente para dispositivos Android, durante este trabajo en las conexiones de Internet establecidas, pudiendo se desarrolló la aplicación PePa Ping que accede al analizar todos los flujos de datos sin una sobrecarga tráfico de Internet de una forma distinta, haciendo uso de tráfico que pueda afectar las mediciones tomadas, de la API incluida en la versión 4.0 de Android para llevando a cabo estudios para estimar la latencia de las establecer una conexión con una red privada virtual4 . conexiones de Internet de forma pasiva, analizando los A través de este método, se crea una interfaz de red tiempos de salida y entrada de paquetes TCP [Jia02] virtual y se provee a la aplicación de un descriptor o analizando la opción timestamp en las cabeceras de archivo, donde cada lectura entrega un paquete TCP3 , siguiendo el mecanismo introducido en [Jac92]. IP que va desde el dispositivo hacia la red, y cada El método de ping pasivo periódico presentado en escritura introduce un paquete IP como proveniente este trabajo, difiere de los mencionados en el hecho del exterior. En un uso tradicional, la aplicación se de que reporta los valores de RTT y porcentaje de conecta mediante un túnel VPN a un servidor VPN paquetes perdidos que el mismo sistema ha calculado, y le envía los paquetes leídos desde el descriptor de por medio del acceso a la información almacenada en archivos. Posteriormente, los paquetes enviados desde los sockets de cada conexión. Además, la herramienta el servidor VPN son leídos del túnel VPN y escritos reporta cada intervalos de 10 segundos acerca de las en el descriptor de archivos, completando así el flujo conexiones activas durante ese intervalo de tiempo. de paquetes IP. Con respecto a la predicción de indicadores de ca- La herramienta desarrollada, utiliza el servicio de lidad en dispositivos móviles destaca la predicción de VPN de una manera diferente, sin enviar los paque- calidad de experiencia a partir de mediciones del esta- tes IP leídos hacia un servidor VPN exterior, sino que do de la red [Agg14] y a partir de mediciones dentro manejándolos en el mismo celular, en un servidor VPN de los mismos dispositivos [Cas17], utilizando técni- interno, cuyo funcionamiento se ilustra en la Figura 1. cas propias del aprendizaje de máquinas como análisis Este servidor VPN interno se encuentra programa- de series temporales y la implementación de clasifi- do en el lenguaje C++, y es introducido en el código cadores. De este mismo modo, se han implementado de la aplicación Android gracias al framework Java métodos para predecir, a partir del desempeño de la Native Interface, que permite la interacción entre red, valores de calidad de experiencia para streaming código Java y código escrito en C, C++ o assembler. de video [Ket10] y para Voz sobre protocolo de Inter- Así, el servidor interno recibe los paquetes IP y envía net (VoIP) [Cha16]. La principal diferencia del trabajo 4 https://developer.android.com/reference/android/net/ 3 http://www.pollere.net/pping.html VpnService 6 Facebook IE Google USA 4 RTT [µs] 2 0 10 11 12 13 14 15 Tiempo [Hr] Figura 1: Diagrama de flujo de paquetes utilizando ser- Figura 2: RTT registrado por la aplicación PePa Ping vidor VPN interno. durante 5 horas sus datos por sockets de tipo SOCK_DGRAM (UDP) y SOCK_STREAM (TCP), que reciben directamente los sistema epoll, en donde los descriptores de archivo datos a enviar y se encargan de la encapsulación de de los sockets son registrados para que se levante un estos en headers TCP/UDP e IP. Asimismo, al leer de evento cada vez que alguno esté disponible para ser estos sockets, no se obtienen paquetes IP, sino solo el leído (cuando se tenga respuesta a los datos enviados área de datos de estos (payload ) y ya que el descriptor anteriormente). de archivos de la red virtual necesita que en él se escriban paquetes IP, el servidor interno coloca los PePa Ping, registra cada 10 segundos el RTT y la headers correspondientes sobre los datos leídos desde cantidad de paquetes perdidos para cada uno de los los sockets antes de escribirlos en el descriptor de sockets TCP activos durante los 10 segundos previos, archivo. Lo anterior implica que para las conexiones accediendo a dichos valores calculados por el sistema, TCP, el servidor interno se encargue de manejar, mediante la opción de socket TCP_INFO, realizando así entre otras cosas, el registro de los bytes enviados por mediciones pasivas de RTT y cantidad de paquetes el socket, con el fin de que los headers TCP puestos perdidos de forma periódica. Estas mediciones son pa- sobre los datos leídos desde el socket presenten el sivas en cuanto no se añaden paquetes nuevos a la red valor correcto en el campo ACK. sino que los paquetes son enviados por medio de los sockets creados por el servidor VPN interno. Es importante mencionar que, a diferencia de Java, C permite la creación de sockets en donde se 4. Análisis preliminar y trabajo futuro provee una comunicación a nivel de protocolo de red, pudiendo enviar y recibir directamente paquetes IP. La Figura 2 muestra el RTT reportado por la aplica- Sin embargo, este método requiere la creación de ción PePa Ping en un dispositivo de prueba en uso sockets del tipo SOCKET_RAW5 , lo que requiere que la constante de Internet móvil, respecto a conexiones aplicación sea ejecutada con permisos de superusuario, TCP establecidas durante las 10:00 y 15:00 horas lo que es una dificultad mayor en dispositivos An- de un día laboral hacia servidores de Google en droid, como se explicó con anterioridad en la sección 2. California, Estados Unidos y hacia servidores de Facebook en Dublín, Irlanda, en donde se observa que La aplicación mantiene dos tablas de hash, para las mediciones de RTT presentan un comportamiento almacenar las conexiones TCP y UDP, cuyas llaves que varía en función de al menos dos variables: tiempo corresponden a la unión de los valores puerto_origen, y ubicación geográfica del servidor de destino. ip_destino y puerto_destino, y cuyos valores son objetos de la clase TcpConnection implementada, que En adición a estas variables, se plantea la consi- almacena al socket conectado entre el dispositivo y la deración de otras medidas pasivas tomadas por el dirección ip_destino:puerto_destino. Además, se dispositivo tales como intensidad de señal recibida, utiliza un método de sondeo (polling) para organizar episodios de desconexión de la red y posición geo- la lectura de los sockets, mediante la llamada de gráfica (datos disponibles por medio de aplicaciones como Adkintun Mobile [Bus13]), con el fin de utilizar 5 http://man7.org/linux/man-pages/man2/socket.2.html estrategias de aprendizaje de máquinas enfocadas tanto en el análisis de series temporales como en la [Cas17] P. Casas, et al. Predicting QoE in cellu- resolución de problemas de regresión, para predecir a lar networks using machine learning and in- partir de las mediciones mencionadas tomadas dentro smartphone measurements. Quality of Multi- del dispositivo móvil, valores de RTT y porcentaje media Experience (QoMEX), 2017 Ninth In- de paquetes perdidos en las conexiones TCP esta- ternational Conference on. IEEE, 2017. p. 1- blecidas, de forma similar a lo realizado en trabajos 6. para predecir la calidad de experiencia en dispositivos móviles en tiempo real [Cas17, Agg14]. [Ket10] I. Ketykó, et al. QoE measurement of mobile YouTube video streaming. Proceedings of the Además, se considera como trabajo futuro la exten- 3rd workshop on Mobile video delivery. ACM, sión de la aplicación desarrollada con el fin de entregar 2010. p. 27-32. al usuario información en tiempo real de las conexio- [Cha16] P. Charonyktakis, et al. On User-Centric nes establecidas por cada una de las aplicaciones ins- Modular QoE Prediction for VoIP Based taladas. Para esto, es necesario agrupar las conexiones on Machine-Learning Algorithms. IEEE pertenecientes a una misma aplicación y calcular datos Transactions on mobile computing 15, no. 6, representativos de la calidad de servicio obtenida por p. 1443-1456, 2016. dicha aplicación, con lo que sería posible darle a los usuarios una herramienta útil para conocer la calidad [Jia02] H. Jiang, et al. Passive estimation of TCP del Internet recibido. round-trip times. ACM SIGCOMM Compu- ter Communication Review, 2002, vol. 32, no Referencias 3, p. 75-88. [Sub17] Subsecretaría de Telecomunicaciones. Pene- [Jac92] V. Jacobson , R. Braden and D. Borman. tración de Internet marca alza del 25 % y TCP Extensions for High Performance, RFC llega a los 16,7 millones de accesos. Online 1323. RFC Editor, 1992. de http://www.subtel.gob.cl/penetracion- de-internet-marca-alza-del-25-y-llega-a- [Bus13] J. Bustos-Jiménez, et al. How adkintunmo- los-167-millones-de-accesos, September, bile measured the world. Proceedings of the 2017 2013 ACM conference on Pervasive and ubi- quitous computing adjunct publication. ACM, [Agg14] V. Aggarwal, et al. Prometheus: Toward 2013. p. 1457-1462. quality-of-experience estimation for mobile apps from passive network measurements. Proceedings of the 15th Workshop on Mobile Computing Systems and Applications. ACM, 2014. p. 18.