Internet connection tweaking

Whether you've got a dial-up modem or a broadband Internet connection, chances are you can get a bit - or maybe a lot - more performance out of it. Here's a few pointers.
The two speed measures for Internet connections are bandwidth and latency. Bandwidth is how much data you can send in a given period of time; latency is how long data takes to travel. "Round-trip latency" is how long you have to wait before whatever you're communicating with hears you and sends a message back; it's equal to your upstream (send) latency, plus your downstream (receive) latency, plus however long the thing you're communicating with takes to make the data ready to send to you. Broadband connection technologies like cable, ISDN and DSL give you lots of bandwidth and nice low latency for your connection to your ISP.
Bandwidth's more important than latency for ordinary Web browsing. Nobody minds much if a Web server takes a second to acknowledge your link-click and start sending you a page, as long as the download itself doesn't take five minutes. Pretty much all other "serious" Internet applications are also fairly latency-insensitive.
If you're playing action games, though, latency is much more important, and bandwidth less crucial. The quicker the response of the connection between your computer and the server, the closer will be the synchronisation between the game world you see and what's really going on. One second of "lag" is not acceptable for action games.
On a modem connection, you don't have enough bandwidth for good action games. A "56K" modem connection has a top speed of about five kilobytes per second downstream (from the Internet to you) and about three kilobytes per second upstream (from you to the Internet). Game designers are very ingenious at reducing the amount of data that has to be sent and received, but about four times the bandwidth is still needed for really smooth play.
Four times the bandwidth is only 15 to 20 kilobytes per second each way, though. This is well within the capabilities of a basic 128 kilobit per second ISDN link, for instance. If you're running a game server then you may need a lot of bandwidth, but client machines need low latency much more than they need high bandwidth.
So what can you do to make dial-up and broadband connections better?
Read on.
 
Modem tweaking

If you have an ordinary all-hardware phone line modem, it's unlikely that there's anything you can do to it to make it perform better. You can get firmware updates for older modems which allow some of them that shipped with support for older 56K standards, like X2, to work with the later V.90, if necessary. But apart from that, updates make little difference.
Changing the modem for a whole new one will help, if your current modem doesn't support the same 56K standard your ISP does. Pretty much every ISP uses v.90 modems now, though, so that's only an issue if you've got an old modem that can't be upgraded to v.90. But there can be other reasons to trade in your modem. All modems are not alike, and the biggest difference is between hardware and software, or "host based", modems.
All of the current crop of super-cheap internal modems, and a few external USB ones, are host based - they use the computer's CPU to do the grunt work, instead of having their own on-board hardware. This means that many of them only work with Windows, although there are now Linux drivers for many of the more popular chipsets. These modems are commonly referred to as "Winmodems".
Host based modems can have compatibility problems, which sometimes manifest as being unable to connect at all to some other kinds of modem. Which can be a big pain, if the thing you can't connect to is your ISP. More commonly, host based modem compatibility problems simply give you a lower connection speed than you'd get from a better modem.
Winmodems, unlike hardware modems, have complicated driver software. Driver upgrades can thus make a significant difference to Winmodem performance. If you use a Winmodem, check the manufacturer's Web site to see if you can get a later driver.
There are many ways you can tweak the software settings for a modem Internet connection. Most of them are a complete waste of time.
There are lots of voodoo TCP/IP settings you can fiddle with, but almost none of them will make any appreciable difference - well, not any appreciable positive difference - to any normal Internet connection. There are reasons for some people doing some specialised things to fiddle with these settings, but for most applications there's no reason to.
The only modem tweak that does significantly affect both latency and bandwidth is the port speed setting.


