|
Home | Reviews | Speed Test | Tools | News | Forums | Info | About | Join |
4. MTU
MTU (Maximum Transmission Unit) will vary with connection type. Cable and non-PPPoE (Point to Point Protocol Over Ethernet) can use up to 1500. PPPoE connections (WinPoet, RASPPPOE, Enternet, etc.) can only use up to 1492. However, WinPoet and Enternet MTU must be set by hand in the registry. Others may use DRTCP to set MTU. Feedback received on this FAQ entry:
by Pinan edited by JMGullett The MTU setting controls the maximum ethernet packet size your PC will send (you did know the internet works in packets, didn't you?). Why a limit? because although larger packets can be constructed and sent, Your ISP and Internet backbone routers and equipment will chop up (fragment) any larger than their limit, then these parts are re-assembled by the target equipment before reading. This fragmentation, and re-assembly is not optimal. MTU and Windows and Defaults Unless otherwise set, windows defaults MTU to 1500, or a lower value of 576 for external networks. 1500 is ok unless you are running PPPoE, or want to use IPSec (Secure VPNs), or both, (it is then too big). 576 is not efficient for the broadband/internet, (it is too small). Finding the largest MTU, by EXPERIMENT If your MTU is too low already, (maybe 576), the following method will not be able to detect whether you can switch to an optimal size..... So first follow "CHANGING MTU for PPPoE" to reset MTU to 1500, reboot, then come back to this! The best value for MTU is that value just before your packets get fragmented. How do you find out that? By using Ping at an MSDOS command prompt. Go to Start/ Programs/ MSDOS-PROMPT, and type.... ping -f -l 1472 www.dslreports.com (That is a dash-ell not a dash-one. Also note the spaces in-between the sections) Press Enter. Then reduce 1472 by 10 until you no longer get the "packet needs to be fragmented" error message. Then increase by 1 until you are 1 less from getting "packet need to be fragmented" message again. Add 28 more to this (since you specified ping packet size, not including IP/ICMP header of 28 bytes) And this is your MaxMTU. Note:If you can ping through with the number at 1472, you are done! Stop right there. Add 28 and your MaxMTU is 1500. ~~~~~~~~~~~~~~~~~~~~~~~~~~~ For PPPoE, your MaxMTU should be no more than 1492, to allow space for the 8 byte PPPoE "wrapper", but again, experiment to find the optimal value.. For PPPoE, the stakes are high: if you get MTU wrong, you may not just be sub-optimal, things like UPLOADING, or web pages, may stall, or not work at all! ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Windows 98/98SE (or 95 with DUN 1.3) - CHANGING MTU Use drTCP to change MTU. MTU and other OS For Linux, it is a matter of using the ifconfig command (read the main page for ifconfig). For Macintosh, your PPPoE software (MacPOET) will set the MTU correctly. Feedback received on this FAQ entry:
edited by redxii For Win95/98/98se/NT, you can use DRTCP to set MTU, as well as IPMTU. For 2K and XP, DRTCP will only set MTU for physical NIC's, and not dial-up adapters (PPPoE, PPPoA). For setting MTU for these, see this Microsoft article. For XP using the native (included) PPPoE software, see this thread. Feedback received on this FAQ entry:
by Pinan edited by JMGullett Download DRTCP021.zip from here to your desktop. For MTU, using the drop-down menu in DRTCP, set your NIC (Ethernet adapter) to 1500. Tab to Apply and click it. Exit, reboot, retest and repost. If you use PPPoA, follow the same directions, but use your dial-up adapter instead. by Pinan edited by JMGullett by Pinan: We see WinPoet with MTUs at 1362, 1454 and 1462. Ideally, they should be 1492. This is a 3-step process to get them up to 1492. Please complete one step at a time and make sure that what should happen does happen. After step 1, MTU should be 1454, regardless of whether it was 1362 or 1462 prior to completing that step. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Step 1: To be sure that the adapters and otherwise are set to default and well prepared for what is to come, do this first: Download DRTCP from the top of this forum ("Links") to your desktop. Open it and enter 18000 (starting point) for TCP Receive Window (RWIN). Set everything else to Default with the tabs. Then clear TTL and Max Duplicate ACKs. Using the drop-down menu in DRTCP, set your basic dial-up adapter (usually simply named "Dial-up adapter") to 1492. Set any other dial-ups to 0, then clear (blank) any value showing for NICs (Ethernet adapters). Tab to Apply and click it. Exit, reboot, retest and repost. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If MTU is now 1454 on Tweaks Tester readout (not DRTCP), move on to step 2. If not, find out why. Note: Your MTU should now be 1454 (not 1492), which is fine. (If yours was 1362, then this is very good.) Step 2: Here is a new tweak just for WinPoet. It allows the user to break that 1454 barrier. Go to Start/Run and type in "regedit" (no quotes). Click OK and then click down through here: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net\000n (Where "n" is a number like 0001, 0002, etc.) Look for the 000? folder with the "iVasion PoET Adapter" in it. (To the left of which will say "DriverDesc.") You should see TunnelMode = 1. Double click on TunnelMode and change the 1 to a 0. Reboot, retest and you should now have an MTU of 1492. Note: Some lines do not support this step. If you cannot connect after setting Tunnelmode to 0, simply reset it to 1. This will leave your MTU at 1454. There is no other way to raise it to 1492. Note: This setting is not available in Win2K/XP. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If all went well, and MTU is now indeed 1492, run this ping test to ensure that your line supports MTU of 1492. Step 3: To find the correct MTU (maximum transmission unit) for your line, do this: Go to Start/ Programs/ MSDOS-PROMPT, and type: ping -f -l 1464 www.dslreports.com (That is a dash lower case "L," not a dash "1." Also notice the spaces in between each section.) Press Enter. Then reduce 1464 by 10 until you no longer get the "packet needs to be fragmented" error message. Then increase by 1 until you are 1 less away from getting "packet need to be fragmented" message again. Add 28 more to this (since you specified ping packet size, not including IP/ICMP header of 28 bytes), and this is your MaxMTU. Note: If you can ping through with the number at 1464, you are done. Stop right there. Add 28 and your MaxMTU is 1492. edited by JMGullett The thing with NTS Enternet is that you can not use DrTCP to tweak the MTU (it will work for everything else, though). Another thing is that NTS has limited the MTU (or, as they call it, the MaxFrameSize) to a maximum of 1454. Here's what you should do to give you the broadest range for your "possible" MTU. 1. You have to tweak the registry. Remember NTS has limited the MTU to 1454, while the PPPoE Maximum is 1492. Although this small increase will do you no good if you don't actually have an MTU greater or equal to 1454, it still widens your MTU's upper bound. Go to Start/Run and type in "regedit" (no quotes), then click down through here: HKEY_LOCAL_MACHINE/System/CurrentControlSet/ Services/Class/Net/000n/Ndi/params/MaxFrameSize/"max" (Where "n" is a number and the registry directory for your Network Telesystems PPPoE Adapter (NTSP3) adapter.) It's the one with the actual MaxFrameSize string (this is not the one you edit). Now the thing that you want to modify is the "max" string in that 000n directory. Change that to 1492. Now reboot. ~~~~~~~~~~~~ (To be sure that you put the settings in the correct places, go to: Here and download some pictures of the registry.) ~~~~~~~~~~~~ 2. OK, now that the upper limit on your MTU is good, it's time to set it. Go to: Start Settings Control Panel Network Network Telesystems Enternet PPPoE Adapter (NTSP3) Click on the advanced tab Do you see that thing called "MaxFrameSize"? Change that to 1492. Now reboot. ~~~~~~~~~~~~~~~~~ For Win2K/XP users, this appears to be the proper place to set MTU: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\000n MaxFrameSize = "1486" - where n = the key containing this entry: DriverDisc = "Efficient Networks..." 1486 appears to be the maximum MTU settings for Win2K/XP using Enternet software. See this thread for more details. Feedback received on this FAQ entry: by Pinan edited by JMGullett As of 10/15/01, there is no known way to raise MTU in WinXP from 1480. This issue is seen only by WinXP users who are connecting with the built-in PPPoE connection software. If you change to RASPPPoE, or use a router instead, your MTU should then default to 1492. RASPPPoE is popular, free and less problematic than WinPoet (another choice). This small difference (12 bytes) in MTU is negligible, however, and should cause no concern. Check back from time to time, though, for a "fix." by Pinan For Cable or non-PPPoE DSL: If your MTU is stuck at 1476 (should be 1500), then you should choose a firmware earlier than 1.36.x or later than 1.38. (If older, you need to weigh this against any benefits that can be attributed to the newer firmware.) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For DSL w/PPPoE: With firmware 1.36 or 1.37, you need to set your NICs MTU to 1492 or less, which will result in an MSS of 1436 (MTU 1476). If you have a firmware version earlier than 1.36 or later than 1.38, then also set your NICs MTU to 1492 or less, though your MSS will then be 1452 (MTU 1492). Failure to do this will lead to unnecessarily small packets -- your MSS/MTU will be cut to 1322/1362. You will have no control over what your upload MTU is. The Tweak test will continue to show that your "Max size packet recd" is 1362. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Different firmware versions are available in the Linksys Forum FAQ here. Or, you can get the newest versions here at the Linksys site. PPPoE users: Use DRTCP021.exe to make NIC MTU adjustments. ~~~~~~~~~~~~~~~~~~~~ With Firmware Version 1.38.4 and PPPoE, you should disable the MTU option in the router and set your NIC with DRTCP19 to 1492. This will eliminate the router's clipping of the MTU. As of 4/15/01, firmware version 1.38.5 and 1.38.6 (as well as later versions) eliminate the MTU problem. Enable the router's MTU option and set it to 1492 (for PPPoE users) and set the NIC to 1492 also. by Pinan edited by JMGullett According to Microsoft, a Remote Access Service is a "private ISP." As the name implies, Remote Access Service enables you to log on to your network via a dial-up connection. Once you're logged on, you can do anything that you could do if you were logged on to a computer that's physically attached to the network. You can accomplish anything with RAS that you could if you were physically at the server. This applies only to Windows 2K,XP, and NT 3.51/4.0. Only set MTU in the Dial Up (RAS) MTU field if you use this. by redxii edited by JMGullett Telnet to the router by doing this: Go to Start/Run, then type telnet 192.168.0.1 and click OK button. Now enter your password (the original is 1234). You will get a menu. Go to menu 24.8 (type 24 Enter, 8 Enter). This brings command line interface. At command prompt, type the following command followed by Enter: ip adj wanif0 1452 This will increase the current MSS limit to 1452, hence the tweak test will report Max Packet Size as 1492. The catch is that every time your PPPoE disconnects and reconnects it will revert back to MSS limit of 1400 (Max packet size of 1440) and needs to be entered after PPPoE connects again. This command does not work before PPPoE connects. Update: With Netgear firmware version 3.25 and later you can set the PPPoE MSS limit in a sticky way by using the following command (again via 24.8): ip adjmss 1452 This will keep PPPoE MSS limit at 1452 between disconnects. If you would like to make it boot-safe as well, you must add the above command to the end of autoexec.net file within the router. To view autoexec.net file, you can type sys view autoexec.net command. To edit, type sys edit autoexec.net. The editor is a very simple line editor (like ed in Unix or edlin in early DOS). Editor commands are provided on the screen when you enter the command line editor. Please note that the ip adjmss 1452 command is not effective until current PPPoE connection is dropped and reconnected. In other words, it is only applicable for future PPPoE connections. Log off, then reconnect before the setting will "take." by Pinan edited by JMGullett At this time, you cannot change the MTU past 1440 in a PPPoE connection. It will default to 1440. Hopefully in time Netgear will release a new firmware that will let you change this setting. Feedback received on this FAQ entry:
by MgA_ODEN edited by JMGullett How to raise the MTU setting on the SMC and AMIT router using PPPoE (it may also work on the Asante router): This will only work with firmware version 1.91A or later . Go to the main setup page and login with password; default password is "admin" (no quotes). 192.168.123.254 (default) 192.168.123.254:88 (if remote admin is enabled) Go to the system parameter page. 192.168.123.254/sysp.htm (default). 192.168.123.254:88/sysp.htm (if remote admin is enabled). In the MTU for PPPoE box, change 1440 to 1492. You must save and reboot the router for the change to take effect. The NIC must be set at 1500 with DRTCP19. On firmware version 1.92D, you can also change the MTU setting for Static/Dynamic IP Address. by Pinan edited by JMGullett Yes, they should. If you use a router/hub to connect multiple PCs, then they should all be set to the same MTU. Whether that is 1492 or 1500 will depend on your connection and software. Some PPPoE software, like Enternet (not Ethernet) and WinPoet, will not allow for higher than 1454 IPMTU. This, then, would be the number that all PCs will use. If you use ICS (MSFT's Internet Connection Sharing software), then it is important to set ICS MTU for each PC to match that of the other machines as well. This can be done using DRTCP from the Tweaks Forums "Links." Feedback received on this FAQ entry:
by Pinan edited by JMGullett MSS is the "Maximum Segment Size." In practice, that means the amount of space used in each packet to hold your "data." It is the size of the "Data Field" of your packets -- generally both downloaded and uploaded packets. Note that MTU (maximum transmission unit) is the size of the entire packet. Each packet you send or receive is made up of two parts -- the "Header" section and the "Data Field" section. The Header section contains information such as the source and destination address, as well as the specific number of each packet. It is like the envelope around the actual data. The Data Field contains the data -- it is the "contents" of your packet. This could include the text of your email, the HTML text of this web page, the data for your icon image or any number of things. For a standard TCP/IP packet, there are two headers -- the IP Header and the TCP header. Each of these are 20 bytes in size. The maximum size Ethernet packet is 1500 bytes. Therefore, the maximum possible data field -- and thus the maximum possible MSS -- is 1460. If you use PPPoE, this adds a third header which is 8 bytes in size. Therefore, with PPPoE, the maximum MSS is 1452. Since it is more efficient to send as large of a data field as possible, your transmission speed is generally helped by using the highest MSS you can. Your upload packet size is supposed to be the same as your download packet size. If there is a 40 bytes difference in size, something is not working correctly. by Pinan edited by JMGullett In some cases: The Max MTU for PPTP (Point-to-Point Tunneling Protocol) Tunneling VPN on normal Ethernet connection on Windows 98/98SE/ME is 1462. In Windows 2000/XP: For PPTP Tunneling VPN, it seems that 1400 is the Max MTU for Ethernet. For now, there is no way to get over these MTU values. Every VPN (Virtual Private Network) Software needs a few bytes for security and in order to work. ~~~~~~~~~~~~~~~~~~~~~ Checked on: Windows XP and Windows 98 Second Edition. Windows built-in VPN Adapter. PPTP VPN Connection. Feedback received on this FAQ entry:
by B777300 edited by JMGullett With RASPPPoE, some users find that an MTU of 1492 (commonly used for other PPPoE implementations) is too high. If this is the case, use DrTCP (Win95/98/98se/ME/2k/XP) to set your MTU to whatever you can ping through within your dial-up adapter. Also set it to that number in RASPPPoE Properties, after checking "Override Max Transmission Unit." 1) Right click "My Network Places" -> Select "Properties" 2) In the "Network Connections" Window -> Right click "Local Area Connection" -> select "Properties" 3) Click on "PPP over Ethernet Protocol" -> "Properties" 4) Check off "Override Maximum Transfer Unit" and set the value as you need. edited by JMGullett The highest maximum transfer unit that America Online can support is 1400 bytes. That is also the most optimal MTU for AOL connections. Anything higher than 1400 bytes will require fragmentation of those packets. Thus, you'll encounter connection problems and slow speeds, an overall degradation of your service. by Meteor Dive edited by JMGullett This ONLY applies if you're using the AOL 6.0 client to connect online on Win9x/ME systems. To change your MTU to 1400, download DrTCP to your desktop from here. Set your Dial-up Adapters' MTU to 1438 from the Adapter Settings list. If you use ICS, then you will also need your MTU set to 1438 under ICS MTU. If you also use a NIC, then set that to 1438 under Adapter Settings as well. Click Save, Exit and reboot your PC. Run a tweaks test to confirm that your MTU is now 1400. The reason behind the 1438 MTU value is that there is an awkward 38-byte overhead, which is deducted from the actual value you entered on your dial-up adapters. In other words, 1438-38 = 1400 -- your actual MTU result. by Meteor Dive edited by JMGullett |