Wifi Latency


Exophase

Nothing good will ever come of Exophase.
Joined
Sep 21, 2006
Messages
10,307
Age
40
Location
Cleveland OH
I could just wait until I have my Pandora (currently shipping) to ask this, but I figure someone could easily find out and I really want to know immediately.

What kind of latency does WiFi typically add? I'm sure this is dependent on the router, but probably not terribly. Could someone post some reports of pinging their router, or perhaps pinging google or something vs. doing it on a wired connection elsewhere on the same subnet?

I'm a little concerned because I hear it's super bad on iPhone, and was super bad on a Freerunner I tried it on today. Very erratic, going from a few dozen to several hundred ms. But I also heard that if you increase bandwidth activity you'll end up driving it back down. So it sounds like power saving and pulling it out of a lower power mode.

So could someone try this for me?
 
Here´s a ping to my router and one to google from my pandora. Will go find a wire now...
dave-openpandora:~$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=518 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=54.8 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=255 time=7.72 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=255 time=53.4 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=255 time=23.6 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=255 time=53.5 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=255 time=7.69 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=255 time=54.5 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=255 time=7.75 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=255 time=156 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=255 time=54.8 ms
64 bytes from 192.168.0.1: icmp_seq=14 ttl=255 time=7.75 ms
64 bytes from 192.168.0.1: icmp_seq=15 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=16 ttl=255 time=101 ms
64 bytes from 192.168.0.1: icmp_seq=17 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=18 ttl=255 time=133 ms
64 bytes from 192.168.0.1: icmp_seq=19 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=20 ttl=255 time=39.2 ms
64 bytes from 192.168.0.1: icmp_seq=21 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=22 ttl=255 time=54.8 ms
64 bytes from 192.168.0.1: icmp_seq=23 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=24 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=25 ttl=255 time=54.5 ms
64 bytes from 192.168.0.1: icmp_seq=26 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=27 ttl=255 time=54.8 ms
64 bytes from 192.168.0.1: icmp_seq=28 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=29 ttl=255 time=70.4 ms
64 bytes from 192.168.0.1: icmp_seq=30 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=31 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=32 ttl=255 time=54.7 ms
64 bytes from 192.168.0.1: icmp_seq=33 ttl=255 time=54.6 ms
64 bytes from 192.168.0.1: icmp_seq=34 ttl=255 time=54.6 ms
^C
--- 192.168.0.1 ping statistics ---
34 packets transmitted, 34 received, 0% packet loss, time 33417ms
rtt min/avg/max/mdev = 7.690/68.524/518.769/83.646 ms

dave-openpandora:~$ ping www.google.com
PING www-tmmdi.l.google.com (66.102.9.99) 56(84) bytes of data.
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=1 ttl=55 time=49.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=2 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=3 ttl=55 time=78.0 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=4 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=5 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=6 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=7 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=8 ttl=55 time=86.1 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=9 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=10 ttl=55 time=133 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=11 ttl=55 time=70.2 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=12 ttl=55 time=78.0 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=13 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=14 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=15 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=16 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=17 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=18 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=19 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=20 ttl=55 time=78.1 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=21 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=22 ttl=55 time=101 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=23 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=24 ttl=55 time=93.6 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=25 ttl=55 time=80.4 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=26 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=27 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=28 ttl=55 time=250 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=29 ttl=55 time=164 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=30 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=31 ttl=55 time=93.6 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=32 ttl=55 time=70.2 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=33 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=34 ttl=55 time=85.9 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=35 ttl=55 time=78.4 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=36 ttl=55 time=85.8 ms
64 bytes from lm-in-f99.1e100.net (66.102.9.99): icmp_seq=37 ttl=55 time=86.0 ms
^C
--- www-tmmdi.l.google.com ping statistics ---
37 packets transmitted, 37 received, 0% packet loss, time 36413ms
rtt min/avg/max/mdev = 49.957/91.800/250.000/31.398 ms
dave-openpandora:~$

