Posted:2006-03-20 By Asboulougia Number of View:19933
TCP IP OPTIMIZER ,TCPIPOPTIMZER
HELP
By :Asboulougia
Posted:2006-03-20
xtreview is your : Video card - cpu - memory - Hard drive - power supply unit source
1. Introduction
The TCP Optimizer is a program designed to provide an easy, intuitive
interface for tuning TCP and IP related parameters in the Windows Registry. It
takes into account all related RFCs, the Microsoft TCP/IP implementation
oddities, verifies all Registry locations for the same TCP/IP parameters (ICS
Sharing, AOL protocol MTU, etc), only ads the necessary Registry parameters, and
overall aids in making the whole "tweaking for speed" experience a breeze. It is
downloadable from here: SG TCP
Optimizer.
In the following chapters, you will find short descriptions of all the
settings and all aspects of the functionality of the TCP Optimizer.
2. 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.
Note: 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.
3. General Settings
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 at 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 RWIN, 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 detection 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. SACK
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.
4. Advanced
Settings
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. 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.
QoS is enabled by default in Windows XP, and can limit available bandwidth in
order to accommodate high-priority traffic, when present. The Optimizer only
changes the QoS value if it is already present in the registry. It is in the
Registry only if the QoS Packet Scheduler is installed (can be added from
the Network Adapter Properties). We recommend having the QoS Packet
Scheduler uninstalled, or/and setting the QoS: NonBestEffortLimit
Optimizer setting to 0%.
ToS (Type of Service, RFC 791, RFC 1812) is a field of the IP header, designed to also carry
quality of service features, such as prioritized delivery for IP datagrams. It
is not widely used, and it has been redefined and superseded by a newer standard
called Differentiated Services (DiffServ) and defined in RFC 2474 , RFC 2475, RFC 2597, RFC 2598. DiffServ
increases the number of definable priority levels by reallocating bits of an IP
packet for priority marking. The TCP Optimizer allows for ToS/DiffServ editing,
although it is an advanced setting, probably beyond the scope of regular
residential broadband tweaking. If you feel comfortable editing this value, you
might also want to note possible conflicts with using some ToS values in a
DiffServ environment, as described in RFC 2873.
ToS is only available if ToS: DisableUserTOSSetting is present, and
set to "0" in the Optimizer. If enabled, the ToS: DefaultTOSValue can be
set to a specific number, (which is probably beyond the scope of this help file,
but is somewhat explained below - feel free to read the related RFCs referenced
above for more info). If we must make a recommendation, here are some good
DefaultTOSValue numbers that are valid, and with high precedence in both
ToS and DiffServ environments: 100 010 00 binary, "136" decimal (for ToS,
you get flash override precedence, high throughput, normal cost. For DiffServ,
you get AF41 - class 4 traffic, low drop probability). 101 110 00 binary,
"184" decimal (for ToS, you get critical precedence, low delay, high
throughput, normal cost. For DiffServ, you get EF - Expedited Forwarding, high
priority traffic, but with higher drop probability).
The tables below explain the ToS and DiffServ values in more detail so you
can choose your own numbers
Note: The field is 8 bits in the IP header, first 3 define precedence,
then one each for delay, throughput, reliability, cost and a checking bit as
illustrated by the table above.
DiffServ Field:
bit 0
1
2
3
4
5
6
7
DSCP (Differentiated Services
Codepoint)
Class selection is in the first 3 bits, and maps directly
to the IP Precedence bits from the ToS table above.
CU
Currently unused, best kept at 00 for
backward compatibility with ToS.
DiffServ Codepoints (first 6 bits) in order of precedence:
Name
Space (value)
RFC
notes
CS0
000000 (0)
2474
class 0, default
CS1
001000 (8)
2474
class 1 - similar forwarding behavior to the ToS Precedence
AF11
001010
(10)
2597
AF
(Assured Forwarding) class 1 - low drop precedence
AF12
001100
(12)
2597
AF
class 1 - medium drop precedence
AF13
001110
(14)
2597
AF
class 1 - high drop precedence
CS2
010000 (16)
2474
class 2 - similar forwarding behavior to the ToS Precedence
AF21
010010
(18)
2597
AF
class 2 - low drop precedence
AF22
010100
(20)
2597
AF
class 2 - medium drop precedence
AF23
010110
(22)
2597
AF
class 2 - high drop precedence
CS3
011000 (24)
2474
class 3 - similar forwarding behavior to the ToS Precedence
AF31
011010
(26)
2597
AF
class 3 - low drop precedence
AF32
011100
(28)
2597
AF
class 3 - medium drop precedence
AF33
011110
(30)
2597
AF
class 3 - high drop precedence
CS4
100000 (32)
2474
class 4 - similar forwarding behavior to the ToS Precedence
AF41
100010
(34)
2597
AF
class 4 - low drop precedence
AF42
100100
(36)
2597
AF
class 4 - medium drop precedence
AF43
100110
(38)
2597
AF
class 4 - high drop precedence
CS5
101000 (40)
2474
class 5 - similar forwarding behavior to the ToS Precedence
EF
PHB
101110
(46)
2598
Expedited
Forwarding (recommended for video/audio - high priority, higher drop
probability)
CS6
110000 (48)
2474
class 6 - similar forwarding behavior to the ToS Precedence
CS7
111000 (56)
2474
class 7 - similar forwarding behavior to the ToS
Precedence
Notes: Higher class traffic takes precedence. Values not in the above
table can get reset to the default (0), or have the connection reset. The above
'Codepoints' table includes only the first 6 digits of the value, which is not
directly suitable for use in the Optimizer. You should append two more digits as
per the ToS/DiffServ Field tables above, and convert to decimal for use with the
program.
Some routers may change, or reset the ToS/DiffServ value to 0
regardless of the setting.
DNS Error Caching Windows has built-in
DNS (Domain Name System) caching, which basically caches resolved hostnames for
faster access and fewer DNS lookups. This is generally a great feature, with the
only downside that failed DNS lookups get cached by default as well... When a
DNS lookup fails (due to temporary DNS problems), Windows still caches the
unsuccessful DNS query, and in turn fails to connect to a host regardless of the
fact that the DNS server might be able to handle your lookup seconds later. One
can manually flush failed DNS lookups by typing ipconfig /flushdns in Command
prompt... Or you can simply set the 3 values in the Optimizer to "0", and it
will set the relevant Registry settings.
Note: Seems Microsoft changed the
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\NegativeCacheTime
Registry entry in Windows 2000to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\MaxNegativeCacheTtl
in Windows XP and 2003 server. We have updated this in the 2.02 version of the
program.
LAN Browsing speedup (disabling the
Network Task Scheduler) This tweak disables searching networked computers for
scheduled tasks (when set to "Optimized" in the program). It reduces the long
wait when opening network folders, and speeds up LAN browsing.
LAN Request Buffer Size
(reduces network delay) In higher latency Networks, delays may be encountered
with the default request buffer size (4356 decimal). The range of this parameter
is 1024 - 65535 bytes. Testing has shown that, in most standard Ethernet
environments, if memory is available 16384 bytes is a better choice. This tweak
only applies to LANs, and helps with slow browsing of large directories.
5. Largest
MTU
This section aids in finding the largest possible non-fragmented packet
between your PC, and a server. You can specify an URL, click Start, and have the
program ping the specified server with different packet sizes, until it finds
the largest possible packet before fragmentation occurs. The largest
non-fragmented MTU is important in that it represents the optimal MTU value on
that particular path.
A large MTU value helps in maximizing data vs. header size for a particular
data segment. Fragmentation and reassembling of packets can cause slowdowns, and
introduces more header overhead as well. That is why the largest non-fragmented
MTU value for your network connection is a significant factor in tweaking. Once
the program finds the largest non-fragmented packet, it can be plugged in the
MTU value in the General Settings tab.
Note that for this to work, it is best to set your MTU value to 1500
temporarily, since the largest non-fragmented MTU us also bound by the MTU value
on your end.
6. BDP (Bandwidth * Delay
Product)
This section contains a Bandwidth * Delay calculator. The BDP is a very
important concept in TCP/IP Networking. It is directly related to the TCP Window
(RWIN) value, in that it represents a limit to the possible throughput. BDP
plays an especially important role in high-speed / high-latency networks, such
as most broadband internet connections. It is one of the most important factors
of tweaking TCP in order to tune systems to the type of network used.
The Bandwidth*Delay Product, or BDP for short determines the amount of data
that can be in transit in the network. It is the product of the available
bandwidth and the latency, or RTT.
The BDP simply states
that:
BDP (bits) = total_available_bandwidth (bits/sec) x round_trip_time
(sec)
or, since RWIN/BDP is usually in bytes, and latency is measured in
milliseconds:
BDP (bytes) = total_available_bandwidth (KBytes/sec) x
round_trip_time (ms)
What does in all mean ? The TCP Window is a buffer
that determines how much data can be transferred before the server waits for
acknowledgement. It is in essence bound by the BDP. If the BDP (or RWIN) is
lower than the product of the latency and available bandwidth, we can't fill the
line since the client can't send acknowledgements back fast enough. A
transmission can't exceed the (RWIN / latency) value, so RWIN needs to be large
enough to fit the maximum_available_bandwidth x maximum_anticipaded_delay.
7. Latency
This section of the program is simply a tool for testing the latency of your
network/internet connection. You can choose a number of hosts, a number of pings
per host, and ICMP packet size. After clicking start, the tool will
consecutively ping all hosts, then provide maximum and average latency
measurements in milliseconds, as well as packet loss indication (if
present).
Note than larger packets have a bit higher latency, and RTT varies with time
of day, network congestion, etc. Also, some nodes might choose to drop repeated
ICMP requests when congested, or ignore them all together.
8. Registry
This section of the Optimizer has been improved to include an actual Registry
Editor. It is a direct interface to the Windows Registry, and only intended for
advanced use ! Please only use it carefully, and at your own risk.
Note that the Registry editor only includes TCP/IP, and some related hives of
the Windows Registry.
To use it, simply navigate to the appropriate key you wish to edit in the
left section of the editor, then work in the right section, by either choosing a
value/key and editing it, or adding a new one. All available actions for the
currently active window/key/value are reachable by right-clicking on them.
9. Menus
The File Pull-down menu contains a number of
options for backing up, as well as exporting and importing all the related TCP
Optimizer settings. Those options can be shared between users, they contain
information about empty keys, values to remove/add/edit and all relevant
parameters to clone the exact state of the related settings to another machine,
or save them for your own reference later.
The Preferences menu, pictured on the
right has two sections. The first one, "Maximum Latency" is a number in
milliseconds, that is used in calculating the optimal RWIN value. It affects all
the "Optimal settings" recommendations of the program, so if you're not sure
what it does, leave it at the default 500ms. Basically, the larger this number,
the larger RWIN values the program is going to recommend under "Optimal
settings" for the same connection speed, and vice versa.
The second section in the Preferences menu, "Latency tab: hosts to ping"
contains a list of URLs, used in the Latency section of the program for
measuring current RTT (round trip time, delay, ping, latency) to multiple
hosts.
The Help Menu of The Optimizer simply contains a link to this
documentation, as well as the Software License Agreement, and some general
information about the program.
xtreview is your : Video card - cpu - memory - Hard drive - power supply unit source
we would be happy to answer for your question . if you have suggestion or comment
regarding this review our support would be glad to help just join our forum and ask u will get the best answer
to discuss check our forum section :-)