Honestly I've had a shitload of problems already running Counter-Strike (1.6) lagfree. Important detail is that I'm trying to play wireless.
On XP, there was the Wireless Zero Configuration Service that was causing lagspikes (if you're on XP and having lagspikes, check that link :) ).
Now that I am on Windows 7, I'm not sure what to look for. I've done a clean OS install, updated my video card drivers, wlan drivers, but to no avail.

When enabling "net_graph 1" in the Counter-Strike console, I get the following result. The left side is during normal gameplay (a straight green line), and on the right there's a bouncy, interrupted line.

I've set my cvars to:

cl_updaterate 101
cl_cmdrate 101
rate 20000
max_fps 101

These are the vars I like, I'm just telling them for information.

I've taken the following steps in the hope to reduce the lagproblems,
I hope something of this will work for you:

1. Disabling MMCSS

Multiple forums stated that the lagspikes could be caused by the Multimedia Class Sheduler service.
Run regedit and remove in the entry DependOnService the line that says "MMCSS".


You will have to reboot after this. But try the rest of the proposed fixes first to save some time.

2. Disable Network Throttling

Because multimedia programs require more resources, the Windows networking stack implements a throttling mechanism to restrict the processing of non-multimedia network traffic to 10 packets per millisecond.

This implies that we should set the rate a bit higher to allow more packets. This seems a bit irrelevant, but I did it anyway.
Modify the following key in your registry, set NetworkThrottlingIndex to FFFFFFFF (hex) or 4294967295 (dec):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile

(thanks to stranger for pointing out that it had to be FFFFFFFF instead of FFFFFF)

3. Nagle's algorithm

Beyond the obvious settings in Windows or on your router, here’s a list of tweaks that may help quite a bit. It involves disabling Nagle’s algorithm, also commonly known as TCP no delay, which is basically an optimization of network traffic that tries to reduce overall packet volume but can cause extra latency in the connection. This should work on Windows 7 or Vista, though the same principle can probably applied to other operating systems as well.

Go to the registry key for your network interface card, it's one of the {XXXX-XXXX-XXXX-XXXX}. Look for one that has 192.168.x.x in it.


Add a new DWORD 32-bit value here, name it TcpAckFrequency, then set it to 1. Do the same for TCPNoDelay.
This step would require a reboot also. (This is why you shouldn't have rebooted earlier lol.

4. Disable IPv6

In the Network and Sharing Center, change the adapter settings of the connection you're using (Properties).
On the Networking tab, remove the tick from the IPv6 box. If there's no difference, you can always tick it again.