System Tweaking Guide - Modems - By Mark "Frugal" Bush
This is where things
start to get a bit tricky. Everything up to now has been pretty
much black and white. The previous tweaks should wourk for everyone.
With modems on the other hand a lot depends on your hardware and
your ISP. Because of this I would reccommend you take a note of
the existing settings before you change anything. Before we get
into stuff like MTU, RWINS, MSS etc lets look at a few of the
standard changes we need to make.
Com Port Settings:
For some reason known only to Microsoft the default com port settings
in Windows 9x are pretty poor. Lets have a look at those settings.
To view your port settings, right click on "My Computer"
select "Properties", then click on "Device Manager".
Expand the "Ports (Com & Lpt)" section. Select the
port that your modem is on then click "Properties".
You will be presented with the following screen.
If you are wondering why these are silly, it's because your modem,
if configured for optimum performance is likely to be configured
for a maximum speed of 115200 and hardware flow control. Which
is pretty pointless if the com port itself is set to 9600 with
software flow control. The first thing we need to do is correct
this situation and change the bits per second to 115200 (if your
uart supports it set this higher then drop it down to 115200 if
it gives you problems). Set flow control to hardware. Now click
on the advanced button and you will be presented with the following
screen.
FIFO (First in First Out) buffers are a feature of modern UART's
(Universal Asynchronous Receiver Transmitter) . Any Pentium class
PC is likely to have at least a 16550 uart with 16 byte buffers.
On tadays fast CPU's you should have no problem moving the Receive
buffer all the way to 16 (reduce it back to 14 if you experence
line drops). Now keep clicking "Ok" until you are back
to your desktop.
Modem Settings:
The next stage is to make sure that the modem is configured for
optimum performance. Click on "Start" up to "Settings"
then across to "Control Panel". Once in the control
panel, double click on "Modems". Select your modem and
click "Properties". Make sure the Maximum Speed is set
to 115200 (57600 if you have a 28.8 modem). Make sure that "Only
Connect At This Speed" is UNCHECKED. Click the connection
tab. Ensure that you have 8 data bits, Parity set to none and
1 stop bit. Click on "Port Settings" and push the receive
buffers up to 16. Then click on "Advanced" and you will
see the following.
All of the above settings (except the Extra Settings which are
modem dependant) are the optimum. If you have an initialisation
string for your modem type that into the extra settings box. If
you don't have one you may be able to get one from your modem
manufacturer or your ISP's helpdesk. If not try one of the following
generic strings.
V 90
AT+MS=12,1,33600,56000
AT+MS=12,1,3400,1,5600
AT+MS=12,1,3400,56000
AT+MS=V90,1,3400,56000
USR Chipsets
AT&F1 is adequate for most USR modems
If none of the above works try Asking
Mr Modem here you can find init strings for most modems.
Now lets look under the surface a bit at some of the other things
we can tweak to get the best performance. I'll explain them first
then tell you how to make the changes at the end.
MTU
MTU or Maximum Transmission Unit is the largest TCP/IP packet
that your PC will send. Windows sets this as 1500 by default.
1500 is fine for lans but the Internet standard MTU is 576. You
are better off having an MTU of 576 because even if your own ISP
also has an MTU of 1500 there is no doubt that on thier journey
accross the net your packets will pass through routers that have
an MTU of 576. When this happens your packet becomes fragmented.
That is to say that your packet is broken down into smaller packets
and each one has it's own header added.
MSS
MSS or Maximum Segment Size is the maximum size of the TCP/IP
Packet minus the headers, this is the actual data you are sending.
The MSS ideally should be MTU -40 as the header layer is 40 bytes.
So for an MTU of 576 the ideal MSS would be 536
RWIN
The RWIN or Recieve WINdow is the maximum amount of data your
computer is willing to receive at any one moment. Setting this
too high will mean a greater loss of data if a packet is lost
(this translates to lag in a game). If it is set too low then
it will be very slow (and the game will be laggy). The RWIN should
be an integer of MSS. Ideally MSS X 2 4 6 8 or 10. The optimum
is MSS x 4 which in our case is 536 x 4 so our ideal RWIN is 2144
You can try higher ie MSS x 6 but remember, too high and it will
have the opposite effect of what you are trying to acheive.
TTL
The TTL is the Time To Live for each packet or the maximumum amount
of hops the data will travel. In order to get from one machine
to another the data hops from 1 router to another until it gets
to its destination. The default TTL is 32 which should be fine
but as the Internet is growing all the time I would reccommend
a TTL of 64
The easiest way to understand how these elements fit together
is via the old email analogy. Think of an email, the MSS is the
letter itself,Tthe MTU is the envolope that the letter is put
into and then sent. Tthe RWIN is the letterbox that the letter
drops through when it arrives. The TTL is how far the postman
is willing to take the letter.
Now the important bit, how do we change these settings. Well we
can hack the registry. After much thought though I decided not
to post the registry settings though. There is too much potental
for disaster if you are not familiar with editing the registry.
For those that want them they are readily available on the net,
just do an Alta Vista search. The easiest and safest way to do
it is by using one of the many purpose made utilities. I personally
use MTUSpeed
Pro but there are plenty out there.