Copyright: Copyright © 1998, High Mountain Software
Citation: Copyright © 1998, High Mountain Software


About iSpeed

About iSpeed for Windows

When networking is installed in Windows, the default settings are not such that promote maximum throughput. The registry entries that control these settings have not been widely publicized. Recently however, as users are trying to maximize their throughput to take advantage of the multimedia capability found on the internet, some of these settings are being discussed in public forums.

What iSpeed will NOT do:

•	iSpeed cannot improve your connection baudrate. If you have a 28.8 modem, that's the fastest (line conditions permitting) connection rate you are going to get. No software can do anything about that.

•	iSpeed cannot improve your telephone line conditions (e.g. line noise reduction). You'll have to (and should) contact your telephone company to resolve this.

•	iSpeed will not monitor your normal internet connection. The only monitoring that iSpeed will do is during the test ftp transfers done using that feature within iSpeed.

What iSpeed does is to facilitate making these changes in your registry, in an easy to use and understand format and a GUI interface. iSpeed provides some quick preset profiles that have been found to produce the maximum throughput on a variety of machines. It is recommended that the user try these first, before manually setting the individual entries. Find a preset profile that gets you higher throughput than your current settings, and then tweak them a little at a time, until you find your best setting. You do not need to run iSpeed while you are connected to the internet for performance enhancement. The only time that iSpeed requires an active internet connection is when using the Testing tab to check your connection throughput. iSpeed does it's actual work with your registry settings. Running iSpeed in the background while connected to the internet will not increase performance, it'll only leave you with less RAM by 2-1/2 meg RAM that iSpeed uses when it's running.

You can also record your settings in a history file and then graph the results of your connections. This allows you to very easily see, visually, where your best results are achieved.

Please remember that iSpeed does not work magic. It is a tool that you can use to facilitate making changes to your system that can improve your networking performance. However, keep in mind, that these changes can also have a negative impact on performance. If you try some settings that don't work well for you, be sure to make a history record of those entries also and note in the comment section any details you wish. The throughput setting will show in the list and the graphs that those settings do not produce the desired results. Best idea is to add all test results to the history list!


Getting Started

When you first run iSpeed, it searches your registry for all of your current TCP/IP protocol profiles (up to 50 of them). These are then displayed in a combobox, where you can pick the one or ones you want to modify. Note that NO changes are made to your registry, until you press the Save button. As you move through the available profiles, the other settings displayed will change for each profile.

Also, when iSpeed v2.7+ first runs, it checks for existing history records. If it finds them, they are loaded into memory and displayed on the History tab. If none are found, then one or more are automatically created with your current system settings. You should edit them and enter your current average transfer throughput numbers, if you know them. The creation of the records automatically serves two functions: 1) Provides a baseline for further transfer tests and analysis, and 2) saves your current settings for possible restoration at a later date if required or desired. (see Restoring Original Settings for more information)

If iSpeed can not find any registry entries for dialup adapters (modems) bound to the TCP/IP protocol, the maxMTU setting will be disabled. You will still be able to tweak the other global TCP/IP parameters and gain improvements.

Note also that only the max MTU setting is on a per profile/adapter basis. You can have and use separate MTU settings for each networking adapter in your system. There is no global MTU setting. All of the other settings the iSpeed manipulates are global to your system. They all all single entries in your registry and each works with all TCP/IP communications done on your system - this is with modems and network cards.

Once you have determined the profile for your ISP connection (see below), the best course of action is to follow these simple steps:

•	Run iSpeed and BEFORE making any changes to the settings, change the profile to your Dialup networking profile if available.

•	Establish a connection to the internet and click on the Testing tab in iSpeed. Use the default site, path and file if you like, or change them to any site and file you prefer (see the Using iSpeed Testing section for details) and click the start button. This will download the file to your system via the ftp protocol and monitor the transmission, recording the average throughput (characters per second received). When prompted to save as a new history record, accept it and enter the comment if desired when prompted. You now have a baseline to work with which should be your current, unchanged by iSpeed, settings and throughput.

•	Click the optimal settings button in iSpeed, save the settings, answering No to the prompt to create a history record, and reboot your machine.

•	Connect and download the file again using the Testing tab in iSpeed. Answer Yes to create a new history record and enter a comment, if desired, when prompted.

•	Run iSpeed again and try a different setting, save, don't create a history record, exit iSpeed and reboot your machine.

•	Connect and download the file again using the Testing tab in iSpeed. Answer Yes to create a new history record and enter a comment, if desired, when prompted.

