0 votes

Améliorer la vitesse du wifi local

Je voudrais utiliser un point d'accès Wi-Fi local sans accès à Internet pour me connecter à plusieurs téléphones Android. Le problème est que, même s'il s'agit d'un réseau local avec seulement quelques téléphones connectés et aucune connexion Internet, les téléphones sont à quelques centimètres du hotspot, mais la communication semble lente et peu fiable.

Voici quelques résultats de ping depuis un ordinateur vers les IP des téléphones :

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

J'ai utilisé un macbook pour faire un ping avec un D-Link DIR-505 réglé sur Wi-Fi Hotspot vers des téléphones Xperia avec le système d'exploitation Android 4.1.2.

Je pense que les réponses ping sont lentes et incohérentes. Quelqu'un d'autre a-t-il rencontré ce problème ? Pourquoi cela se produit-il et comment cela peut-il être corrigé/amélioré ?

Mise à jour basée sur la contribution de Sergey :

Envoyer un message à l'ordinateur à partir du téléphone n'a pas l'air génial : ping android 1ping android 2

Et voici le résultat en utilisant 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

C'est un peu inquiétant. De plus, le scénario d'économie d'énergie semble plausible, mais je ne suis pas sûr qu'il s'applique dans mon cas, car j'ai l'option Restez éveillé a été allumé et les tests ci-dessus ont été effectués avec le câble usb connecté et l'appareil sous tension.

3voto

Sergey Vlasov Points 2739

Ce comportement peut être causé par des fonctions de gestion de l'alimentation et n'indique pas un problème. Essayez d'installer Émulateur de terminal Android sur le téléphone et envoyer une commande ping au routeur ou à un PC normal (pas un autre téléphone) en exécutant ping -c 10 <address> à partir de là. Vous devriez remarquer que les résultats du ping dans cette direction sont meilleurs.

(Notez que sans le -c <n> vous devrez découvrir comment envoyer Ctrl+C au terminal pour arrêter ping il est possible d'utiliser un bouton de volume comme Ctrl si votre clavier ne fournit pas une telle touche).

La différence entre l'envoi d'une requête ping à un téléphone à partir d'un autre appareil et l'envoi d'une requête ping à partir du téléphone lui-même est que lorsque le téléphone lui-même envoie des requêtes ping, il est actif et peut recevoir la réponse ping sans délai important. Cependant, lorsque vous tentez d'envoyer une requête ping au téléphone depuis un autre appareil, le téléphone est très probablement dans un état de faible puissance, et le réveiller peut prendre un certain temps. Le Wi-Fi dispose également de certaines fonctions d'économie d'énergie (par exemple, le point d'accès peut mettre en mémoire tampon les paquets destinés à un appareil mobile et les transmettre uniquement selon un calendrier précis, de sorte que l'appareil mobile puisse rester dans un état de faible consommation entre ces interrogations programmées).

En raison de toutes ces fonctions d'économie d'énergie, vous ne pouvez pas tirer de conclusion sur la qualité de la liaison Wi-Fi à partir des résultats du ping, à moins de désactiver toute économie d'énergie pendant le test (voir ci-dessous pour un exemple de mes tests), ou au moins effectuer des tests du côté du téléphone.

Voici ce que je vois lorsque j'interroge mon Samsung Galaxy W (GT-I8150) en utilisant la ROM non officielle CyanogenMod 9, lorsque le téléphone est au repos avec l'écran éteint :

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

Comme vous pouvez le voir, les résultats sont plutôt mauvais. Cependant, lorsque je commence Émulateur de terminal Android et sélectionner la commande "Take WifiLock" dans celui-ci, puis éteindre à nouveau l'écran, j'obtiens des résultats nettement meilleurs :

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

Et si je répète le même test avec l'écran allumé, le résultat du ping est encore meilleur :

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

(Pour une raison quelconque, le fait de relâcher le WifiLock et même de fermer l'émulateur de terminal ne rétablit pas le comportement original, jusqu'à ce que je désactive le Wi-Fi, puis le réactive - il y a probablement un bug quelque part).

Running ping à partir du téléphone lui-même donne environ 12 ms de RTT moyen sans prendre le WifiLock, et 1.95 ms après avoir pris le WifiLock - donc même en testant du côté du téléphone l'effet du WifiLock est significatif.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X