Using the program
If you do not feel like reading the entire documentation below, or you simply need the tweaks NOW, without spending time in learning the meaning of all those settings, you can use the Optimizer by following these short instructions:
– Choose your maximum Connection Speed from the slider bar (the maximum available bandwidth,
in kilobits per second)
– Choose your Network Interface, or check to Modify All Network Adapters
– Pick “Optimal settings” from the radio-buttons near the bottom of the program
– Click on the “Apply changes” button and reboot
The Optimizer can do all the rest for you (including a backup of the current registry
settings, so you can revert the changes if you wish). The new version of the program includes a preview of all changes after hitting the “Apply changes” button and before actually editing the Windows Registry.
You can also use the Optimizer to easily apply custom values, test with different settings, and learn a bit more about tweaking and TCP/IP in general. We strongly recommend getting familiar with the settings, and learning what aspects of your connection they affect first. Also, note that some of the program tabs (Largest MTU, BDP, Latency) can be used as a learning tool without making any changes to the Windows Registry.The 3 radio buttons at the bottom of the program show the relevant “Current settings” as set in the Windows Registry, the Optimizer recommended “Optimal settings”, or allow for “Custom settings” for the more advanced user to test with different values.Please see the following chapters for definitions and detailed descriptions of all options in the TCP Optimizer.
You should be logged in with an account with administrative privileges to be able to write to some of the Registry keys and use the program to its full potential.
This tab contains all the important tweakable TCP/IP parameters.Connection Speed (in kilobits per second) – you have to choose your maximum available bandwidth here. The Optimizer will base any “Optimal settings” recommendations on the connection speed you choose in this slider bar. Please note it is an approximation of your maximum available bandwidth, it does not have to be exact.Network Adapter selection – you should have a list of all present network interfaces in the system. When you select an adapter, using this pull-down menu, its IP address will be shown in the lower-right of this section. Note you can also choose to modify all network adapters it the same time, or tweak without modifying any of their settings.You also have the option to type a a custom MTU value (that will be used to recommend RWIN). Generally, MTU can safely be set at 1500, however some types of connections, and some routers use smaller values. It is only necessary to edit the MTU value in such special cases. For example, the maximum MTU value for Windows XP PPPoE encapsulation is 1480 (even though other PPPoE implementations can use as high as 1492).Note: In some rare cases, it is possible that your desired network device is not correctly identified by the Optimizer. That does not affect the program performance much, and you should simply choose “Modify All Network Adapters” in such cases. We’d also appreciate you contacting us with the exact device, so we can improve the program.TCP Receive Window (a.k.a. RWIN) – this buffer is the single most important factor in tweaking your TCP/IP parameters. A small RWIN value limits your maximum throughput (the server waits for acknowledgements of received packets), one much larger than needed by your connection can have a negative effect on your connection as well. Here is some history on WIN, and all the considerations in choosing an “optimal” value:
Originally, when the TCP protocol was developed, there were only 16 bits in the TCP header reserved for the size of this buffer, allowing for a maximum value of 2^16 (65535, if you start counting from 0). With faster high-latency networks this value proved insufficient, and RFC 1323 introduced additional “TCP Options”, allowing for larger RWIN values. It is accomplished by bit shifting, or multiplying the original unscaled RWIN value (up to 65535 bytes) in the TCP header by a scale factor, power of 2.The TCP Optimizer recommends an optimal TCP Window value considering all the following factors:
– Bandwidth * Delay product based on the chosen maximum connection speed and maximum anticipated latency.
– RWIN (both scaled and unscaled) multiple of MSS, for maximum optimization.
– Proper RFC 1323 scaling for RWIN values larger than 65535.
– largest optimal unscaled RWIN (MSS multiple) used for all RWIN values over 65535.MTU Discovery (RFC 1191, EnablePMTUDiscovery) – We recommend enabling (choosing “Yes”) this setting.
MTU Discovery determines whether TCP uses a fixed, default maximum transmission unit (MTU) or attempts to find the actual MTU. In some versions of Windows, if MTU Discovery is disabled the OS uses an MTU of 576 bytes for all connections to computers outside of the local subnet. If enabled, TCP attempts to discover the MTU (largest packet size) over the path to a remote host.Black Hole Detect (EnablePMTUBHDetect) – The recommended optimal setting in the TCP Optimizer is “No”.Enabling this setting causes 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 receiving these messages to perform Path MTU Discovery. With this feature enabled, TCP tries to send segments without the Don’t Fragment bit set if several retransmissions of a segment go unacknowledged. If the segment is acknowledged as a result, the MSS is decreased and the Don’t Fragment bit is set in future packets on the connection. Enabling black hole tection increases the maximum number of retransmissions that are performed for a given segment. Unless you are dealing with a relatively archaic network, or running a server, this setting does not make much visible difference, and can in fact waste bandwidth if enabled.Selective ACKs (SackOpts) – the recommended setting is “Yes”.This parameter controls whether or not SACK (Selective Acknowledgement) support is enabled, as specified in RFC 2018. SAC is especially important for connections using large TCP Window sizes.
Max Duplicate ACKs (TcpMaxDupAcks) – range is 1-3, the recommended value is 2.
This parameter determines the number of duplicate ACKs (acknowledgements) that must be received for the same sequence number of sent data before “fast retransmit” is triggered to resend the segment that has been dropped in transit.
Time to Live (TTL, DefaultTTL) – recommended value is 64.
This setting specifies the default time-to-live (TTL) value set in the header of outgoing IP packets. The TTL determines the maximum amount of time in seconds (and the number of hops) that an IP packet may live in the network without reaching its destination. It is effectively a limit on the number of routers that an IP packet is allowed to pass through before being discarded. It does not directly affect speed, however a value that’s too small can cause packets to be unable to reach distant servers at all. A very large value, on the other hand might take too long to recognize lost packets.TCP 1323 Options (TCP1323Opts) – we recommend having only “Window Scaling” enabled.This parameter controls RFC 1323 time stamps and window-scaling options. The “Window Scaling” part allows for RWIN (TCP Window) values over 65535. Timestamps add another 12 bytes to the header of each packet, and are only necessary in connections with increased packet loss.
This tab contains additional tweaks, that have a smaller, but still noticeable effect on TCP/IP performance. Generally, the tweaks on this page are not directly related to throughput. Some of the tweaks in this section of the Optimizer might be related only to specific aspects of networking, such as Web, or LAN browsing, hostname resolution speed, etc.
Internet Explorer Optimization
By default, the HTTP 1.1 specs allow for only 2 concurrent connections to a Web server. That means, while downloading a web page you can only get 2 files at a time. Note that a single page usually includes tens (sometimes hundreds) of images, each initiating a separate request to the server. Increasing the default to ~10 can provide a considerable visible boost in web page loading time, especially for broadband internet connections. There are two parameters in this section, MaxConnectionsPerServer, and MaxConnectionsPer1_0Server, corresponding to HTTP 1.1 and 1.0, respectively. We recommend setting both to the same number, between 4 and 10.
Host Resolution Priority
This section improves DNS and hostname resolution in general. It helps web pages load faster, and has negligible effect on downloads. For more information on what/how this tweak operates, check our Host Resolution Priority Tweak article. We recommend using the Optimal values (5,6,7,9). Type/Quality of Service
QoS (Quality of Service) and ToS (Type of Service) have to do with support for priority traffic