ADSL Tweaks Guide

GETTING THE MOST FROM YOUR ADSL CONNECTION cable

The first time you connect to the Internet with your all-new ADSL modem, you may find that you are not surfing or downloading at the rate that you had hoped the connection would give you. This guide will hopefully help you to optimize your broadband connection.

Maybe you are unsure as to what downloading speeds you should be getting. Well, if you have a 500Kbps connection, you should be getting close to 60K/s when downloading. This does depend greatly on the site you are downloading from, but I have generally managed to obtain decent download speeds of 57-60K/s.

If you work it out: 500000 / 8 = 62500 (62.5K)

So 60K/s is pretty good really. In fact, the actual reason that you could never obtain a true 62.5K/s download is because of transfer loss. This can be as much as 13%. TCP/IP loss can be up to 3% and the rest is ATM loss, which can be up to 10% (ATM = a protocol for transferring data between two points).

If you're not getting this sort of speed then it is probably because your RWIN and MTU settings are incorrectly set for broadband optimization. There are other reasons of course, such as contention, but incorrect optimization is the most probable.

A simple way to check this would be to visit www.dslreports.com and use the 'online tweak tester' in their tools section. This will inform you if there is a problem with your RWIN or MTU settings.

For example: My test told me that my RWIN XXX is too low, and that my MTU is too small.

These are pretty common results for a first time test, but are easily rectified using the DRTCP program that is also available on DSLReports website. For convenience, I have added the link here: www.dslreports.com/front/drtcp.html.

Tip for using DR TCP: When changing a setting, you might notice that the "Apply" button does not highlight. You need to hit "TAB" to activate it and then click on "Apply". The settings do not become apparent until after a reboot.

RWIN in more detail: If you are experiencing packet loss, then you may want to lower your RWIN setting. There is a method for determining your maximum required setting for the RWIN, but it is dependant on latency (ping), and seeing as ping is not constant, it is different for each user/system.

<Connection Rate> * <(Latency * 1.5)> / <8> = <RWIN setting>

One point that I'm sure you're all aware of. Latency is measured in milli-seconds, this means that a ping of 150 would translate to 0.150 for the latency variable.

The only thing I can suggest is that you find a service that you use with a high ping and then calculate your RWIN setting from there. The other option is to calculate the ping for your favorite games server and work out the RWIN for that, you could then set it when you want maximum throughput for that particular period. Otherwise, it's too variable to detail.

I have no packet loss problems, and have never had a problem with my RWIN set to 65535.

MTU in more detail: The MTU setting is a definition of how much data you can transmit in one go before it has to be cut-up or fragmented. Every connection has a limit and can be determined using a simple command in DOS.

The value you should use for your MTU setting is dependant on the MTU value for your ISP since all packets (data) will be travelling through their servers.

To determine the maximum MTU value for your ISP, open a DOS window and type :

ping -f -l [packetsize] [www.your_isp_url.com]

Where [packetsize] is the amount of data you want to send (range is 0 - 1500) and [www.your_isp_url.com] is the url of your ISP.

Your ISP's MTU is determined from the larest packetsize value that does not return the error "Packet needs to be fragmented but DF set" -28 (20 bytes for the IP and 8 bytes for the ICMP header). This is dependant on how the server is configired, but essentially the result is the same.

For example:

C:\WINDOWS>ping -f -l 1472 192.168.1.10

Pinging 192.168.1.10 with 1472 bytes of data:

Reply from 192.168.1.10: bytes=1472 time=2ms TTL=128
Reply from 192.168.1.10: bytes=1472 time=1ms TTL=128
Reply from 192.168.1.10: bytes=1472 time=1ms TTL=128
Reply from 192.168.1.10: bytes=1472 time=1ms TTL=128

Ping statistics for 192.168.1.10:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 2ms, Average = 1ms

The maximum packet size I could send to my gateway system without it fragmenting was 1472. This means that an MTU value of 1500 is fine for my ethernet connection (1472 + 28 = 1500).

As you can see from the example above, you can determine MTU value for you LAN systems also, as this is dependant on the potential bottle neck that is the gateway system. All packets have to pass through that, so the MTU value for your gateway limits the MTU value for your LAN systems.

Summary:

What are RWIN (TCP Receive Window) and MTU?

What is Rwin?

RWIN (or TCP receive window) is the amount of data that your PC can accept without acknowledging the user.
When a sender sends a packet to the user, it requires an acknowledgement from the receiving system. If this ACK is not received, it will wait for a certain amount of time, and then retransmit. This is how TCP is made reliable.
This start-stop process slows down transmission, but to enable a speedier process, you can set the size of the receiving window so as to sustain a continuous data transfer.
By default, this window is too small for many types of DSL and Cable (8192 for Windows 95/98/98SE/NT and 16384 for Windows ME/2000).
Increasing the Rwin setting, will allow more information to be transferred non-stop, up to a point, and then after this point, no difference will be noticed for the particular connection. The point will vary depending on bandwidth * delay. This is why you should allocate more than you actually need. I use a value of 65535.

What is MTU?

MTU is short for Maximum Transmission Unit, the largest physical packet size, measured in bytes, that a network can transmit. Any messages larger than the MTU are divided into smaller packet before being sent.
In order to transmit the most amount in one go, you should set your MTU to a high value. I use a value of 1500.
If your MTU is low, then it will take more packets to transmit the same amount of data as a higher valued MTU, thus taking more time.

How do I use DrTCP and what does it do?


Firstly, I would like to start by explaining that Dr TCP is not a patch... it is purely a shortcut to registry editing. It does nothing without user intervention.

All information has been grabbed from www.dslreports.com and assumes that you are using Win98/98SE/ME/2000.


Dr. TCP