•	Click on the Analysis tab. You can visually see here where your best results are. The higher the line (or taller the bar) then the better the throughput. Note the name of the history item on the graph that has your best throughput. Click on the History tab and select that best entry in the history list. Click the Use Settings button to copy those settings to the settings tab. Click the Save Settings button to write the new settings to your system registry. Reboot and you're all set.

Keep trying the last couple of steps until you have a good sampling of history records from your test transfers. Using the iSpeed Analysis graphs, you should be able to see a pattern in the transfer speeds you were getting and the corresponding settings in iSpeed. You'll then easily be able to pick out the best settings to use in iSpeed. Set them and you are done! You don't even need iSpeed again unless you wish to further tweak your settings, or if your throughput rates fall again in the future.

To facilitate locating the particular profile you wish to modify, the IP address and subnet masks are displayed for each. If you are assigned a dynamic IP address when you log into your internet service provider, as is the case with most dialup connections, then the IP address will be displayed as 0.0.0.0. If you connect with your provider, and then run iSpeed, you may see your actual IP address for that connection. If so, make note of the profile name in the combobox, as that will remain constant and be the profile used for all connections to that provider.

If you follow the above process and still see 0.0.0.0 as the IP address, don't be alarmed. This is also normal. If iSpeed only shows a single profile available for editing and you do have Dialup networking installed on your system, then that is the profile that you will want to tweak for your connection. If you have a network card installed in your system along with Dialup Networking, then you will see both profiles available in iSpeed. One should display the IP address for your network card (see your system administrator to find out what this address should be). You'd then want to tweak the other profile in iSpeed, although you can also gain benefits from tweaking your network card profile for your LAN connection. Do check the FAQ on our web site at http://www.hms.com

 for continually updated tips and tricks in determining your TCP/IP profile settings.

At anytime, you can press the default button to return to the Windows installation defaults, or if you followed the recommended steps above, you can choose your original settings in the History tab and click on the Use Settings button to revert back to your settings before using iSpeed that first time.


Maximum Transmission Unit (MTU)

The MTU is the greatest amount of data that can be transferred in one physical frame on that network. If a packet has an MTU that is smaller than the packet's frame lenght, then fragmentation occurs. This can dramatically drop your throughput and lead to overall lower system performance. The Windows 95 default value is 1500. In general, you want to use the highest MTU that you can without generating overruns. The lowest setting you should need would be 552. Some terminal servers work well with 1002. A typical setting that has been found to work well on a number of systems is 576. Note that Windows 98 dynamically changes this value to compensate for changes in your connection. Setting it here when running Windows 98 will be of limited value.

Choosing the Unset (use Windows default setting) option will remove the MTU entry from the registry. When Windows looks for this entry and does not find it, then the Windows default will be used. For Windows 95, this is a value of 1500. For Windows NT, this is a value of 0xFFFFFFFF, which means that NT will then use the default setting for the underlying network.


Receive Window (RWIN)

RWIN determines how much data the receiving computer is prepared to recieve. An RWIN value that is set too high will result in greater data loss if the packet is lost or damaged in transit. An RWIN value that is set too low will produce very poor throughput. Typically, an RWIN value should be set that is 3 or 4 times the size of the Maximum Segment Size (MSS).


Maximum Segment Size (MSS)

The MSS is the largest segment of TCP data that the Winsock is prepared to receive on a particular connection. When the TCP connection is initially established, both sides agree to use the minimum of each other's advertised MSS value.

If the MSS is too low, the data/header ratio will be low. And if the MSS is too high, this will lead to large IP datagrams and the packets will tend to fragment in transit where other networks may have small MTU's. Hence, performance can increase at times by reducing the MSS value.

Since packet headers are normally 40 bytes in length, your MSS value should always be at least 40 less than the value of the MTU. As a rule of thumb, first try setting the MSS value to be the greatest power of 2 that is at least 30 less than the MTU value.


Time To Live (TTL)

The TTL setting determines the number of hops allowed to reach other systems on the network. The default Windows 95/98 value is 32, and for Windows NT 4.0 it is 128. This can be a fairly small window on a crowded network - such as the internet. You may wish to try a value of 128 here, especially if you frequently have trouble reaching some sites.


MTU Auto Discovery

Checking the MTU Auto Discovery box allows the TCP connection to sort out the MTU automatically. Favorable results have been realized with this on and off. It is recommended to try both settings with each profile and use whichever works best. This can be used in conjunction with other MTU settings.

Setting this option causes TCP to attempt to discover the Maximum MTU (largest packet size) over the path to the remote host. By discovering the Path MTU and limiting TCP segments to this size, TCP can eliminate fragmentation at routers along the path that connect networks with different MTU's. Fragmentation adversely affects TCP througput and network congestion.


