Like most Sys Admins, my job includes managing both Linux and Windows machines. This is the start of a two-part series regarding tweaks I have found for networking in each type of system. First up: Windows.
I have labeled my findings based on where you'll find it: either as an operating system feature, or in the device manager of the Ethernet adapter you're using.Driver: Interrupt Coalescing / ModerationDriver: Offloading (IP / TCP / UDP)offload engine for layer 3 or 4 protocols; there is also a "Large Segment Offload" feature on some adapters. These features are meant to reduce CPU overhead by having the network adapter do more of the work: however, a lot of network adapters are sub-par, and there is no harm in having the CPU do these tasks (disabling the offloads) for anything short of a server-grade adapter. The exception would be checksum offloading: that seems to be easily doable by any hardware.2003 & Older: SMB tweakingregistry tweaks that should improve file sharing performance on older Windows systems: they will have little or no impact on newer systems, for they use SMB version 2.XP & Newer: Automatic IPv6 TunnelingGoGoNet Live, I was fortunate to question a Cisco engineer that took credit for having Windows implement automatic tunneling with XP and newer: he believed that providing IPv6 access, "native" or not, would spur application developers to honor API changes and continue to embrace the new protocol. Now that 2010 is almost out: 6to4 has been maligned by Google and Apple for breaking website access; ISATAP can be hard to work with; Teredo tunneling can be hit or miss (Microsoft does host some servers for use); and that desired application uptake has been largely ignored by the likes of Pidgin, Steam, and others. The speaker can be forgiven that his intentions went awry, when quite a few people (Linux and Windows) think the best way to handle IPv6 is to turn it off completely. Fortunately, you don't have to slay the IPv6 beast: its a known fact we'll be living with it starting in 2011, like it or not.
Gigabit adapters in particular implement new algorithms to try to accommodate different forms of network traffic: especially when a good portion of it may not need that kind of speed (think web-facing adapters on 10/100 lines). However, it has been my own experience that Quickbooks can be particularly jumpy with this feature enabled. It goes by several different names (depends on the vendor) but you should only need to leave this on if you're using a gigabit interface on an Internet-facing server.
Many adapter drivers come with a form of
Microsoft has offered a set of
1. Commands to use on an "administrator" command prompt...
netsh interface ipv6 6to4 set state state=disabled
netsh interface ipv6 isatap set state state=disabled
netsh interface ipv6 set teredo disable
portproxy function.HE, GoGoNet, and SixXS.modified TCP stack was introduced. I use this "Compound TCP" when I can on the newer systems: fortunately, it has been backported to the 2003-based systems via hotfix 949316.Vista & Newer: Standard Networking TweaksTCP timestamping, and TCP Chimney: the latter is a function of Windows that does partial TCP offloading when able. At the "administrator" command prompt...
2. On Windows XP systems, you can also disable the "IP Helper" service: however, you'll lose use of the
3. If you want to use IPv6, and your ISP doesn't have it, consider free (and stable) tunnel services from
XP x64 & Server 2003: Compound TCP
With the Vista networking stack, a
1. I make prudent use of Compound TCP,
netsh interface tcp set global congestion=ctcp
netsh interface tcp set global time=enabled
netsh interface tcp set global chimney=enabled
IPv6 privacy addressing for troubleshooting purposes; it can be disabled with the following command...
2. I prefer not to use
netsh interface ipv6 set privacy state=disable
3. There is an additional tweak that can help deal with proper traffic routing: however, many routers don't implement it correctly, and Battlefield Heroes doesn't like it at all. Use at your caution.
netsh interface tcp set global ecn=enabled
And there you have ... my list of favorite tweaks. Next up: Linux.