|Home||Reviews||Tools||Forums||FAQs||Find Service||ISP News||Maps||About|
how-to block ads
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.
Verizon FiOS' optimizer tool sets MTU to 1492. If I set my MTU to 1500 (as recommended by the teak test), my speed drops considerably.
How does this relate to packet fragmentation?
1492 seems to be the setting limitation for XP PPPoE att dsl and other tricks like cache cleanup etc (Linksys wrt54g router was cutting out when the sat. TV receivers did their update downloads and and couldn't handle mtu settings higher than 1300 range without cutting out , also found out my c/o ATT server had me competing for bandwidth w/ a nearby hospitals' T1
BT Wholesale do *not* recommend that MTU should be less than 1488. In fact they recommend 1500. Your ISP might have this limitation, but the underlying network has no problems with 1500 MTU on PPPoA. Many years ago when DSL in the UK was rolled out there were some speed issues relating to ATM packet sizes - this hasn't been true for a long time, and as more of the network is switch to 21cn it's travelling over IP anyway (in an L2TP packet, using jumbo frames).
BT recommend an MTU of 1492 for the VDSL2 (Infinity service).
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, want to use IPSec (Secure VPNs) or both, then it's too big. 576 is not efficient for the broadband/Internet; it's 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 and then come back to this!
The best value for MTU is that value just before your packets get fragmented. How do you find that out? By using Ping at an command prompt.
Windows 2000/XP users:
Go to Start/ Programs/ Accessories/ Command Prompt and type the following:
ping -f -l 1472 www.dslreports.com
(That is a dash lower case "L," not a dash "1." Also note the spaces in between the sections.)
ping -s 1472 www.dslreports.com
OS X users:
ping -D -s 1472 www.dslreports.com
Linux and OS X commands are case sensitive.
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 away from getting the "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 your 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.
Hello! I wrote a little C# application that automates the MTU discovery process and prepares a nice little report which might enhance this FAQ and simplify MTU testing for your users (at least the ones the run Windows). The application uses the OS ping to do the work so it should be a bit more compatible then if I wrote an internal network ping (or so my thinking goes), it certainly appears to work reasonably well. You can review and download the tool for testing from my webpage here: http://qsextreme.com/mtutest Currently the tool pings my web server which is hosted at godaddy (secureserver.net) which should have more then adequate bandwidth to support any number of users testing with this tool. I look forward to your comments, thoughts and criticisms, all are very welcome. Sincerely, Kevin Ottalini email@example.com
Thanks, this helped heaps
On Linux (Ubuntu at least), a better MTU test: ping -c 10 -M do -s
Thanks for the information. I don't know the technical aspects of the actions I performed but this article worked for me. My problems started after upgrading to Comcast's "Speed Boost" up to 16Mbps. I had the 6Mbps service and should have stayed with my original service. Windows Vista Linksys - WRT350N (Firmware Version: v1.03.7 )
For Vista: "You can change the MTU settings in vista using the following command from the command line as an admin... netsh interface ipv4 set subinterface "Local Area Connection" mtu=1300 store=persistent If you just want to see what your settings are you can run. netsh interface ipv4 show subinterfaces" PS: Instead of "Local Area Connection" you must put the suitable string of your connection, which you get using the last command above. For a wireless connections, you could have "Wireless Network Connection".
I have never seen a better article that explains MTU and how it relates to everything so well. This is awesome. Thank you.
If you ping with Linux you should specify the DF (don't fragment) flag with "-M do": ping -M do -s 1472 www.dslreports.com
hello, i did this ping at 1472 for x-p and had 4 sent recieved 1 loss 3 ??? also say's packet's need to be fragmented but DF set ?? it said this 3 time's what does that mean ? so then ran it at 1462 and said sent 4 rec. 4 loss 0 so did i fix something by doing this ? this is happening to me as well please help!
in macs running 10.3 and later , you just select the ethernet port you want to modify from the network pane, in system preferences. You then highlight your ethernet connection on the left hand side, then click on advanced on the bottom right corner. select the ethernet tab from the window that comes down, then set the first menu to manual. and there you go, change your mtu, your duplex settings and the connection speed.
If you need to adjust your MTU permanently, do the following: sudo vim /etc/network/interfaces If you are using a static address then find the interface you need and simply add the MTU line: iface eth0 inet static address 192.168.0.1 network 192.168.0.0 gateway 192.168.0.254 netmask 255.255.255.0 mtu 1492 If you are using DHCP addresses then you need to set this before the interface comes up, by adding this line: iface eth0 inet dhcp pre-up /sbin/ifconfig $IFACE mtu 1492 Then release and renew (or up and down) the interface sudo ifdown eth0 sudo ifup eth0
In linux, add "-M do" to the parameters to ping to force the don't fragment bit on, otherwise ping will silently do mtu discovery and fragment for you. Eg: ping -s 1472 -M do www.dslreports.com
Also, the ifconfig in linux has been deprecated for years. The command is now "ip".
Very enlightening! DJB
Some platforms (linux, Windows, Cisco etc) have a slightly other way of calculating the payload and MTU size. Some take the payload including 28 bit headers and info, like Cisco. With others you still need to add 28 bits to the maximum payload to get the correct MTU size. If you are looking for a way to do this from an external source to the outside of your router, automatically, you could try the following MTU test: http://www.letmecheck.it/MTU-test.php It will also check if the ‘divisible by 8′ rule is respected.
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.
What about for wireless adaptors (WiFi)? Is it also a physical NIC? firstname.lastname@example.org
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.
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.
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.)
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:
(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.
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.
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:
(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: :/forum/remark,240626;root=remar···031>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:
Network Telesystems Enternet PPPoE Adapter (NTSP3)
Click on the advanced tab
Do you see that thing called "MaxFrameSize"? Change that to 1492.
For Win2K/XP users, this appears to be the proper place to set MTU:
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.
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."
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.
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.
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."
Hopefully in time Netgear will release a new firmware that will let you change this setting.
RP614 firmware 4.15 RC4 allows modification of the MTU setting.
I have a Netgear WGR614 modem, and have successfully set the MTU to 1462 by using the standard browser interface, in Advanced-WAN Setup page.
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:88 (if remote admin is enabled)
Go to the system parameter page.
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.
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."
Please address these issues: If I want my MTU to be 1500, do I set it to 1500 or 1472 in DrTCP? No matter what I set MTU to in DrTCP, Tweak Test returns "Change MTU to 1500".
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.
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.
These numbers are good as far as they go. I support remote offices connected via router-to-router PPTP VPN tunnels. Some of the offices are connected to the internet via PPPoE aDSL circuits. The MTU for PPoE is 1492. The PPTP implementation on my Netopia routers appears to require 40 bytes per packet. That allows a maximum MTU of only 1452 across the VPN tunnel.
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.
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.