Black Hole Detect

Setting this option will enable TCP to try to detect Black Hole routers while doing Path MTU discovery. A Black Hole router does not return ICMP Destination Unreachable messages when it needs to fragment an IP datagram with the Don't Fragment bit set. TCP depends on these messages to perform Path MTU Discovery. With this option enabled, TCP will try sending segments without the Don't Fragment bit set if several transmissions of a segment go unacknowledged. Setting this option increases the maximum number of retransmissions performed for a given segment, and therefore may decrease overall throughput.


iSpeed Test Ftp Transfers

iSpeed has the capability to do a test file transfer using the ftp protocol and to monitor the transfer for the average characters per second received (throughput). After a successful transfer, iSpeed will prompt you to create a history record with your settings and throughput. If you accept, iSpeed will create the record for you and enter it into the list view on the History tab.

iSpeed is setup by default to download our SpamEater Pro shareware application from our ftp site. If you experience difficulties connecting with our site, or prefer to use another site or file, you can change them on the Test tab. You can save an unlimited number of ftp test profiles. To add a new profile, just click the plus sign button. To delete the displayed profile, click the minus sign button. To edit the displayed profile, click the edit botton. Note that you cannot edit or delete the default profile described above. Note that no error checking is done on these profiles and they must be correct. If you enter something incorrectly, you'll get an error message telling you what was incorrect (such as 550 - file does not exist, or 500 - Host not found).

If you are behind a proxy (or firewall), you can set the name of that server and the port to be used on the Testing tab. If you do not use a proxy (and your ISP does not use a proxy), then leave the proxy host field blank and the proxy port value at 0.

You can start the transfer by clicking on the Start button. Once the transfer has started, the Start button will change to the Abort button. Click it then will abort the file transfer. The progress bar will show you the progress of the file transfer by the size of the file. The current average throughput will also be shown as it's monitored.

After a successful test download, iSpeed will ask you if you want a history record entered for the test. If you accept, the current settings (from the Settings tab) and the average throughput for the test ftp file transfer will be entered into a new record and displayed on the History tab.


History Records

This section of iSpeed allows you to store an unlimited number of settings and their throughput results. There are three available methods of entering new history items:

•	Change the settings on the Settings tab and save them. After saving, iSpeed will prompt you to enter a new history record with the newly saved settings. If you agree, iSpeed will prompt you for a comment for the new history item and then iSpeed will create the new record and fill in all the fields for you, with the exception of the throughput. At this point, no transfers have been done with the new settings, and therefore, no throughput value is available.

•	Click the Add New button on the History tab. The history record dialog box will be displayed for you to enter your values into. You can click on the Current Settings button to automatically fill in the fields with the current values from the iSpeed Settings page. Click the Save Entry button to then save the new record. It will then be displayed in the list view on the History tab page.

•	After successfully completing a test file transfer using the Testing tab, you will be given the opportunity to save the current settings (those used for the test transfer) and the average throughput (characters per second) for the transfer into a new history record. If you accept, you will be prompted to type in a comment for the new record and then iSpeed will create the record with the settings and throughput and add it to the display list on the History tab.

Please note that the later method (using the Testing tab) is the only way that iSpeed will automatically enter the throughput for you. iSpeed does not monitor your normal internet connection activity as it is not a monitoring tool. iSpeed will only monitor the throughput for the ftp transfers that it does using the Testing tab. To monitor the throughput of your normal internet connection activity, you can use System Monitor (with Windows 95/98) or Performance Monitor (with Windows NT).

Once you have saved one or more records in the iSpeed history, using one of the three methods outlined above, then you can use the Analysis graphs on the Analysis tab to visually see where your best settings are.


Using the Analysis Graphs

Once you have entered a number of history items in the history logs, then iSpeed can take the data from those history items and graph the results for you. From these graphs, you'll be able to easily pick out the settings that give you the best results.

iSpeed can display the results in either a Line chart or a Bar chart. Both of these can also be displayed in 3D or flat. A legend can be displayed or concealed also. Right-clicking on the chart will popup a context menu with the available viewing options.

Some support for zooming is also provided. Left-click the top left point you wish to zoom, and, while holding down the left mouse button, drag your cursor to the lower right point you wish to include in the zooming. Let go of the mouse button and that area will be zoomed in on. To zoom out, just reverse the process (going from bottom right to upper left this time).

You can also get a printout of the currently displayed graph by right-clicking the graph and choosing Print from the popup context menu. The displayed graph will be printed in landscape mode on your Windows default printer.


Support and Updates

