In my last article on "Why BitTorrent causes so much latency and how to fix it", I talked a little about packet sizes and some people asked me what the optimum packet size for maximum throughput is on a DSL broadband connection. In this article I'm going to show you how to optimize your DSL broadband connection in Windows Vista using the netsh command. I will also show you to find the optimum compromise between a Jumbo Frame LAN and a DSL PPPoE broadband connection.
It turns out that the default 1500 BYTE packet isn't optimum for DSL PPPoE based broadband connections because of the additional 8-BYTE PPPoE overhead. If you send out maximum size packets using 1500 BYTES, then each packet will fragment in to two packets because it's too big for the PPPoE DSL connection so you end up with double the packets and double the overhead.

Note that Cable Broadband users don't need to change this because they don't need to deal with the PPPoE overhead.
The first thing you need to do is open up a command prompt elevated to administrator. For Windows Vista, you do this by hitting the start button and typing the command "cmd" but don't hit enter yet. Move your mouse up to the top of the menu and right click on cmd.exe and then left click "Run as administrator".

The next step is to type or cut-paste the command:
netsh interface ipv4 set subinterface "Local Area Connection" mtu=1492 store=persistent
Note that this assumes you are using your typical default LAN connection which is usually labeled "Local Area Connection" but it could be labeled something else if you have more than one Ethernet port or you relabeled the connection name to something more specific. If it is called something else, then you need to adjust the command above accordingly.
This command takes effect immediately and there is no need to reboot. The "store=persistent" command tells Windows Vista that this is a permanent setting. You can confirm after any reboot with the following command which can be done in a normal console.
netsh interface ipv4 show subinterfaces
Windows XP users can use a tool called DrTCP.
Optimizing for Jumbo Frame and DSL PPPoE Broadband
The 1492-BYTE MTU is optimum for DSL broadband but not optimum for high-speed gigabit LAN. In fact, there are times when you want to use Jumbo Frames to avoid the problematic Vista MMCSS packet per second throttling behavior. But a lot of Jumbo Frame implementations are limited to 4082-BYTE Ethernet Frames. So the trick is to use an MTU size that is a multiple of the broadband-optimized packet. The IP packet is always 28 bytes smaller than the largest MTU so the broadband-optimized IP packet is 1464 Bytes. We multiply that by 2 and we get 2928 so the proper MTU size would be 2956 which is still smaller than 4082. So for users who want to have a good compromise between Jumbo Frames and PPPoE DSL, they can use an MTU of 2956. That means the LAN won't fragment the packet but the broadband connection will do a clean two-for-one split that results in optimum size packets.
So the command to implement the 2956 MTU would be:
netsh interface ipv4 set subinterface "Local Area Connection" mtu=2956 store=persistent
You can actually test for larger numbers to see if your setup supports larger jumbo frame sizes like 6K or 7K Jumbo Frames. If it does, then you might be able to use an MTU of 5884 which is derived from 4 times 1464 plus 28. Here's an illustration of how this clean fragmentation works

Verifying Jumbo Frame support
You should verify that you have a switch that supports Jumbo Frames and an Ethernet Adapter in the computer with proper drivers. You can enable Jumbo frames by going to the Control Panel, Network and sharing center, View status, Properties button, Configure button, Advanced tab, Jumbo Frame option.
To verify the whole thing by running the following test between two computers on your LAN that are configured to support Jumbo Frames which we'll call Computer-A and Computer-B.
On Computer-A, run the following command to verify jumbo frame support.
ping Computer-B-IP-Address -l 4054 -f
Note that "-l" in the command above is a dash lower-case L.
If you get a proper reply without an error message, that means your computers and Ethernet Switch supports 4082-BYTE MTU.