Edit - and the same thing from my macbook on a wired connection:
localhost:Downloads dave$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.695 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.797 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.896 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.863 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=255 time=0.856 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=255 time=0.872 ms
64 bytes from 192.168.0.1: icmp_seq=6 ttl=255 time=0.884 ms
64 bytes from 192.168.0.1: icmp_seq=7 ttl=255 time=0.880 ms
64 bytes from 192.168.0.1: icmp_seq=8 ttl=255 time=0.889 ms
64 bytes from 192.168.0.1: icmp_seq=9 ttl=255 time=0.867 ms
64 bytes from 192.168.0.1: icmp_seq=10 ttl=255 time=0.893 ms
64 bytes from 192.168.0.1: icmp_seq=11 ttl=255 time=0.882 ms
64 bytes from 192.168.0.1: icmp_seq=12 ttl=255 time=0.893 ms
64 bytes from 192.168.0.1: icmp_seq=13 ttl=255 time=0.759 ms
64 bytes from 192.168.0.1: icmp_seq=14 ttl=255 time=0.915 ms
64 bytes from 192.168.0.1: icmp_seq=15 ttl=255 time=1.192 ms
64 bytes from 192.168.0.1: icmp_seq=16 ttl=255 time=0.905 ms
64 bytes from 192.168.0.1: icmp_seq=17 ttl=255 time=0.875 ms
64 bytes from 192.168.0.1: icmp_seq=18 ttl=255 time=0.868 ms
64 bytes from 192.168.0.1: icmp_seq=19 ttl=255 time=0.866 ms
64 bytes from 192.168.0.1: icmp_seq=20 ttl=255 time=0.864 ms
64 bytes from 192.168.0.1: icmp_seq=21 ttl=255 time=0.852 ms
64 bytes from 192.168.0.1: icmp_seq=22 ttl=255 time=0.854 ms
64 bytes from 192.168.0.1: icmp_seq=23 ttl=255 time=0.885 ms
64 bytes from 192.168.0.1: icmp_seq=24 ttl=255 time=1.059 ms
64 bytes from 192.168.0.1: icmp_seq=25 ttl=255 time=0.893 ms
64 bytes from 192.168.0.1: icmp_seq=26 ttl=255 time=0.951 ms
64 bytes from 192.168.0.1: icmp_seq=27 ttl=255 time=0.888 ms
^C
--- 192.168.0.1 ping statistics ---
28 packets transmitted, 28 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.695/0.885/1.192/0.084 ms
localhost:Downloads dave$ ping www.google.com
PING www-tmmdi.l.google.com (66.102.9.105): 56 data bytes
64 bytes from 66.102.9.105: icmp_seq=0 ttl=55 time=31.356 ms
64 bytes from 66.102.9.105: icmp_seq=1 ttl=55 time=30.781 ms
64 bytes from 66.102.9.105: icmp_seq=2 ttl=55 time=31.209 ms
64 bytes from 66.102.9.105: icmp_seq=3 ttl=55 time=77.146 ms
64 bytes from 66.102.9.105: icmp_seq=4 ttl=55 time=34.121 ms
64 bytes from 66.102.9.105: icmp_seq=5 ttl=55 time=31.151 ms
64 bytes from 66.102.9.105: icmp_seq=6 ttl=55 time=30.772 ms
64 bytes from 66.102.9.105: icmp_seq=7 ttl=55 time=31.645 ms
64 bytes from 66.102.9.105: icmp_seq=8 ttl=55 time=31.014 ms
64 bytes from 66.102.9.105: icmp_seq=9 ttl=55 time=31.299 ms
64 bytes from 66.102.9.105: icmp_seq=10 ttl=55 time=31.767 ms
64 bytes from 66.102.9.105: icmp_seq=11 ttl=55 time=57.399 ms
64 bytes from 66.102.9.105: icmp_seq=12 ttl=55 time=31.027 ms
64 bytes from 66.102.9.105: icmp_seq=13 ttl=55 time=31.066 ms
64 bytes from 66.102.9.105: icmp_seq=14 ttl=55 time=31.266 ms
64 bytes from 66.102.9.105: icmp_seq=15 ttl=55 time=31.383 ms
64 bytes from 66.102.9.105: icmp_seq=16 ttl=55 time=31.544 ms
64 bytes from 66.102.9.105: icmp_seq=17 ttl=55 time=31.417 ms
64 bytes from 66.102.9.105: icmp_seq=18 ttl=55 time=43.861 ms
64 bytes from 66.102.9.105: icmp_seq=19 ttl=55 time=73.759 ms
64 bytes from 66.102.9.105: icmp_seq=20 ttl=55 time=31.194 ms
64 bytes from 66.102.9.105: icmp_seq=21 ttl=55 time=31.078 ms
64 bytes from 66.102.9.105: icmp_seq=22 ttl=55 time=31.199 ms
64 bytes from 66.102.9.105: icmp_seq=23 ttl=55 time=31.771 ms
64 bytes from 66.102.9.105: icmp_seq=24 ttl=55 time=30.911 ms
64 bytes from 66.102.9.105: icmp_seq=25 ttl=55 time=30.979 ms
64 bytes from 66.102.9.105: icmp_seq=26 ttl=55 time=31.173 ms
64 bytes from 66.102.9.105: icmp_seq=27 ttl=55 time=41.495 ms
^C
--- www-tmmdi.l.google.com ping statistics ---
28 packets transmitted, 28 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 30.772/36.242/77.146/12.208 ms
 