Among various other sites, you will always find the latest release of iSpeed and other High Mountain Software applications at our ftp and web sites. These are as follows:

Web: http://www.hms.com

Ftp:   ftp.hms.com/pub

Support for iSpeed is limited due to it's freeware status. Bug reports and suggestions should be sent to support@hms.com. For support issues, please read this help file and visit our web site first. There is an online FAQ there answering the most commonly asked questions regarding iSpeed and it's use. There is also a discussion area there for you to ask your questions. We monitor it daily and participate in the discussions. We will answer your question there, and if you can assist another user there, please feel free to jump right in! Email support requests should be sent only to ispeed@hms.com and not to support@hms.com.

Our web site also contains special forms for the sending of bug reports, help requests and suggestions as well as a discussion area that is open for public discussions regarding all of our software products. The links are at http://www.hms.com/products.htm


Registry Entries

Following are the registry entries that iSpeed manipulates under Windows 95/98:

MTU: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\00xx\MaxMTU  (where xx is the profile number)

RWIN:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\DefaultRcvWindow

MSS:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\DefaultMSS

TTL:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\DefaultTTL

MTU Auto Discovery:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\PMTUDiscovery

Black Hole Detect:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\PMTUBlackHoleDetect

Following are the registry entries that iSpeed manipulates under Windows NT 4.0:

MTU: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NdisWanx\Parameters\Tcpip\MTU  (where x is the profile number)

RWIN:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\TcpWindowSize

MSS:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\TcpRecvSegmentSize

TTL:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\DefaultTTL

MTU Auto Discovery:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\ParametersEnable\PMTUDiscovery

Black Hole Detect:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\EnablePMTUBHDetect


What's New?

26 September 1998, Version 2.70

•	Updated help file to reflect new support options.

•	The ftp testing code has been overhauled in an attempt to resolve the Access Violation and the #426 errors that some users are experiencing. Still not able to reproduce these errors on numerous machines that it's been tested on, so hopefully it will be fixed in this overhaul.

•	When iSpeed is first run, it checks for history records. If none are found, then one or more (depending on the number of TCP/IP profiles found on the system) history records are automatically created with the current settings. Please see the Getting Started section for more details.

•	Increased the password field for the ftp testing profiles to 64 characters. Previous versions has this field set at 24 characters max which was not long enough for use with quite a few email addresses, which is what is commonly used in anonymous access logins for a password.

•	You can now abort an ftp test session at any time. Previous versions only allowed the test to be aborted once the file download had begun.

•	Added back in the Windows defaults button. This will remove all values from the registry for the TCP/IP parameters that iSpeed manipulates. When Windows boots and looks for these entries and does not find them, it will use the default values as defined by Microsoft.

•	Added support for testing through a proxy server.

