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.

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.