I really can't comment for the Pandora, but I believe the reason a lot of mobile devices got quite a lot of latency is because of power saving.

I guess did a quick test on my n800 and ping were between 11ms and 117ms while nothing running on it and between 2ms and 88ms while download a video on youtube. Ping were fluctuating a lot.

Ok... I checked the wifi setting and I got 3 setting for power saving: on / on - intermediate / off.
With power saving set to off, I've got ping between 3ms and 5ms (ok the first ping was 49ms but then very stable)

I guess this can be a real concern for Online gaming or some other application (VNC, using a Pandora as a mouse control...). Maybe you should be able to turn power saving on and off easily (it should probably be on by default though)

> ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=117 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=11.7 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=35.4 ms
64 bytes from 192.168.1.20: icmp_seq=4 ttl=64 time=57.3 ms
64 bytes from 192.168.1.20: icmp_seq=5 ttl=64 time=80.1 ms
64 bytes from 192.168.1.20: icmp_seq=6 ttl=64 time=102 ms
64 bytes from 192.168.1.20: icmp_seq=7 ttl=64 time=22.5 ms
64 bytes from 192.168.1.20: icmp_seq=8 ttl=64 time=44.9 ms
64 bytes from 192.168.1.20: icmp_seq=9 ttl=64 time=67.1 ms
64 bytes from 192.168.1.20: icmp_seq=10 ttl=64 time=90.7 ms
64 bytes from 192.168.1.20: icmp_seq=11 ttl=64 time=10.8 ms
64 bytes from 192.168.1.20: icmp_seq=12 ttl=64 time=32.8 ms
64 bytes from 192.168.1.20: icmp_seq=13 ttl=64 time=59.7 ms
^C
--- 192.168.1.20 ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12017ms
rtt min/avg/max/mdev = 10.804/56.466/117.845/32.999 ms


> ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=52.0 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=2.32 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=86.4 ms
64 bytes from 192.168.1.20: icmp_seq=4 ttl=64 time=6.88 ms
64 bytes from 192.168.1.20: icmp_seq=5 ttl=64 time=28.6 ms
64 bytes from 192.168.1.20: icmp_seq=6 ttl=64 time=2.89 ms
64 bytes from 192.168.1.20: icmp_seq=7 ttl=64 time=2.17 ms
64 bytes from 192.168.1.20: icmp_seq=8 ttl=64 time=66.1 ms
64 bytes from 192.168.1.20: icmp_seq=9 ttl=64 time=31.7 ms
64 bytes from 192.168.1.20: icmp_seq=10 ttl=64 time=2.31 ms
64 bytes from 192.168.1.20: icmp_seq=11 ttl=64 time=65.8 ms
64 bytes from 192.168.1.20: icmp_seq=12 ttl=64 time=88.1 ms
^C
--- 192.168.1.20 ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11016ms
rtt min/avg/max/mdev = 2.177/36.305/88.115/32.595 ms


> ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=49.0 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=4.02 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=3.74 ms
64 bytes from 192.168.1.20: icmp_seq=4 ttl=64 time=3.64 ms
64 bytes from 192.168.1.20: icmp_seq=5 ttl=64 time=3.53 ms
64 bytes from 192.168.1.20: icmp_seq=6 ttl=64 time=3.82 ms
64 bytes from 192.168.1.20: icmp_seq=7 ttl=64 time=3.78 ms
64 bytes from 192.168.1.20: icmp_seq=8 ttl=64 time=3.85 ms
64 bytes from 192.168.1.20: icmp_seq=9 ttl=64 time=5.54 ms
64 bytes from 192.168.1.20: icmp_seq=10 ttl=64 time=3.73 ms
64 bytes from 192.168.1.20: icmp_seq=11 ttl=64 time=4.98 ms
64 bytes from 192.168.1.20: icmp_seq=12 ttl=64 time=3.71 ms
64 bytes from 192.168.1.20: icmp_seq=13 ttl=64 time=4.12 ms
^C
--- 192.168.1.20 ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12018ms
rtt min/avg/max/mdev = 3.530/7.506/49.063/12.009 ms
 
pinging my wireless router gets me an average of 70ms and pinging google gets me an average of 133ms from the pandora.

from my laptop using wifi it's closer to 65ms for google and 6ms for router.

I'm slightly disappointed by this, but it seems to load webpages at a semi-decent speed, but would like to see performance improved definitely...
 
2 to 3 ms to ping my router from my laptop using 802.11g.
 
Okay, it looks like this is a serious problem, like I was worried about. Can anyone find a way to turn off power savings for latency sensitive operations?
 
Pinging from my N900 to my router that's in the same room, seems to consistently be about 28-40ms, never went outside that boundary after about 50 pings. This is with all the wifi powersaving stuff enabled.
 
Instructions for disabling power saving on the N900: http://talk.maemo.org/showthread.php?t=45600
"sudo iwconfig wlan0 power off" sounds worth testing.
 
Just tried pinging from my Pandora.

To my router: average 8.01ms
To google.co.uk: 31.04ms.

Loving my Pandora, shame the wireless keeps loosing it's connections, longest I've had a connection is about 10 minutes.
 
Ahh, Paeryn you got yourself a pandora, nice ;)

Can only imagine what kind of hardware accelerated goodness you have planned :D

P.S. Paeryn: have you installed the hotfixes, or are you running the base firmware... I'm kinda jealous of your ping times...
 
To disable power saving, run from a terminal:
Code:
sudo iwconfig wlan0 power off
Pings should go down to 10ms (at least they do so for me), but also system power usage almost doubles.

Hi paeryn, we are badly in need for some SDL tuning (if you are interested of course) :)
 
paeryn said:
Just tried pinging from my Pandora.

To my router: average 8.01ms
To google.co.uk: 31.04ms.

Loving my Pandora, shame the wireless keeps loosing it's connections, longest I've had a connection is about 10 minutes.
These are good values, especialy for a mobile Device.
My PC has a PING of around 60ms, I use WLan through 3 walls to connect my PC with my Fritz!Box.
 
Last edited by a moderator:
To Hooka: I've got hotfix 2 installed, don't know what it was like before because I installed it about half an hour after I first opened Pandora's box.
The slowest ping I had to my router was 13ms. The router was about 14" from the pandora, and the router is a Buffalo 300n with DD-WRT firmware.

notaz said:
Hi paeryn, we are badly in need for some SDL tuning (if you are interested of course) :)

I'll look into it - I think I've installed all the stuff for cross compiling to my linux system. Just want to get the source to the firmware (I know it was mentioned somewhere but I can't find it at the mo).
 
Last edited by a moderator:
paeryn said:
I'll look into it - I think I've installed all the stuff for cross compiling to my linux system. Just want to get the source to the firmware (I know it was mentioned somewhere but I can't find it at the mo).
You'll need to set up OE for this (alternatively you can get dev packages from http://www.angstrom-distribution.org/feeds/ and us csl toolchain from http://www.codesourcery.com/sgpp/lite/arm ).

Here is DjWillis' blog post about OE:
http://blogs.distant-earth.com/wp/?p=90

EDIT: Take a look here too:
http://www.gp32x.de/board/index.php?/topic/52995-pandora-open-embedded-tree/page__gopid__871699&#entry871699
 
Last edited by a moderator:
Back
Top