This software is freeware. However, I assert my right to be identified as the author of this software. It is not acceptable behaviour to disassemble or otherwise hack the executable. MTU-Speed is provided "as is" with no claims to itÆs capabilities or stability. If you do not back up your registry prior to using this software then all I can say is "donÆt blame me!". Having said that I have never had any problems with it but it is sensible to take some precautions.
***** áPLEASE BACK UP YOUR REGISTRY BEFORE USING MTU-Speed!! *****
VERSION HISTORY
Version 3.06
-- Added Check box to allow changes to MaxMTU to be applied to all keys simultaneously.
-- Removed bug that was present following certain button push combinations. It caused MaxMTU to be written as 0 instead of removing the key.
-- Selecting either of the "Auto" options sets MaxMTU to "Remove".
-- Implemented a second attempt to cure the "notepad starts hidded" problem experienced by some users.
Version 3.05
-- Fixed major bug which caused RWIN to be incorrectly read on program start on certain occasions.
Version 3.04
-- Corrected logic in "Optimum" and "basic" algorithms. After certain button push combinations, incorrect displays were sometimes experienced when selecting different keys from drop down list.
-- Selecting MaxMTU to "Remove" forces the MaxMTU value to 0. Reselecting "enabled" sets MaxMTU as 576 (Hey, I had to choose something <g>)
-- Added new command to Popup menu:- "Re-read Registry". This is for when you get confused as to what your settings were. Selecting it re-reads the values from the registry (before you had to close and re-open MTUSpeed to achieve the same effect)
-- Altered the way in which the "View Readme" subroutine initialised notepad. This is to try and cure a problem (experienced by users of the PanEuropean version of Win95) where notepad would start hidden!
Version 3.03
-- When RWIN is set to "Remove" the RWIN value is now displayed as 0.
-- Setting MaxMTU to "Remove" sets MaxMTU and MSS displayed values to 0.
-- When the "Update Registry" button is pressed, a "Read after Write" subroutine is now used to update the display with the values that were written to the registry.
-- Created new subroutines to remove repetitive code in certain sections.
-- Fixed bug that caused the TCP key label on the program window to disappear after a certain combination of keystrokes.
-- Reduced key search from 50 keys to 30 keys to limit memory overhead of large array allocation.
Version 3.02
-- Added label showing total number of TCP keys detected.
-- Removed Sockets option due to lack of positive feedback regarding this feature.
-- Selecting "Remove Settings" puts ALL MaxMTU keys and other settings to the "Remove" state. Previously, "Remove" had to be pressed for each MaxMTU key in turn.
Version 3.01
-- Improved logic on greying out of labels.
-- Changed "Optimum Settings" algorithm so that RWIN is set to "Remove"
-- Changed "Basic Settings" algorithm so that RWIN is set to "Remove"
Version 3.0
-- Rewrote TCP detection algorithm. Now detects all keys that hold TCP data and doesn't stop when the first key is found.
-- Added dropdown ComboBox to give access to each different key that holds TCP data.
-- ComboBox displays DriverDesc value and IP stored in key to aid identification.
-- Added ability to set a value for RWIN if MTU is disabled.
-- Added RWIN option on Button and Popup menu (greyed out if MaxaMTU enabled).
-- Fixed bug in MTU dialog which prevented MaxMTU Value being highlighted when the dialog was shown for the second time.
-- Fixed bug that caused Update Button to be enabled when OK was pressed on MTU dialog even though the MTU value hadn't changed.
Version 2.41
-- Removed some extraneous references to WebSpeed in the code aand message dialogs.
-- FAQ available on website.
Version 2.4
-- Added tabbed dialog pages to simplify interface. If you don't want to see all the radio buttons you don't have to look at them (most of them are set once and leave anyway).
-- Provided option for setting TTL (Time To Live) to increase number of hops allowed before time out (Option for selecting 32 or 64 hops on Registry Options tab).
-- Provided NDI CacheSize option to change NDI Cache setting on Registry options tab. The preferred setting is 16 but Win95 sets 0 for some reason. Setting 16 made a noticable improvement for me.
-- Altered the Optimise and Remove algorithms to account for the new additions.
-- Added popup help for most controls.
-- Changed the buttons. "Basic Settings" provides basic settings as a starting point. "Optimum Settings" provides settings which should work for most people and is what I recommend that you use. "Remove All Settings" returns the registry to the Win95 default state.
-- Moved "Update Registry" option on popup menu to the top of the menu to make it stand out more. Added entries to popup menu to correspond to the new buttons.
Version 2.3
This version is effectively WebSpeed 2.2. However, I have been forced by Progress Software Corporation to change the name from WebSpeed. Although I would have changed it if requested, I was actually left with little option. As, firstly, I cannot afford large legal bills (especially as it would have been transatlantic) and, secondly, I feel that any company is better using it's profits to improve it's services (as opposed to running legal battles) I have changed the name from WebSpeed to MTU-Speed.
Version 2.2
-- Added support for NetManage TCP stack and for any Winsock that writes either "tcp/ip" or "TCP/IP" as part of the DriverDesc Value in the NetTrans\00xx key.
-- Lower left window segment now displays which of the NetTrans\00xx keys is being displayed.
Version 2.11
-- If the NWlink "Sockets" key isn't detected, the sockets box is greyed out to prevent people messing with the setting :)
-- Fixed a bug where if "sockets" wasn't detected on startup, a value was shown in the text window and, pressing update caused the key to be unnecessarily created.
Version 2.1
-- Added "Remove All Settings" button. This sets all WebSpeed options to "remove" and sets Sockets to 255. The keys will not be removed/changed until the "Update" button is pressed.
-- Added facility to alter the number of sockets allowed from default of 255. This is for IPX protocols.
-- Pressing the defaults button now sets Sockets to 255 in addition to changing MaxMTU and RWIN.
-- If no keys are detected on startup, MaxMTU and RWIN radio buttons are set to enabled and default values of MaxMTU=576 and Multiplier=4 are allocated. (Previously the values had been set but the radio buttons were not selected.)
-- If MaxMTU isn't in the registry; the MaxMTU label is greyed out.
-- Selecting MTU enabled/removed toggles the greying out of MaxMTU.
-- If RWIN isn't in the registry; RWIN, Multiplier and MSS labels are greyed out.
-- Selecting RWIN enabled/removed toggles the greying out of RWIN, Mult and MSS.
Version 2.02
-- Corrected problem with textlabel at top of window. On some graphics cards it would wrap lines and hide the MaxMTU value.
Version 2.01
-- The "Update Registry" option on the popup menu is disabled/enabled in synchronisation with the "Update Registry" Button.
-- Fixed bug where clicking on Trackbar would cause the "Update Registry" Button to be enabled even if the TrackBar hadn't moved.
-- Added an "Exit WebSpeed" option to the popup menu.
-- Fixed a bug where WebSpeed didn't correctly identify that TCP/IP was installed if TCP/IP was in a key greater than \NetTrans\0009. (oops!)
Version 2.0
-- Started again :) Reduced executable size by around 20 kb.
-- Fixed a bug where, if you tried to start WebSpeed from a shortcut with the shortcut's run property set to "minimised", you got some very funny effects. My thanks go to Arsene von Wyss for help with that piece of code.
-- You now have more control over which values are written to the Registry. You can write any or all values as you want.
-- Auto MTU Discovery can be enabled (PMTUDiscovery set to 1), Disabled (Set to 0) or Removed (key deleted from registry). Enabling it causes the MaxMTU and RWIN "Remove" options to be selected by default. If you really want to set MaxMTU and RWIN with Auto enabled then just click the appropriate enable options but I don't recommend it.
-- While Auto MTU Discovery is enabled, MaxMTU, RWIN, MSS and Multiplier values are grayed out. If you enable MaxMTU or RWIN the values will remain greyed out as a warning (MaxMTU and RWIN values will be correctly written to the registry if the Update button is clicked).
-- Added MTU Black Hole Detection to detect routers that do not return fragmentation messages. This, like AutoMTU, can be enabled, disabled or removed.
-- Added keyboard shortcuts to the program buttons.
-- Changed minimum allowable MaxMTU value to 68 (the IP4 Standard).
Version 1.7
-- Optimised logic and subroutine usage.
-- Corrected bug in TCP/IP detection. WebSpeed now closes gracefully if TCP/IP not detected.
-- Changing MTU or dragging the slider deselects the Remove and Auto radio buttons if they were selected. If one of the other radio buttons were selected then they are not changed.
-- If AutoMTU is detected on startup, and one of the other radio buttons is subsequentlly selected before any values are changed, the Update button is automatically enabled. In previous versions it would stay greyed out.
-- Added option on Popup menu to view ReadMe.
-- Added option on Popup menu to Set AutoMTU.
Version 1.6
-- Removed bug where AutoMTU Detection not properly removed from registry.
-- Enabled checking of registry for TCP/IP in keys other than NetTrans\0002.
Version 1.5
-- Added check for multiple instances. You cannot now run multiple copies of WebSpeed.
-- Verifies that the NetTrans/0002 key actually contains the TCP/IP settings.
-- Corrected a small typo in the about box :(
-- After typing new MaxMTU value, pressing ENTER selects "OK" and returns to main form.
-- Enabled tabbing through Radio Buttons.
-- Added support for Automatic MTU Detection.
Version 1.4
-- You can remove the registry entries.
PLATFORM SUPPORT
MTU-Speed is for Windows 95 & Memphis (English Versions only). It may work with other versions (feedbacck suggests French and Geramn versions are ok). I am currently working on an NT Version. It has been tested on Win95 build 950 and 950a (sometimes known as OSR1), on OSR2 and on Memphis. If it doesnÆt work, restore your registry - you did back it up didnÆt you? (Big Grin) - and e-mail me (mike@mjs.u-net.com) with as much info as you can.
INTRODUCTION
I wrote MTU-Speed when trying to optimise the throughput of my Internet access. I became tired of opening the registry, finding the appropriate keys, editing them and then closing the registry again. WebSpeed was written using ideas gained from the guys at NetPro NorthWest who publish the excellent "MaxMTU Fix for Win95" document. The document can be found at:
http://www.sns-access.com/%7Enetpro/maxmtu.htm
I also recommend (for those of a technical disposition) reading RFC 1191 which covers AutoMTU Discovery for IPv4 (RFC 1981 covers AutoMTU for, the yet to be released, IPv6). Automatic MTU Detection is discussed in Article Q158474 in Microsoft's Knowledge Base, and at http://www.graphcomp.com/info/rfc/rfc1191.html
or http://hotline.pvtnet.cz/dokumentace/rfc/rfc1191.html
I strongly suggest that you read the NetPro document prior to using WebSpeed and read the RFC if you are interested in the technical aspects of what's going on.
WHAT DOES WEBSPEED DO?
WebSpeed writes values to several keys in your registry. It writes:
MaxMTU = xxxx to:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\00yy (where yy ranges from 00 to 50 to cater for different setups)
The default values used by Windows are discussed in the MaxMTU document published by NetPro. If you select the "Optimum Settings" Button on WebSpeed it will DISPLAY values of MaxMTU=576, DefaultRcvWindow=2144, Sockets = 255 and removes the "Auto", "BlackHole" and "TTL" keys. In WebSpeed I refer to DefaultRcvWindow as RWIN so please don't get confused.
You can change MaxMTU by pressing the "Change MaxMTU" Button. WebSpeed calculates MSS by subtracting 40 from your entered value of MaxMTU. RWIN is calculated from the MSS times the Multiplier value (set by the slider) e.g., with MaxMTU=1524, MSS will be calculated as 1484 and, if the slider is set to a value of 4, then RWIN = 1484 x 4 = 5936. WebSpeed will write MaxMTUáonly, RWIN only (I don't know why you would want to do this) or MaxMTU AND RWIN values to the registry (if you enable both). The default is to write both. If you elect to write one value, the other is deleted from the registry. I suggest you either write both or MaxMTU only.
If MaxMTU is set to remove, the option to set RWIN values is enabled. You can manually set a value in the RWIN dialog. Setting MaxMTU to Enable will disable the RWIN option.
Selecting Auto MTU Detection allows TCP to sort out an MTU for you. I have been having favourable results with this one but only occasionally. I use MaxMTU = 576, RWIN=MSSx8, "Auto" Disabled, "Black Hole" Disabled, TTL = 64, NDI Cachesize = 16 and Sockets = 255. Alternatively, try MaxMTU and RWIN removed with BOTH Auto and Black Hole enabled. I find having MaxMTU or RWIN enabled interferes with the Auto setting but it may be different for you.
If you donÆt want to apply any changes just close the program window and select YES in response to the dialog asking if you really want to quit.
WebSpeed will NOT change the registry until the "Update Registry" Button is pressed. That is the only time WebSpeed writes to the registry. It does not write to the registry on exit. Therefore, prior to selecting another TCP key from the dropdown list you should press "Update Registry" if you want the MTU settings for that key saved. Otherwise, the settings you have picked will be lost when you select another key.
When starting, WebSpeed accesses the registry in read-only mode. The registry settings remain valid until you change them either manually or using WebSpeed. They are not lost following a reboot.
Clicking with the right mouse button anywhere in the main window will bring up a menu.
Selecting "Remove Settings" and then pressing "Update Registry" returns the registry to the default Win95 condition.
Several e-mails suggested the inclusion of the sockets option. Although designed for IPX/SPX protocols, some people have had success with setting 1020 with slower (14400) modems. It is hard to tell if it makes a difference especially as the recommended maximum is 255. Initially I thought it made a tiny difference but it was within the limits of different connections varying their throughput slightly. I have left it in for completeness but it may not change anything for you.
INSTALLATION
Run the executable which will allow you to extract the program and text file to any directory of your choice. By default it suggests \WebSpeed\ but you can over-ride this. Make a shortcut to the executable anywhere you want. WebSpeed does not require DLLÆs, registry entries or an ini file in order to run. Use the shortcut to start the program having read the relevant docs first!
UNINSTALLING
Use the "remove settings" button to clear out your registry (if you want to). Delete the shortcut if you created one. Delete the WebSpeed Folder. That's it !
FAREWELL
I hope you find this utility helpful. Please read the RFC and NetProÆs excellent document to fully understand what you are trying to achieve.