•	Added checks for minimum and valid value checks for numeric entries (to resolve the integer required error message some users have reported.

05 September 1998, Version 2.65

•	Due to the recent change of the hosting location for our domain (hms.com), updating of the help file and the iSpeed testing feature (for the default test download settings) required updated. The updates have been made in this release.

•	You can now save multiple Ftp Testing Profiles on the iSpeed Testing tab page. In addition to the updated default profile pointing to the download of our SpamEater Pro application from our ftp site, you can now also have an unlimited number of addition entries for testing purposes. These are now also saved, so they are available to you on subsequent runs of iSpeed.

01 September 1998, Version 2.61

•	Fixed main window display for those running with the Large Fonts setting on their system. The main iSpeed window is now sizeable and once sized will remember the new display size. Subsequent times then that iSpeed is run, it will return to the new sized and display correctly, regardless of the font setting.

28 August 1998, Version 2.60:

•	Added new feature where you can now run ftp file transfer tests from within iSpeed. During the test, iSpeed will monitor the throughput. Upon successful completion of the test, iSpeed will create a new history entry for the test and complete all the fields for the history record automatically.

•	Fixed bug which would sometimes cause an Access Violation or Range Check Error when clicking the Use Settings button on the History tab.

•	Max history items used to be set at 100. Now the only limit as to the number of history records is available RAM to store them while iSpeed is running.

•	You can now limit the graphs to only certain history records. If, on the History tab, you select more than a single record, then only the selected records will be used in the graphs. If one or no entries are selected on the History tab, then all history records will be used in the graphs.

•	Instead of aborting execution, if iSpeed can not locate any dialup networking adapters in the system that are bound to the TCP/IP protocol, then only the Max MTU setting in iSpeed are disabled. Since all other settings are global to the system, the other options are all available for manipulation. This is now consistent with the other programs such as iSpeed that are available through shareware/freeware distribution.

•	The first time you run this version on your system, iSpeed will now take a snapshot of your current settings and save them to some special files. The Default Windows Settings button is now the Restore Original Settings button. When you click it, all of your original settings (as stored in the special files) will be restored to your registry. This will put all of the registry entries that are manipulated by iSpeed back to the values they had before installing and running iSpeed on your system.

06 August 1998, Version 2.51:

•	For Windows NT 4.0 only, fixed the switching around of the RWIN and MSS values.

•	Retrieved some new information regarding the defaults (when present) for some of the NT 4.0 registry values. The Windows Defaults button, when running under NT, will now set these settings.

•	To remove any entry and it's set value from your registry, just set it's value to 0, uncheck the checkbox, or with the case of the MTU setting, choose the Remove radio button.

01 August 1998, Version 2.50:

•	Added the ability to record, track and analyze your settings and their effects on your connection throughput. A maximum of 100 history entries can be recorded, showing all of the settings and the throughput achieved. These results can then be graphed in line or bar charts letting you see exactly where your best results are achieved. Then, with the click of a button, you can reset everything to those optimal settings.

•	Added radio button to specify that the MTU setting is to be removed from the registry.

25 July 1998, Version 2.01:

•	This version just fixes a problem on systems that use Large Fonts in the display. This caused the main iSpeed window to display undersized and with scrollbars.

•	Added Tips and Tricks section to help file. If you have found some tricks to getting your optimal settings, then just email them to support@hms.com for inclusion in the online FAQ as well as this help file.

19 July 1998, Version 2.00:

•	Now supports Windows 95, 98 and NT 4.0 (workstation and server)!

•	New look to iSpeed dialog box.

•	Faster and smaller

•	Updated help file with more assistance in setup and explanations of settings.

•	Updated help file with registry entries for Windows NT (different than those for 95/98)

•	....and still freeware....

24 May 1998, Version 1.50:

•	 Instead of setting the PMTU.... values to 0 in the registry when not checked in iSpeed, the keys are now removed from the registry.

•	If DefaultRcvWin and/or DefaultMSS are set to blank or 0, then their keys are removed from the registy instead of being saved as 0.

•	If iSpeed is attempted to be run under Windows NT, an error message will be displayed and the program terminated. This application is not designed for use under Windows NT.

•	Important Note: If your computer is also setup with an ethernet adapter and is connected to a network, you may find that the global values (all settings other than the MTU setting) cause inefficient network performance on your local network. In this case, uncheck the PTMU... settings, and set the RWIN and Default MSS settings to blank or 0 to remove their entries in the registry. If you are not attached to a local network, then your dialup networking throughput will benefit from using these settings.


User Tips and Tricks

Do you have a tip or trick that you found useful in determining your optimal settings using iSpeed? If so, feel free to send them to us at support@hms.com, and we'll include them in the online FAQ as well as in the help file here.

Submitted by J. Lehmann, Aachen, Germany:

Discovering the maximum MTU manually:

Just type into the DOS-box:

PING -f -l xxxx <your.provider.com>

with xxxx as your start-MTU of about 576. You might get an error "Packet needs to be fragmented but DF set.". Lower the packet-size for the ping until it fullfills a correct ping. If it already performs a correct ping with this value just raise it until you reach the maximum packet-size for the "MTU".


What's Next?

•	Add internal editor for the Windows system HOSTS file.

•	Your suggestions?


Restoring Original Settings

If iSpeed version 2.7 is the first version you've run on your system, then when you first run it, history records are automatically created with your current system settings. If you wish, at any time to restore your original settings, just go to the History tab, highlight the settings  that were automatically created and then click the Use Settings button and then the Save button.

If you ran previous versions, then, hopefully, you followed the information in the Getting Started section of this help file and saved your settings to history records before making any changes. If so, you can follow the same instructions above for restoring those settings. Otherwise, you'll either need to restore your settings from saved .REG files, tape backup, Emergency Repair Disk, or remove and reinstall TCP/IP. Note that in the later option, removing TCP/IP from your system does not necessarily remove all of the TCP/IP parameter registry entries. This is well documented by Microsoft. You can visit the Microsoft support web site at http://www.microsoft.com/support to access the Knowledgebase for instruction on completely removing TCP/IP from your system.


Restoring Windows Defaults

Clicking the top button on the right side of the iSpeed window will cause Windows to use it's default parameter values. This is accomplished by removing the entries that iSpeed manipulates from your registry. When Windows boot and initializes TCP/IP, it will look for these entries. When it does not find them in your registry, it will revert back to using it's default values for all of these parameters, as determined by Microsoft.