home *** CD-ROM | disk | FTP | other *** search
/ InterCD 2000 July / july_2000.iso / Accelerators / HAGBOOST / HAGBOOST.EXE / %TEMP% / %READMEFILE% next >
Encoding:
Text File  |  2000-06-11  |  16.3 KB  |  137 lines

  1. Hagai's Boost
  2. For 32-bit Windows Development
  3. Version 1.0 FREEWARE
  4.  
  5. hagai@hagai.8m.com
  6. http://hagai.8m.com
  7. ICQ# 17140207
  8.  
  9. guy@h-team.8m.com 
  10. http://h-team.8m.com 
  11. ICQ# 22354896 
  12.  
  13. Welcome
  14.  
  15. Hagai's Boost  is a utility that allows you to modify the various configuration  parameters used by the Microsoft TCP/IP stack under  Windows 95/98 . By adjusting the  settings for the dial-up networking adapters installed on the system, you can optimize your  connection to the Internet and improve the performance of your Internet connection. 
  16.   
  17. How Does It Work? 
  18.   
  19. For some unknown reason, Windows 95 uses only default settings of 1500 for MaxMTU,  8192 for RWIN, 32 for TTL, which are generally inefficient for dialup Internet connections.  Hagai's Boost is designed to automatically change certain Windows default settings  to eliminate fragmentation of data packets promoting faster Internet data transfer rates. This  translates into faster browsing, quicker downloads, and improved Internet performance. 
  20.   
  21. All data on the Internet is broken into what are called packets (also called datagrams).  Each TCP packet consists of a 40 byte header, which includes routing information, and the  actual data that is being sent or received (called the data segment). Unless the sender and  receiver of that data are on the same network, the packet must be routed through one or  more intermediary systems which are responsible for forwarding it on to it's ultimate  destination. And because of the nature of the Internet, there is no guarantee that two  packets, both having the same sender and destination, will follow the same route. 
  22.  
  23. Maximum Transmission Unit (MTU) 
  24.   
  25. Each of these intermediary hosts are configured to handle what is called a Maximum  Transmission Unit (MTU), which is the number of bytes that it will send as one packet.  When a host receives a packet that is larger than it's MTU, it will break the large packet into  multiple smaller ones, each with their own header and data (which is then reassembled by  the receiver). Every time a connection is opened between two computers on the Internet,  they must agree on an MTU. This is done by comparing both of their 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. For  example, if your computer has an MTU of 1500 and sends a 1500 packet to a router with an  MTU of 576, the packet will exceed the router's MTU, so it is split into three separate  packets and forwarded on. Since 1500 is not evenly divisible by 576, the third packet only  contains the last fragment of the original packet. And since each packet must be  acknowledged by the receiver, this kind of fragmentation can have a noticeably negative  effect on your connection speed. 
  26.  
  27. Maximum Segment Size and Receive Window 
  28.   
  29. When a TCP connection is being established, the sender and requester negotiate the  maximum data segment size that will be accepted by both hosts. This value, called the  Maximum Segment Size (MSS) is different from the MTU because it only addresses the  maximum size of the data portion of the packet, and does not include the header. If each  data segment, along with the header, does not exceed the smallest MTU as it is being  routed to it's destination, then it will not be fragmented. Therefore, because the size of a  TCP header is 40 bytes, the MSS is calculated as MTU minus 40. In turn, the MSS value is  useful in determining the size of the receive window (RWIN), which is the maximum number  of bytes of data that can be buffered, pending the receipt of an acknowledgment packet  back from the sender. Typically, the RWIN value should be a multiple of 2-10 times the  MSS value. For example, a good RWIN value for a system with an MTU of 576 (and an  MSS of 536) would be 2144 (536 * 4). 
  30.   
  31. Time To Live 
  32.   
  33. Last, but not least, each IP packet contains an 8-bit header field that specifies the Time To  Live (TTL) for that packet. Implemented as a safeguard against packets looping between  routers, it specifies the maximum number of routers that the packet may be forwarded  through to it's destination. Each time the packet is forwarded the TTL value is decremented  by one, and if the value drops to zero, the packet is rejected. If this happens, ideally an  ICMP (Internet Control Message Protocol) packet is be sent to the receiver, indicating that  the TTL expired and it's value would be dynamically adjusted for retransmission. In reality,  however, this is rarely implemented and most systems are configured with a fixed value of  around 30. 
  34.   
  35. Improving Performance 
  36.   
  37. There are three specific problems with the way Windows defaults to certain TCP/IP  settings. By changing these defaults, you can improve performance, in some cases  dramatically,  of your Internet connection. For example: 
  38.   
  39. Under Windows 95, the default MTU value is 1500, which is the optimal for Ethernet  networks, but not dial-up modems. That's because many hosts on the Internet are  configured with an MTU of 576, which causes size 1500 packets to be fragmented. This is  not typically an issue with Windows NT since it uses what is called PMTU discovery, a  process where it automatically determines the best segment size of each connection that is  established. Although you can explicitly set the MTU value for Windows NT, in some  cases doing so can actually hurt performance instead of improving it. 
  40.   
  41. The default Windows RWIN value is 8192, which is not evenly divisible by the default MSS  value of 1460 (remember, the MSS value is the MTU minus 40). This means that as the  receive buffer fills, it cannot store a complete packet, forcing that packet to be resent  (sometimes again and again). Like MTU, this value is dynamic under Windows NT.  
  42.   
  43. And finally, the Windows default TTL value of 32 is appropriate for local networks, but it is  insufficient for the Internet. The Time to Live or 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. The Windows default TLL  value is 32, which specifies that the maximum number of routers that a packet may be  forwarded through on to its destination be 32 or less. However, with the rapid expansion of  the Internet and the increasing number of sites that a packet must be routed through, this is  worth changing to a larger setting of 64 or higher. 
  44.   
  45. What's the best value to set these parameters to? Each system is different, so there are no  hard and fast rules. However, good default values that all systems should be able to use  are an MTU of 576 (which means an MSS of 536), an RWIN of 2144 (MSS x 4) or 4288 (MSS  x 8) and a TTL of 64. You may want to experiment with these values to see which gives you  optimal performance, based on your service provider, modem speed, etc. 
  46.   
  47. Optimal Configuration 
  48.   
  49. Using the Hagai's Boost utility, what is the optimal configuration for dial-up networking adapters? For Windows 95/98, we recommend the following settings: 
  50.  
  51. MTU: 576
  52. RWIN: Multiple x4
  53. TTL: 64 recomended 
  54. PMTU:Auto Detection: ON (checked) 
  55.      Black Hole Detection: OFF (unchecked) 
  56.  
  57. Remember, each system is different, so there are no hard and fast rules. However, good  default values that all systems should be able to use are an MTU of 576 (which means an  MSS of 536), an RWIN of 2144 (MSS x 4) or 4288 (MSS x 8) and a TTL of 64. You may want to  experiment with these values to see which gives you optimal performance, based on your  service provider, modem speed, etc. 
  58.   
  59. System Requirements
  60.  
  61. Pentium processor 
  62. 16 MB of  RAM  
  63. 3 MB free hard disk space  
  64. Microsoft Windows 95 or 98 
  65. 256 colors monitor  
  66. Modem
  67. RunTime DLLs
  68.  
  69. RunTime DLLs 
  70.   
  71. This program is written in Visual Basic 6.0 and required RunTime DLLs (MSVBVM60.DLL &  OLEAUT32.DLL) you can dawnload them from: http://hagai.8m.com
  72.  
  73. Maximum Transmission Unit (MTU) 
  74.   
  75. All data on the Internet is broken into what are called packets (also called datagrams).  Each TCP packet consists of a 40 byte header, which includes routing information, and the  actual data that is being sent or received (called the data segment). Unless the sender and  receiver of that data are on the same network, the packet must be routed through one or  more intermediary systems which are responsible for forwarding it on to it's ultimate  destination. And because of the nature of the Internet, there is no guarantee that two  packets, both having the same sender and destination, will follow the same route. 
  76.   
  77. Each of these intermediary hosts are configured to handle what is called a Maximum  Transmission Unit (MTU), which is the number of bytes that it will send as one packet.  When a host receives a packet that is larger than it's MTU, it will break the large packet into  multiple smaller ones, each with their own header and data (which is then reassembled by  the receiver). Every time a connection is opened between two computers on the Internet,  they must agree on an MTU. This is done by comparing both of their 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. For  example, if your computer has an MTU of 1500 and sends a 1500 packet to a router with an  MTU of 576, the packet will exceed the router's MTU, so it is split into three separate  packets and forwarded on. Since 1500 is not evenly divisible by 576, the third packet only  contains the last fragment of the original packet. And since each packet must be  acknowledged by the receiver, this kind of fragmentation can have a noticeably negative  effect on your connection speed. 
  78.   
  79. The Maximum Transmission Unit value is the maximum number of bytes that will be sent in  a single packet. Under Windows 95, the default value is 1500, which is not recommended  for dial-up connections. Instead, it is recommended that this value be set to 576. The  following options may be selected: 
  80.  
  81. Dial-up (576) 
  82. This sets the MTU value to 576, the optimal value of dial-up Internet connections. 
  83.   
  84. Local Area Network (1500) 
  85. This sets the MTU value to 1500, which is the default for Windows 95. This value is optimal  for Ethernet networks, but is not recommended for Dial-Up Networking connections since it  can result in packet fragmentation. 
  86.  
  87. Custom 
  88. This allows you to specify a custom MTU value. This is not recommended unless you fully  understand the implications of using a non-standard value.
  89.   
  90. Receive Window (RWIN)
  91.  
  92. When a TCP connection is being established, the sender and requester negotiate the  maximum data segment size that will be accepted by both hosts. This value, called the  Maximum Segment Size (MSS) is different from the MTU because it only addresses the  maximum size of the data portion of the packet, and does not include the header. If each  data segment, along with the header, does not exceed the smallest MTU as it is being  routed to it's destination, then it will not be fragmented. Therefore, because the size of a  TCP header is 40 bytes, the MSS is calculated as MTU minus 40. In turn, the MSS value is  useful in determining the size of the receive window (RWIN), which is the maximum number  of bytes of data that can be buffered, pending the receipt of an acknowledgment packet  back from the sender. Typically, the RWIN value should be a multiple of 2-10 times the  MSS value. For example, a good RWIN value for a system with an MTU of 576 (and an  MSS of 536) would be 2144 (536 * 4). 
  93.   
  94. The Receive Window (RWIN) value is the maximum number of bytes of data that can be  buffered, pending the receipt of an acknowledgment packet back from the sender.  Typically, the RWIN value should be a multiple of 2-10 times the maximum segment size  (MTU-40). 
  95.  
  96. Default (8192) 
  97. This sets the RWIN value to the Windows default. Under Windows 95, this value is 8192,  which should not be used (because it is not evenly divisible by the default maximum  segment size, it can force the packet to be resent repeatedly when the buffer is full). You  can improve performance by setting this to a lower value such as 4 times your MSS (MSS =  MTU - 40). 
  98.   
  99. Multiple 
  100. This allows you to set the RWIN value to a specific multiple, with the actual value  calculated using the MTU value. It is recommended that you set the multiple to 4 or 8. 
  101.  
  102. Custom 
  103. This allows you to specify a custom RWIN value. This is not recommended unless you  fully understand the implications of using a non-standard value. 
  104.  
  105. Time To Live (TTL) 
  106.  
  107. Each IP packet contains an 8-bit header field that specifies the Time To Live (TTL) for that  packet. Implemented as a safeguard against packets looping between routers, it specifies  the maximum number of routers that the packet may be forwarded through to it's destination. Each time the packet is forwarded the TTL value is decremented by one, and if the value  drops to zero, the packet is rejected. If this happens, ideally an ICMP (Internet Control  Message Protocol) packet is be sent to the receiver, indicating that the TTL expired and it's  value would be dynamically adjusted for retransmission. In reality, however, this is rarely  implemented and most systems are configured with a fixed value of around 30. 
  108.   
  109. TTL is a field in the IP header which indicates how long a packet should be allowed to survive  before it is discarded. This value specifies the maximum number of routers that a packet may  be forwarded through on to its destination. TTL essentially determines the maximum number  of hops permitted. Windows default is 32, but with the Internet growing larger all the time, it is  worth changing it to the larger setting of 64. 
  110.   
  111. Default (32) 
  112. This sets the TTL value to the system default, which is 32. Although this value is appropriate  for local networks, it is insufficient for the Internet. An optimal value is 64, and recommended  for both Windows 95 and Windows NT. 
  113.   
  114. Recommended (64) 
  115. This sets the TTL value to the optimal value for the Internet, which is 64. 
  116.   
  117. Custom 
  118. This allows you to specify a custom TTL value. The minimum value that you can specify is 32,  the maximum value is 255. 
  119.   
  120. Path Maximum Transmission Unit (PMTU) 
  121.   
  122. Auto Detection 
  123. Auto Detection is Enabled by Default. This option enables the system to automatically  determine the Maximum Transmission Unit (MTU) value and detect routers which do not  return appropriate ICMP messages under some conditions. 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 is supposed to be able to eliminate fragmentation at routers along the path that connect  networks with different MTUs. This requires implementation of the corresponding server side  algorithm, however, and presupposes all of the servers on the entire Internet only running  MSFT server software with server-side optimization features accessible from MSFT  web-browser client software. However, it is not recommended to disable this setting as it  would then cause 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 may not be compensated for. 
  124.   
  125. Black Hole Detection 
  126. Black Hole Detection is Disabled by default. Enabling this option forces the system to try to  detect black hole routers. Black hole routers are routers that do not send back ICMP (Internet  Control Message Protocol) fragmentation-needed messages while automatically determining  the optimal MTU value. This increases the maximum number of retransmissions performed  for a given segment. Setting this parameter when it is not needed can cause performance  degradation. So it is not recommended that you enable this option unless you understand the  implications of doing so. 
  127.   
  128. Contact Us 
  129.   
  130. E-mail:  hagai@hagai.8m.com
  131. Web:  http://hagai.8m.com 
  132. ICQ#:  17140207 
  133. Contact Us  
  134.      
  135. E-mail: guy@h-team.8m.com 
  136. Web:   http://h-team.8m.com 
  137. ICQ#:  22354896