Title: TweakDUN Settings: Tech Doc #01 Author: Casey Patterson E-mail: pattersc@gulftel.com Company: Patterson Design Systems WebSite: http://www.gulftel.com/~pattersc/ Date: 10:57 AM 8/27/97 Subject: This document was written to help explain the function of each setting in TweakDUN v1.2. This document is a summary of all of the information that Patterson Design Sytems has researched on the internet. If you find any errors in this document, please write us with the correct information. Please enable word wrap to view this document. ================================================ Purpose of TweakDUN TweakDUN was written to help change settings in the registry that effect TCP Packet Sizes. To help improve performance in data transfer rates on the Internet, you must eliminate packet fragmentation. TweakDUN will allow you to change the necessary settings to eliminate this fragmentation. MaxMTU (Maximum Transmision Unit) This is the default packet size that Windows 95 uses to negotiate with. When a connection is opened between two computers, they must agree on an MTU. This is done by comparing MTUs and selecting the smaller of the two. If the MTU is set too large for routers that are between the computers, these routers then fragment this information into a packet size that the router can handle. This fragmentation can double the amount of time it takes to send a single packet. Windows 95 has a built-in MTU Discovery that will adjust for this by sending out a packet that is marked as "Not Fragmentable". Then the router sends back an error to the computer saying that the packet was too large, and Windows 95 then lowers the MTU until there are no more errors. If your ISP uses an MTU of 576, then every time you start a connection, Windows 95 must adjust down to this value. Even though Windows 95 automatically adjusts the packet size, it still takes it time to negotiate an acceptable MTU. By setting this value manually, you greatly reduce the amount of work that Windows must do to negotiate. NOTE: Negotiation always adjusts downwards the value you have set, never upwards. Windows 95 Default is 1500. PMTU Auto Discovery Enabling this setting causes TCP to attempt to discover the Maximum Transmission Unit (MTU or largest packet size) over the path to a 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 MTUs. As stated above, fragmentation adversely affects TCP throughput and network congestion. Disabling this setting causes an MTU of 576 bytes to be used for all connections that are not to machines on the local subnet. Disabling this setting can cause severe performance degradation because fragmentation will not be compensated for. PMTU Auto Discovery is Enabled by Default. PMTU Black Hole Detect This specifies whether the stack will attempt to detect Maximum Transmission Unit (MTU) routers that do not send back ICMP fragmentation-needed messages. ICMP (Internet Control Message Protocol) is defined in STD5, RFC 792. With this feature enabled, TCP will try to send segments without the Don't Fragment bit set if several re-transmissions of a segment go unacknowledged. If the segment is acknowledged as a result, the MTU will be decreased and the Don't Fragment bit will be set in future packets on the connection. Enabling black hole detection increases the maximum number of re-transmissions performed for a given segment. Setting this parameter when it is not needed can cause performance degradation. However, if the router is not sending back the ICMP messages, then PMTU Discovery will not work. This can cause an even greater loss of performance. PMTU Black Hole Detect is disabled by default. RWIN (TCP Recieve Window) The TCP Receive Window size is the amount of receive data (in bytes) that can be buffered at one time on a connection. The sending host can send only that amount of data before waiting for an acknowledgment and window update from the receiving host. Matching the receive window to even increments of the MSS increases the percentage of full-sized TCP segments utilized during bulk data transmission. MSS is the MaxMTU - 40 bytes for TCP and IP headers. The RWIN default is 8192 bytes rounded up to the nearest MSS increment for the connection. If that isn't at least 4 times the MSS, then it's adjusted to 4 * MSS, with a maximum size of 64K. The Windows 95 Default RWIN is 8760 (1460 * 6). You can greatly improve performance by setting this to a lower value such as 4 times your MSS (MTU-40). The idea is to bring it to a value below 8192. Many people have better success with 6, 8 or even 10* MSS. In some cases, however, this may decrease performance because it takes the control away from windows, and if the MTU is negotiated to a different value, then the size of the RWIN is no longer an whole integer multiple. For this to be effective you must make sure your MTU is set where it will not be negotiated to a lower value. TTL (Time To Live) TTL is a field in the IP header which indicates how long a packet should be allowed to survive before it is discarded. TTL essentially determines the maximum number of hops permitted. Windows 95 default is 32, but with the Internet growing larger all the time, it is worth changing it to the larger setting of 64. Session Keep Alive Specifies how often to send session keepalive packets on active sessions. This will keep connections that have stalled from timing out. The minimum is 1 minute. The default is 60 minutes. TweakDUN Website: http://www.gulftel.com/~pattersc/tweakdun/ NetPro NorthWest Website: http://www.sns-access.com/~netpro/maxmtu.htm This Document was written by: Casey Patterson Author of TweakDUN