It’s all about the MTU’s baby.
A few months ago, I moved into a house on Vashon Island. My internet options were limited so I went with DSL through CenturyTel. The best speed they could offer is 1.5 Mbps which though not outstanding is adequate. But I noticed strange connectivity issues. While most sites would load right away, some sites would never load. And Netflix Instant Viewing would almost never work. I see this with two different operating systems (Ubuntu and Vista). I called CenturyTel’s tech support but they couldn’t help me because I didn’t buy my modem (D-Link DSL-2320B) through them. I couldn’t find anything with a Google search so I just put up with it for about two months. But this weekend I tried Google again and finally found someone with the same problem.
Basically, MTU (Maximum Transmission Unit) is the size (in bytes) of the largest packet that can pass through a network. This was set to 1500 on both Ubuntu and Vista. But my DSL connection can only support an MTU of 1492. This was causing packet loss that resulted in the symptoms described above. Fortunately, there’s an easy fix.
Ubuntu:
1. Add a file called “mtu” to /etc/network/if-up.d/ with just the following one line:
ifconfig eth0 mtu 1492
2. Set the file to be executable:
> sudo chmod 755 mtu
3. Edit the network interfaces to reference the file you just created:
>sudo gedit /etc/network/interfaces
add this line at the end of the file:
post-up /etc/network/if-up.d/mtu
4. Restart networking
>/etc/init.d/networking restart
Vista:
1. Launch regedit. Shift/right-click on the desktop and choose “Open Command Window Here.” From the command prompt, type ‘regedit’ and hit enter.
2. Edit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces. You will see three entries here. Choose the one with the most data. In the panel on the right, right-click and select “New-> DWORD (32-bit) Value”. Set name to MTU and value to 1492.
3. Restart Windows.
Now I’m back in business.