Wireless network ping spikes
I recently purchased a Belkin F5D7000 PCI wireless network card. I’ve installed 3 of these in various machines over the past few months and had little trouble with them. The one I used in my machine would have to break this of course and from the start has given me problems. I’m 99% sure that I’ve got a working fix or at least can shed some light in the direction of fixing ping spikes.
The other three cards I bought looked similar and had a sticker on them stating v3000uk. The one I bought for my machine looked different and had v6000 on its sticker. My first mistake was trying to use the same drivers as the other cards. If you search the Belkin support site for F5D7000 you’ll see a list of drivers. The ones for the v3000 are labelled v3 and the ones for the card labelled v6000 are appropriately named v6000. The earlier models seem to use the Ralink 25xx chip while the v6000 card uses the Ralink 61xx. I did a bit of googling on this and it seems that there are at least two different versions of the v6000 and each uses a different chip. So after feeling like a dumb-ass about using the wrong drivers I installed the correct ones. That went pretty smoothly and I could connect to my wireless router just fine.
Everything should be ok right? Well nope. For general browsing its ok but whenever I try to join a game lobby I would get dropped. It was most noticeable with Dawn of War. I could get into the lobby and sometimes into a specific games waiting room but sure as ever I would get taken back to the games startup screen with a message about losing my connection to the lobby. As you can imagine, this is kinda irritating.
After a day of messing about with every version of the driver I could find including the base one from Ralink directly I went back to the v6000 one off the Belkin site. No other driver would work. The ones I could get to install wouldn’t hold a connection to the router rendering them dud.
The next step was to check my actual connection to the router. Funnily enough this is what Dawn of War recommends when it drops me but I just ignored that message! The test is pretty simple. Join the network and then open a command prompt. Ping the router continuously and see what happens:
ping -t 192.168.122.1
ctrl-c to stop it pinging and see the stats. What I was seeing was about 30 lines with values of 3-15ms and then a jump to 1000+ms or a request time out. Then it would return to 3-15ms. This seemed to be quite regular i.e. between every 30-40 seconds it would spike and then settle back down.
I thought it might be the Belkin network utility scanning for networks but that was all turned off as default. Then I thought that one of my services might be spooking it out. There didn’t seem to be anything running that shouldn’t so I discounted that idea. Then it was time to start researching all my network driver settings. Nothing seemed to be set to anything that it shouldn’t be. My original hunch on this was that there was some sort of RTS or frame issue. Jiggling the values didn’t seem to make any noticeable difference. At this point I shook my fist at the monitor and said I’d had enough. End of testing for that day.
Today with fresh eyes I stepped back and decided that I’d been focusing on the network side of things too much. What if the problem wasn’t actually network related? Then I realised the card is a PCI and all the cogs in my brain started ticking. What if it was actually a PCI timer issue? On some of my old setups I had to tweak the timing but I’d never had the need to do that with this rig. I grabbed a copy of the PCI Latency Tool (google it) which lets you view and set the timings for each of your devices.
I’m using an Abit AV8 3rd-Eye motherboard and in the bios I have a PCI Latency option. That’s set to 32. I tried 64 but over the course of my testing I decided that was making things worse so I went back to 32.
My testing phase again relied on the ping command I tapped in further up this page. I’d have the console window open on the right hand side. In there I could just press the UP arrow to reuse the last typed line so it was really quick to keep starting and stopping the ping test. Testing went like this, with the latency tool and command prompt open at all times:
- Change a setting in the latency tool
- Apply changes
- Run Ping
- Keep mi eyes on the results
- Ctrl-C out either when it seems to be rockin or when it starts spiking consistently
Sure enough as I monged about with the latency values my ping spike was being affected. Sometimes the ping would be 15+ all most constantly along with frequent time outs. Sometimes I could get it to float around 3ms and only spike every 60 seconds or so. It took a few hours of trying different combinations but eventually I’m now sitting on a ping that varies between 3-10ms with the occasional spike to about 125ms. Those are quite infrequent spikes though and are still waaay better than the 1000+ from earlier.
The general advice I followed from numerous online sources are to set everything to 000 or 032. As it stood with the Bios set to 32 almost everything in the latency tool showed 0 as default anyhow. That meant I left most things and only changed 3 values.
- The first was for my XFX Geforce 6600GT. 000 as default. I set that to 128.
- The second was the VIA Standard Host Bridge. That was set to 008 as default. I dropped this to 000.
- Finally it was the Belkin F5D7000. This was 000 as default which I switched to 016.
Most of the sources I read said to use increments of 16 which is what I used. I dont get why the Host bridge is set to 8 if that’s the case though.
On a side note; one thing I read that seemed really promising early on was about updating the driver for my AMD 64 3500+ processor. The person who suggested this reported a similar ping spiking problem on a forum along with this being the solution for them. I got the latest driver off the AMD site and updated my system. I was really excited to see the results after the reboot. Unfortunately after testing it didn’t make a difference for me.
So it seems the spike ping wasnt down to the network itself but the PCI timing. Using the PCI Latency Tool allowed me to alter my settings to achieve a better overall ping result.
It seems I was premature in settling with the latency values I stated before, even with the much lower ping spike it still appears to be enough to make me a lagger in Dawn of War. I’m going to try one of the v3000 cards in my machine either later today or later in the week and see once and for all whether its the card or my machine. If I run the same test ping from one of the machines with the v3000 card it gives me a constant 2ms with absolutely no spikes which is exactly what I’m after achieving on mine.
TaDa! Fixed 🙂
So after yet another day of approaching the problem with fresh eyes the mystery of the frequent ping spike has been solved. I started by going back over my earlier ideas and got a bit fixated on one in particular. This was probably one of my first ideas to try out but for some reason I decided it wasnt the problem. So what was it? Well my assumption was that the Belkin software was scanning for networks and that would be causing the ping to spike as the card would be busy scanning for x amount of time. I thought along those lines since the ping spike seemed to happen roughly every 30 seconds. Today I went back and tinkered around to see what I could do about it.
The first thing was to switch over to Windows Wireless Zero Configuration i.e. Windows built in wireless network utility. Sure enough after a quick restart the ping spike shifted to between 45-70 seconds. That got my hopes up that I was on the right track. My next step was to try the Ralink drivers again.
I made an interesting discovery with these drivers. If you uninstall whatever drivers your currently using i.e. Belkins, restart and then try a fresh install of the Ralink ones then it wont work. This is what I did last time I tried it. Today though I tried installing the Ralink drivers over the Belkin ones i.e. I didnt uninstall the Belkin stuff at all. Presto, first time round it detected the card (it refused to do this last time), installed the Ralink drivers in place of the Belkin ones and was up n away. Well after a restart it was working anyhow :>
So then I saw the ping spike settle at a constant 45 second interval. URGH! I wasnt seeing the end of this one so easily. My next port of call was to check out the registry and see if I could find any interesting options in there under Ralink or Belkin. I found a few entries with crappily description names that had either 60 or 100 as their values. I had a quick tinker with one but a few values n restarts later nothing had changed. I reverted back to the proper Belkin driver.
Thats when the strangest thing happened. The network card authenticated with the network and said it was connected but the Belkin software said it was disconnected and couldnt even see the card itself. I tried a quick visit to google and it worked. So I started a ping test off again. Sure enough, zero spikes.
Restarted the system to see if it kept working as I hoped. Nope, back to the old spikes. Then I thought “hmmm what if it connected to the network and then the Belkin utility died but it had already connected so it didnt matter”. So I tried that out and sure enough its a winner.
The simple fix is let the system boot up, let the Belkin software do its thing and connect you to the network. Then once connected, shutdown the utility. I do this by right clicking the taskbar icon and choosing exit. You should remain connected to the network and now if you do a ping you wont see the spikes anymore.
The one thing I’m a worried about is when the network drops I’m not sure it will reconnect without the software running. Theres an option on the device manager properties panel for the card that is labeled “Auto Reconnect Mode” and I have that set to enabled. I noticed earlier on that it doesnt seem to get changed regardless of what you do with the software i.e. turning auto-connect off in the Belkin utility doesnt change this driver property, you have to manually go there and toggle it. Anyhow, I’m hoping, really frackin hoping, that this will enable the card to reconnect itself without needing the util up n running.
I’ll post back later in the week to let you know if it does what I’m hoping or whether its going to be a constant battle of loading/unloading the software every few hours.
I usually don’t reply when I read about how to fix something..but I play this internet game called ARC from Sierra. You fixed my ping..you are the bomb…you’re amazing..I have dreamt of this day for a long time..wow..if I were rich..I’d send you $1 mil
OMG u are such a life saver. I cant believe u found a fix for this u have no idea how many things iv tryed to get my ping spikes to stop :-))))))
U have another Fan here.
I second that … you can have my first born!!! 🙂