Android – High ping in LAN from the workstation to Android


I noticed that on my workstation (Windows 7, connected through ethernet cable) I ping between 100-500ms to my Android phone which is also, of course, connected to the same WiFi through wireless.

Strange thing is if I try to ping my workstation from my phone the ping is normal (13-15ms)

This happens as well to other phones (namely iPhones) connected to the same router but doesn't happen to laptops connected always through wireless.

Ping between other devices connected to my router through ethernet cable all ping each other under 1ms.

What could possibly be the cause?

I even tried to boot up a Linux live cd and try to ping my phone and see if it was Windows fault or something but the high ping is still there.

I tried to use another router as well but high ping remains.

Best Answer

Mobile devices with batteries make use of a mechanism called power-save to preserve battery. In your case, your Android phone enters power-save mode by sending a Null packet to the Access Point/Router (AP) with the Power Management bit set. From then on, the Access Point stores all packets destined to your Android phone in a per-station queue and sets the Traffic Indication Map (TIM) field in the beacon packet to indicate that packets destined for your phone have been queued at the AP. The Android phone wakes up from sleep every Listen Interval to receive the beacon frame and when it detects that the TIM field for it has been set, it sends a PS-Poll packet to the AP. In response, the AP sends the first queued packet to the Android phone. The phone receives the queued data frame and if the More Data field in this packet is set, it sends another PS-Poll frame to the AP. The STA continues to send PS-Poll frames to receive all the queued frames and when none are left, it goes back to sleep until the next Listen Interval. In this case, the listen interval for the android seems to be set at 100ms (1 beacon interval) to 500ms (5 beacon intervals). Beacons exit the AP every 100ms by default. Your Android phone is behaving properly and according to the 802.11 standard.

Edit: Here's a link that will help better understand 802.11 power save:

Graphic from:

Related Question