0 votos

Mejorando la velocidad del wifi local

Me gustaría usar un Hotspot Wi-Fi local sin acceso a Internet para conectarme a varios teléfonos Android. El problema es que, aunque es una red local con sólo unos pocos teléfonos conectados y sin conexión a Internet, los teléfonos están a unos pocos centímetros del hotspot, sin embargo la comunicación parece lenta/no fiable.

Aquí hay un par de resultados de ping de una computadora a los IPs del teléfono:

PING 192.168.0.100 (192.168.0.100): 56 data bytes
64 bytes from 192.168.0.100: icmp_seq=0 ttl=64 time=393.810 ms
64 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=158.493 ms
64 bytes from 192.168.0.100: icmp_seq=2 ttl=64 time=181.057 ms
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
64 bytes from 192.168.0.100: icmp_seq=4 ttl=64 time=1006.483 ms
64 bytes from 192.168.0.100: icmp_seq=5 ttl=64 time=37.513 ms
64 bytes from 192.168.0.100: icmp_seq=6 ttl=64 time=64.257 ms
64 bytes from 192.168.0.100: icmp_seq=7 ttl=64 time=93.225 ms
64 bytes from 192.168.0.100: icmp_seq=8 ttl=64 time=111.115 ms
64 bytes from 192.168.0.100: icmp_seq=9 ttl=64 time=139.826 ms
^C
--- 192.168.0.100 ping statistics ---
10 packets transmitted, 9 packets received, 10.0% packet loss
round-trip min/avg/max/stddev = 37.513/242.864/1006.483/286.991 ms
PING 192.168.0.101 (192.168.0.101): 56 data bytes
64 bytes from 192.168.0.101: icmp_seq=0 ttl=64 time=385.699 ms
64 bytes from 192.168.0.101: icmp_seq=1 ttl=64 time=203.539 ms
64 bytes from 192.168.0.101: icmp_seq=2 ttl=64 time=151.443 ms
64 bytes from 192.168.0.101: icmp_seq=3 ttl=64 time=232.699 ms
64 bytes from 192.168.0.101: icmp_seq=4 ttl=64 time=219.184 ms
64 bytes from 192.168.0.101: icmp_seq=5 ttl=64 time=262.831 ms
64 bytes from 192.168.0.101: icmp_seq=6 ttl=64 time=249.220 ms
64 bytes from 192.168.0.101: icmp_seq=7 ttl=64 time=266.070 ms
64 bytes from 192.168.0.101: icmp_seq=8 ttl=64 time=471.806 ms
64 bytes from 192.168.0.101: icmp_seq=9 ttl=64 time=114.990 ms
^C
--- 192.168.0.101 ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 114.990/255.748/471.806/99.526 ms
PING 192.168.0.103 (192.168.0.103): 56 data bytes
64 bytes from 192.168.0.103: icmp_seq=0 ttl=64 time=319.546 ms
64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=137.394 ms
64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=160.845 ms
64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=184.010 ms
64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=206.503 ms
64 bytes from 192.168.0.103: icmp_seq=5 ttl=64 time=24.546 ms
64 bytes from 192.168.0.103: icmp_seq=6 ttl=64 time=47.437 ms
64 bytes from 192.168.0.103: icmp_seq=7 ttl=64 time=69.973 ms
64 bytes from 192.168.0.103: icmp_seq=8 ttl=64 time=93.257 ms
64 bytes from 192.168.0.103: icmp_seq=9 ttl=64 time=730.538 ms
^C
--- 192.168.0.103 ping statistics ---
11 packets transmitted, 10 packets received, 9.1% packet loss
round-trip min/avg/max/stddev = 24.546/197.405/730.538/195.910 ms

He usado un macbook para hacer ping con un D-Link DIR-505 configurado para Wi-Fi Hotspot a los teléfonos Xperia con el sistema operativo Android 4.1.2.

Creo que las respuestas al ping son lentas e inconsistentes. ¿Alguien más ha experimentado esto? ¿Por qué sucede esto y cómo puede ser arreglado/mejorado?

