Step By Step: Internet connection tweaking

Originally published in Australian Personal Computer
magazine, many years ago.Last modified
03-Dec-2011.

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.

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.