Go to Device Manager and look at the Properties for your modem. The "Modem" tab of the Properties is where you set the port speed.
This, for all ordinary serial external modems, is how fast the computer-to-modem connection is over the serial cable. It is only indirectly related to how fast bits can be sent between two modems.
If the port speed is, say, 57600 bits per second, and you've got a "56K" modem that's connected at a download speed of 48000 bits per second (56K modems never connect at "full speed", and their upload speed is only ever 31200 bits per second), then when you're downloading compressible data with compression turned on (which it is, by default) your port speed will probably be limiting the speed of your modem.
How much the speed is limited depends on the compressibility of the data you're downloading. Things like GIF and JPG images are basically uncompressible; they're already as small as they can get. HTML and text files, on the other hand, are very compressible; modem compression can let you double your effective download speed for this sort of content.
Wind up the port speed to 115200 bits per second, and you'll thus see a slight overall bandwidth improvement, thanks to compression. The ISP's modem squishes the data down and sends it down the 48000 bit per second link; your modem unsquishes it and squirts it to the computer over the 115200 bit per second serial link.
Winding up the port speed will also give you a slight latency improvement, because the faster port speed lets data get into and out of the modem buffers slightly faster. The difference isn't big - probably less than 10 milliseconds - but modem gamers need all the help they can get.
Don't bother setting your port speed above 115200 bits per second, if your computer even supports higher speeds. Most serial ports and modems don't properly support higher than 115200, and the incremental latency difference is unmeasurably small.
Compression is hardly ever going to give you enough data to use any bandwidth above 115,200, anyway, The compression standard used by v.90 modems is called v.42bis, and its maximum theoretical performance is 4:1 compression. In reality, 3:1 is about the best you're ever likely to see, and 115,200 bits per second is already 2.4 times the 48,000 bits per second that can be pumped down the v.90 connection. Since a significant part of the 48,000 is taken up by framing data and other inter-modem chit-chat, 115,200 actually pretty neatly matches the maximum amount of user data a modem's likely to be able to move.
Various people say you should turn off all forms of compression for a modem Internet connection, because compressing data increases the connection latency - the modems have to take a little time compressing data before they can send it.
This might have been true at some point, for some modems (especially host-based ones on slow computers) but it's not true now.
Pretty much all current modems seem to have enough processing power that they compress and uncompress data faster than they can send or receive it. Furthermore, the v.42bis standard allows modems to detect when data isn't particularly compressible, and not try to compress it at all. So turning off compression just reduces your Web surfing speed a bit, and does nothing for your latency.
Another kind of compression, "IP Header Compression", will actually improve your latency, provided your ISP supports it. It greatly reduces the size of IP packet headers, and can make a substantial difference. It's turned on by default in Windows. To see this setting in Win98, right-click the appropriate connection icon in My Computer -> Dial-Up Networking, select Properties, select the Server Types tab, and click TCP/IP Settings. There's no reason not to leave IP Header Compression turned on all the time.
The most effective way to tweak really slow dial-up connections is by changing not your hardware, and not your settings, but your ISP. Different dial-up ISPs have different speed connections to the Internet, and share their links between different numbers of customers.
If you want to play on-line action games, an ISP that provides local servers for whatever takes your fancy will give you a much more satisfying experience than you'll get on just about any other server. Provided there's someone decent to play against, that is.

Updating antiques

If you're using a dial-up modem and still have Windows 95 with a version of Dial-Up Networking below 1.3, you can increase performance by getting the 1.3 update from here.
If you aren't, don't.

Broadband tweaking

If you thought there was a lot of voodoo tweaking done by modem users, you ain't seen nothing yet. Various cable, DSL, ISDN and other broadband connection users tweak TCP/IP within an inch of its life.
And, again, the tweaks are mostly pointless. There's only one TCP/IP tweak that's likely to be worthwhile for normal users.
When you've got all the bandwidth in the world, but high latency - as happens in most Web surfing from a broadband connection, when you're connecting to distant servers that are many network "hops" away from you - you can improve throughput by increasing the TCP/IP DefaultRcvWindow setting. DefaultRcvWindow is 8192 bytes, as standard, but can be set to anything you like. Making it larger increases the amount of data that can be sent before the other end has to acknowledge receipt, which can speed up downloads from high latency servers.
You can change your DefaultRcvWindow setting without manual Registry editing by using a utility like EasyMTU for Win98, 98 and NT. As the name suggests, EasyMTU also lets you change your Maximum Transfer Unit (MTU), setting, and lets you tweak TTL (Time To Live) as well. You can do that if you want, but it won't help. MTU and TTL are, for ordinary Internet users, a couple of those pointless tweaks I've been talking about.
Latency isn't likely to be a problem if you've got a broadband connection, like a cable modem. Well, not a problem you can fix, anyway; you can't change the speed of a slow server somewhere else no matter what you set on your computer. Servers not many hops away from you, though, will have very low latency, if you've got a cable modem or DSL or ISDN connection.
There is one other worthwhile broadband tweak you can perform, though. It involves being rude to the HTTP specification.
According to HTTP v1.1, you can only make two simultaneous requests to any one server. Only two simultaneous downloads, for instance; ask for a third file and the download won't start until one of the others finishes. The HTTP v1.0 specification has a less official, but widely accepted, four connection limit.
This doesn't affect Web browsing much, as one request for a Web page via HTTP v1.1 can ask for file after file after file without closing the request. But if you've got broadband and don't feel too bad about violating the specification, you can wind up the limit as far as you like, by changing a couple of Registry settings (Start -> Run, then type "regedit"). Microsoft themselves explain the keys you need to change, right here. If you're scared of registry editing, you can pump up the settings the easy way by using a canned Registry tweak file like this one.
Doing this on a computer with a low-bandwidth Internet connection isn't a great idea, because requesting a zillion files at once will just max out the connection and give you lots of timeouts. On broadband, though, it can considerably accelerate multi-window Web surfing.