Actualización basada en la entrada de Sergey:

Hacer ping a la computadora desde el teléfono no se ve muy bien: ping android 1ping android 2

Y aquí está la salida usando adb shell :

shell@android:/ $ ping -c 10 192.168.1.18
PING 192.168.1.18 (192.168.1.18) 56(84) bytes of data.
64 bytes from 192.168.1.18: icmp_seq=1 ttl=64 time=1012 ms
64 bytes from 192.168.1.18: icmp_seq=2 ttl=64 time=8.21 ms
64 bytes from 192.168.1.18: icmp_seq=3 ttl=64 time=184 ms
64 bytes from 192.168.1.18: icmp_seq=4 ttl=64 time=714 ms
64 bytes from 192.168.1.18: icmp_seq=5 ttl=64 time=635 ms
64 bytes from 192.168.1.18: icmp_seq=6 ttl=64 time=556 ms
64 bytes from 192.168.1.18: icmp_seq=7 ttl=64 time=171 ms
64 bytes from 192.168.1.18: icmp_seq=8 ttl=64 time=705 ms
64 bytes from 192.168.1.18: icmp_seq=9 ttl=64 time=622 ms
64 bytes from 192.168.1.18: icmp_seq=10 ttl=64 time=238 ms

--- 192.168.1.18 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9015ms
rtt min/avg/max/mdev = 8.210/484.855/1012.056/300.283 ms, pipe 2

Esto es un poco preocupante. Además, el escenario de ahorro de energía suena plausible, pero no estoy seguro de si todavía se aplica en mi caso, ya que tengo el Mantente despierto. y las pruebas anteriores se hicieron con el cable USB conectado y alimentando el dispositivo.

3voto

Sergey Vlasov Puntos 1419

Este comportamiento puede ser causado por las características de la administración de la energía, y no indica un problema. Intente instalar Emulador terminal de Androids en el teléfono y haciendo ping al router o a un PC normal (no a otro teléfono) ejecutando ping -c 10 <address> desde allí. Deberías notar que los resultados del ping en esta dirección son mejores.

(Obsérvese que sin la -c <n> que tendrá que averiguar cómo enviar Ctrl+C a la terminal para detener ping es posible utilizar un botón de volumen como Ctrl si su teclado no proporciona tal tecla).

La diferencia entre hacer ping a un teléfono desde otro dispositivo y enviar ping desde el propio teléfono es que cuando el propio teléfono envía solicitudes de ping, está activo y puede recibir la respuesta de ping sin ningún retraso significativo. Sin embargo, cuando se intenta hacer ping al teléfono desde otro dispositivo, lo más probable es que el teléfono esté en algún estado de baja potencia, y despertarlo puede llevar un tiempo considerable. El Wi-Fi también tiene algunas funciones de ahorro de energía (por ejemplo, el punto de acceso puede almacenar en un búfer paquetes dirigidos a un dispositivo móvil y transmitirlos sólo de acuerdo con un programa específico, de modo que el dispositivo móvil pueda permanecer en un estado de baja energía entre estos sondeos programados).

Debido a todas estas funciones de ahorro de energía, no puedes sacar ninguna conclusión sobre la calidad del enlace Wi-Fi sólo a partir de los resultados de ping que muestres, a menos que desactives cualquier ahorro de energía durante la prueba (ver más abajo un ejemplo de mis pruebas), o al menos que realices la prueba desde el lado del teléfono.

Esto es lo que veo cuando hago ping a mi Samsung Galaxy W (GT-I8150) usando la ROM no oficial CyanogenMod 9, cuando el teléfono está inactivo con la pantalla apagada:

