Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Here's what I've done:

  • I wrote a minimal web server (using Qt, but I don't think it's relevant here).
  • I'm running it on a legal Windows 7 32-bit.

The problem:

  • If I make a request with Firefox, IE, Chrome or Safari it takes takes about one second before my server sees that there is a new connection to be accepted.

Clues:

  • Using other clients (wget, own test client that just opens a socket) than Firefox, IE, Chrome, Safari seeing the new connection is matter of milliseconds.
  • I installed Apache and tried the clients mentioned above. Serving the request takes ~50ms as expected.
  • The problem isn't reproducible when running Windows XP (or compiling and running the same code under Linux)
  • The problem seems to present itself only when connecting to localhost. A friend connected over the Internet and serving the connection was a matter of milliseconds.
  • Running the server in different ports has no effect on the 1 second latency

Here's what I've tried without luck:

  • Stopped the Windows Defender service
  • Stopped the Windows Firewall service

Any ideas? Is this some clever 'security feature' in Windows 7? Why isn't Apache affected? Why are only the browsers affected?

share|improve this question

2 Answers 2

up vote 0 down vote accepted

I'm with MidnighToker - is it only when you hit "localhost" or is the delay there via the local IP address as well? If it's only when you aim for 'localhost' check your hosts file for odd entries. Windows Vista and 7 also include a HOSTS entry for IPv6 ("::1 localhost").

Since I've personally seen unused IPv6 connections slow down web browsing connections on Ubuntu in Firefox when it's enabled and not used, and read that others have seem similar in Windows, so that may be something to consider (I haven't personally encountered that problem in either Vista or Win7).

Under Ubuntu Firefox has it's own 'don't use IPv6' setting that fixes the delay without making system-wide network changes; so perhaps Firefox for Windows also has it (dunno, I use IE in Windows):

Here's how to disable it in Firefox, to perhaps at least start testing the theory:

1.Type about:config in the address bar, press Enter.

2.Find network.dns.disableIPv6 in the list.

3.Right-click -> Toggle (you want it set to 'true' to disable)

4.Restart your Mozilla application and try again.

share|improve this answer
    
Looks like you found this possibility on your own while I was typing. Hope it works! :) –  techie007 Dec 30 '09 at 20:03

Rather than connecting to localhost, what happens if you connect to your real (but local) IP address?

eg http://192.168.1.1/ ?

share|improve this answer
    
Yep that was it. Apparently the reason is this: serverfault.com/questions/4689/… –  user30421 Dec 30 '09 at 19:56

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.