Windows 2000 Modem Tweak Guide
Posted: March 12, 2000
Written by: Keith "Farrel" McClellan
This is the first in a series of new Windows 2000 centric tweak guides. I've been using Windows 2000 now since it came out (I played around with some of the betas earlier on as well) and I think I've come up with some pretty neat tweaks for you on the modem front -- as well as some information on working around some of the current "bugs". Well, actually bug, and it's the only one I've found so far (and it's a non-fatal one at that) -- which makes me extremely happy.
Unlike our other tweak guides, where I have the cranial gray matter of the other guys on the site to bounce ideas off of, this one was done totally solo. No one else has even come close to picking up a copy of this OS yet. Basically I'm trying to say that any setting specific information in this guide is strictly experimental -- it hasn't been as widely tested as I'd like (all of it works on my system and that's about all I can say for it) -- so be careful.
Windows 2000 drivers are about as hard to come by as a good home-baked pie in the middle of Malaysia (okay, maybe not quite that hard, seeing that they just don't exist here). Driver's Headquarters, which is where I usually point all of the misguided souls that come to me looking for drivers, doesn't support Windows 2000 yet (at least not intentionally -- it all depends on how the respective companies manage their driver pages). So, you basically have two options for finding Win2K drivers. They are:
- Manufacturer's website
The manufacturers website is your best bet for new drivers at this moment, because at this point WindowsUpdate only has the drivers that were included on the CD. Of course, the drivers that were included on the CD rock -- but newer (when dealing with drivers at least) is almost always better.
Modems and Network cards alike can benefit from the newest firmware. Firmware is like the BIOS for a piece of hardware (like a modem) that can be flash upgraded. V.90 is one type of firmware upgrade, but not the only kind. Firmware updates can generally be found on the manufacturers website.
Ack -- I don't know about you, but I've never been particularly fond of bugs -- living or digital. And as such, I like squashing them at every opportunity. However, the one bug that I have found in Win2K, which can't be resolved easily, has to do with the Serial ports and modems. I don't know if this applies to people with internal modems (I've got a 3com External), and I'm not sure if it is just a consequence of my peculiar dual-boot setup (take my advice and do not install them both on the same partition -- but more on that in another guide). However, about 1 in 5 boots, my computer refuses to recognize that my modem is installed and turned on. There are two ways that I have found to fix the problem:
- Reinstall the Modem
The first, as you might know if you have previous experience with NT, takes a LONG time -- it's painstakingly slow, which is probably why Microsoft opted to keep the Win9x code base for its next consumer OS. So unless you aren't comfortable screwing around with your modem settings, I don't recommend going this route. It is MUCH easier to simply reinstall your modem drivers. The following steps go for installing a new modem as well:
- Go into Phone and Modem options in the Control Panel
- Click on the Modems Tab
- Uninstall existing modem driver (should say not present in the Attached To section)
- Click on the Add button and let the computer automatically install your modem
Pretty easy huh? You will need to go back through and quickly re-instate any settings you may have changed to the modem (including your Initialization String -- I keep it in a text document on my desktop for easy access if I have to reinstall) before connecting to the net. It won't break your Dial Up Connection link though, so you don't need to mess with that.
There are three sections of the Control Panel you need to tweak to get optimal performance out of your modem, and the first one is the Phone and Modem Options applet. Go into the applet and head to the Modems tab. From within there, select your modem and click on the properties button. You will probably notice that the modem properties in Win2K is pretty Spartan -- well, they've just moved some things around. On the General Tab, set the Maximum port speed to 115200 or higher (if you have connection stability or compatibility problems, set it back down to 115200).
The only other tweak you can do from within this mini-applet is adding an initialization string to your modem. You will probably need to write one of your own. To do that, you will need to grab your modem's white papers from the manufacturer. You may also be able to find a working modem initialization string from http://www.spy.net/~dustin/modem.
Network and Dial-up Connections
A great number of the current modem tweaks from within Win2000 reside within the Network and Dial-up Connections tab. Select your dial-up connection icon, right click on it, and choose properties. On the general tab, click the Configure button. Set the Maximum speed to 115200, and select all of the check boxes under the hardware features. If you are more interested in ping times then you are in overall speed (ex: You play a lot of Quake III), de-select the modem compression box.
Under the options tab, the only thing that should be selected is the display progress while connecting. Under the networking tab, you actually have some real work to do. Follow these steps:
- Click on the settings button and enable all three tick-boxes, unless you are more interested in ping times, in which case you are going to want to disable software compression.
- In the components section, disable everything except TCP/IP.
- Click on the properties button and set these settings up as you ISP suggests, and then hit the Advanced button.
- Enable PPP header compression under the General tab unless you are looking for better ping times and not overall Internet performance.
- Under the WINS tab, disable LMHOSTS lookup
From within the "new" device manager (at least new to Win2K) (System Directory/Hardware tab) you can edit the settings for your serial ports. Select each COM port on your system and give it the following settings (under the Port Settings tab) [Note: you may have to be logged in as the Administrator to make these changes stick]:
Bits per Second - 115200+ (if you have compatibility or connection problems with higher settings, return to 115200)
Data bits: 8
Stop Bits: 1
Flow control: Hardware*
*You may get the same or better performance with this set to None - but it will depend on your system.
Under the Advanced button, make sure that the FIFO Receive and Transmit buffers are on and are turned up to their highest settings (14 & 16 respectively).
Windows 2000 is a little stubborn about letting you change some of the most important networking (and hence internetworking) settings on your computer. If you even search your registry for the following keys, you simply won't find them. Because of this, none of them have defaults (unless they are hard-wired into the system), so if you have problems, simply delete the keys.
All of the following tweaks can be easily installed on your computer using this registry file.
If you would like to install the keys manually, follow these steps:
- Start Menu => Run => Regedit
- Browse to the appropriate key
- Right click and select New Dword
- Type in the name for the setting
- Right click on the new setting and select modify
- Input value
All of the following keys should be added to the key [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters].
EnablePMTUBHDetect - This key enables Black Hole Detection over your TCP/IP connections. It applies to all of your TCP/IP stacks. It is best to disable this feature.
0 - Disabled 1 - Enabled
Tcp1323Opts - This key enables large TCP window support. Disabling this setting limits the window to 64K. This setting may not apply to modems but it shouldn't hurt your connection to have it enabled.
0 - Disabled 1 - Window Scaling w/o Timestamp 2 - Unknown 3 - Windows Scaling w/ Timestamp
SackOpts - This setting enables selective acknowledgement support. This setting is more important to connections with large TCP Windows.
0 - Disabled 1 - Enabled
DefaultTTL - This setting determines the default Time to Live setting for your connection. 32 is the standard, but 64, 96, and 128 are also common. There are special instructions for modifying this key. Input the data as binary and then click on the hexadecimal radial button to convert to Hex before saving the setting.
EnablePMTUDiscovery - This setting enables MTU Auto Detect within Win2K. This setting is best enabled.
0 - Disabled 1 - Enabled
Additional Registry Keys
Here are some additional keys that I didn't find to help my system but may help yours depending on your particular configuration.
Under the [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] Key:
TCPWindowSize - This setting should be set as a multiple of your Maximum Segment Size [MSS], which can be determined by your MTU-40. I recommend four times your MSS for 56k modem connections. For me this would be 5840. There are special instructions for modifying this key. Input the data as binary and then click on the hexadecimal radial button to convert to Hex before saving the setting.
Under the [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\] Key:
MTU - This allows you to manually input the optimal MTU for your system. This can be very dangerous - so be careful. The standard setting for this is 1500.
Determining your MTU
Depending on your particular modem/line/ISP, you may have more success with other settings. There is, however, an easy way to determine your optimal MTU, which should make your tinkering a lot less complicated. Start by opening a dos prompt, then enter the command "ping -f -l [trial MTU number] www.[your-isp].com". Start with 548 and go up or down depending on the message (if it tells you that the packets are being fragmented, you need to go down - you want the highest setting that doesn't cause packet fragmentation). To derive your MTU from the ping data, add 28 to the highest number that worked (packet size+28). Then, to derive your MSS from your MTU number, take MTU-40 and insert that value for MSS. The other settings will probably require a bit more tinkering though.
After you have performed these tweaks, you might want to check out MSN's Bandwidth Speed Test to see how well it worked. Compare an average of three, both before an after, and take into account the current connection speed and the speed it was connected at prior to tweaking.
File and Printer Sharing Security
File and Printer Sharing is not secure, and unless you are on a network you do NOT want to have it enabled. If you are on a network and there is no way you can set up a firewall of some sort, take the following steps:
(a) Put a password on all of your drives
(b) Set to Read Only - if you need to copy a file to a computer with read-only installed, go to the other computer and call the files from there instead of sending them.
(c) Disable File and Printer sharing within the Networking Tab of your Dialup Connection.
Internet Connection Sharing
Internet Connection sharing can be enabled from within the Sharing tab of your Dialup connection properties. For it to work, the other computers on your network must also support it (they need to have either Win2k or Win98 SE installed). You will want to enable on-demand dialing, but you probably won't need to fool around with the additional settings under the Settings button unless you are having trouble.
I hope this guide helps you guys braving the Win2K frontier out. Special thanks goes out to Speedguide.net for their information on the placement of some of those registry keys. And as always, feel free to contact me with your questions and comments.
Want to return to the normal guide? Click here!
All Content Copyright ©Dan Kennedy; 1999