PING 192.168.43.114 (192.168.43.114) 56(84) bytes of data.
64 bytes from 192.168.43.114: icmp_req=1 ttl=64 time=690 ms
64 bytes from 192.168.43.114: icmp_req=2 ttl=64 time=418 ms
64 bytes from 192.168.43.114: icmp_req=3 ttl=64 time=329 ms
64 bytes from 192.168.43.114: icmp_req=4 ttl=64 time=54.7 ms
64 bytes from 192.168.43.114: icmp_req=5 ttl=64 time=579 ms
64 bytes from 192.168.43.114: icmp_req=6 ttl=64 time=306 ms
64 bytes from 192.168.43.114: icmp_req=7 ttl=64 time=217 ms
64 bytes from 192.168.43.114: icmp_req=8 ttl=64 time=557 ms
64 bytes from 192.168.43.114: icmp_req=9 ttl=64 time=467 ms
64 bytes from 192.168.43.114: icmp_req=10 ttl=64 time=195 ms

--- 192.168.43.114 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9006ms
rtt min/avg/max/mdev = 54.730/381.686/690.746/187.341 ms

Como puedes ver, los resultados se ven bastante mal. Sin embargo, cuando empiezo Emulador terminal de Androids y seleccionar el comando "Take WifiLock" en él, luego apagar la pantalla de nuevo, obtengo resultados significativamente mejores:

PING 192.168.43.114 (192.168.43.114) 56(84) bytes of data.
64 bytes from 192.168.43.114: icmp_req=1 ttl=64 time=95.5 ms
64 bytes from 192.168.43.114: icmp_req=2 ttl=64 time=2.66 ms
64 bytes from 192.168.43.114: icmp_req=3 ttl=64 time=94.3 ms
64 bytes from 192.168.43.114: icmp_req=4 ttl=64 time=2.62 ms
64 bytes from 192.168.43.114: icmp_req=5 ttl=64 time=88.9 ms
64 bytes from 192.168.43.114: icmp_req=6 ttl=64 time=3.14 ms
64 bytes from 192.168.43.114: icmp_req=7 ttl=64 time=91.9 ms
64 bytes from 192.168.43.114: icmp_req=8 ttl=64 time=5.57 ms
64 bytes from 192.168.43.114: icmp_req=9 ttl=64 time=93.9 ms
64 bytes from 192.168.43.114: icmp_req=10 ttl=64 time=2.62 ms

--- 192.168.43.114 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9010ms
rtt min/avg/max/mdev = 2.622/48.136/95.551/44.845 ms

Y si repito la misma prueba con la pantalla encendida, el resultado del ping es aún mejor:

PING 192.168.43.114 (192.168.43.114) 56(84) bytes of data.
64 bytes from 192.168.43.114: icmp_req=1 ttl=64 time=2.29 ms
64 bytes from 192.168.43.114: icmp_req=2 ttl=64 time=2.21 ms
64 bytes from 192.168.43.114: icmp_req=3 ttl=64 time=8.87 ms
64 bytes from 192.168.43.114: icmp_req=4 ttl=64 time=3.27 ms
64 bytes from 192.168.43.114: icmp_req=5 ttl=64 time=4.01 ms
64 bytes from 192.168.43.114: icmp_req=6 ttl=64 time=2.26 ms
64 bytes from 192.168.43.114: icmp_req=7 ttl=64 time=2.22 ms
64 bytes from 192.168.43.114: icmp_req=8 ttl=64 time=2.13 ms
64 bytes from 192.168.43.114: icmp_req=9 ttl=64 time=2.73 ms
64 bytes from 192.168.43.114: icmp_req=10 ttl=64 time=2.23 ms

--- 192.168.43.114 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9011ms
rtt min/avg/max/mdev = 2.132/3.226/8.878/1.970 ms

(Por alguna razón, liberar el WifiLock e incluso cerrar el emulador de terminal no restaura el comportamiento original, hasta que apague el Wi-Fi, y luego vuelva a encenderlo - probablemente hay un error en alguna parte.)

Corriendo ping del propio teléfono da unos 12 ms de media RTT sin tomar el WifiLock, y 1,95 ms después de tomar el WifiLock - así que incluso cuando se prueba desde el lado del teléfono el efecto del WifiLock es significativo.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X