TCP Receive Window: This is where you set the Rwin. This is the single most important tweak, and raising the value from the Windows default will greatly improve download speeds. My Rwin is set to 65535.

Windows Scaling: 65535 is the highest value that you can set your Rwin to, without having to use windows scaling. Scaling is needed to enter any number higher than 65535. Most users do not need a higher Rwin that 65535, and so I recommend that this setting be set to default ( off).

Time Stamping: This setting may or may not improve performance. If you have a line where latency varies a lot, time stamping may be beneficial.......experiment with it to make sure. I have my setting at default ( off).

Selective Acks: This improves the speed of lines that tend to lose packets (packet loss), by re-transmitting only packets that were lost, if any. I have my setting at default ( on).

Path MTU Discovery: This automatically sets your MTU to suit the type of line that you have (dial-up or broadband). The highest MTU that you can set is 1500. I have mine set to default ( on).

Black Hole Detection: This discovers routers on the web that cause MTU Discovery to work sub-optimally. I have mine set to default ( off).

Max. Duplicate ACKs: This allows for faster re-transmission of packets when lost. I leave this setting blank. (blank = 3 for Win98/98SE/ME and blank = 2 for Win2000).

TTL: Time To Live is the amount of hops (servers) that a transmission packet will take before all packets are lost. If you were receiving packets from 20 hops away, and your TTL was set to 19 or less, then all packets would be lost before they reach you. I leave this setting blank (blank = 128 in Win98/98SE/ME/2000).

Adapter Settings: This is where you set your MTU. I have mine set to 1500 for both NIC and Dial-up.

ICS Settings: If you use Internet Connection Sharing (a Microsoft program), then you should set the ICS MTU to the same as that of the PC. This is grayed out if ICS is not being used.

When you are happy with your settings, you need to hit the Apply tab (you may need to hit tab to highlight it). Next click on Exit and then reboot the PC. A reboot is necessary to activate the settings.

Internet Explorer - Registry Tweak


Registry tweaks should not be done unless you are comfortable using Regedit. To avoid mistakes, you should back up your registry before applying the tweak.

This particular tweak is not just for broadband, but will definitely give a major improvement to 56K connection also.

For those willing to give it a try, all you have to do is click on this link for instructions.

For those interested in what it does: Internet Explorer 4 & 5 are designed to comply with Hypertext Protocol 1.1. This dictates that a web browser should draw no more than two streams of data from a web server at any one time. However your browser is capable of getting many more times than that , and if you increase the number it's looking for, you vastly speed up the whole process.

DHCP Stall/Freeze


If you have a network card installed on your PC, the chances are that your ADSL modem may try to talk to the network card, this can cause your PC to freeze for a while. I have only recently discovered that disabling the card in Device Manager is not the only method of preventing the stall.

In-built DHCP services tend to become active about once every 10 minutes. They look for an IP Address of a DHCP server from the network card. Obviously, this DHCP server does not exist. This may cause your PC to freeze up. It is especially noticeable when surfing.

Here's how to rectify this:

Essentially what you need to do is to define an IP Address instead of letting it obtain one automatically. This way, it never needs to search because it thinks it has one already.

  • Open Control Panel
  • Open Network
  • Look for the fist entry in the scroll box marked TCP/IP, that is associated with a hardware ethernet card. e.g. : TCP/IP -> Realtek XXXXX etc.
  • Select it and press Properties
  • Select "IP Address" from the tab
    Is "Obtain IP Address Automatically" checked? If so, change it to "Define IP Address" and enter an IP Address within the range of 192.168.1.1 and 192.168.1.254, and a Subnet Mask of 255.255.255.0, into the IP Address and Subnet Mask fields respectively. These numbers are harmless and should not cause a problem unless you actually use a DHCP server, in which case you should set the addresses accordingly.
    OK out and close down control panel.

Now see if you get any stalls.

(Info grabbed from DSLReports FAQ)

P.S. DHCP = Dynamic Host Connection Protocol. It basically allows workstations to connect to a network and automatically obtain an IP Address, Subnet Mask etc.


What Is "Contention Ratio"?

Normally people panic when they here stories about contention ratios and how you could end up surfing at a lower speed than a 56K modem.

This guide will hopefully reassure those who have concerns, especially those on a 50:1 contention ratio service.

An ADSL connection into your premises (office or home) is technically a dedicated line between you and your telephone exchange. However, from your telephone exchange to the ISP's network, your data would be traveling over a network that is shared between you and other ADSL users.

The speed that you would get would fluctuate depending upon how many users are connected to the network ("contending" for the bandwidth available) at any point in time.

The contention ratio reflects the amount of bandwidth actually available to all the customers versus the maximum bandwidth all of the customers could attempt to use at the same time.

Each Pipe carries a 10Mb capacity, this is the contended bandwidth, it's not 50 people connected to a 512K pipe. It 50 people connected to a 10Mb pipe.

A contention ratio of 1 would mean that you would always be able to send or receive at the maximum data rate because there is no other user sharing the bandwidth with you, a contention ratio of 50 means that it is possible that you can only send or receive at 1/50th of the pipe capacity because you are sharing the bandwidth with 50 other people.

If you do the sums :

10,000,000 / 50 = 200,000

So the worst-case scenario would be 200K/sec connection.

Statistically, most users do not use their full bandwidth most of the time, so the worst case seldom if ever occurs. The general rule is: the lower the contention ratio, the more likely you are to continue to get fast throughput during busy times. However, because of the "bursty" nature of Internet traffic, it is unlikely that the worst-case scenario will come about.

If the problem does become more apparent, then BT have stated that they will amend the service as necessary.


CREDITS

This guide ©2001 Onslo for The Scream!

If you have any comments, corrections or information we should add please e-mail us at