=Paper= {{Paper |id=Vol-2178/SSN2018_paper_20 |storemode=property |title=PePa Ping: Android Tool to Take and Predict Periodic Passive Ping Measurements |pdfUrl=https://ceur-ws.org/Vol-2178/SSN2018_paper_20.pdf |volume=Vol-2178 |authors=Diego Madariaga,Gabriela Mendoza |dblpUrl=https://dblp.org/rec/conf/ssn/MadariagaM18 }} ==PePa Ping: Android Tool to Take and Predict Periodic Passive Ping Measurements== https://ceur-ws.org/Vol-2178/SSN2018_paper_20.pdf
             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.