The default MTU size for all PPP connections in Windows Server 2003, Windows 2000, and Windows XP, is a fixed size of 1500 bytes.

The default MTU size for all VPN connections in Windows Server 2003, Windows 2000, and Windows XP, is a fixed size of 1400 bytes.

NOTE: The above defaults apply to both clients and servers.

I have scripted MTU.BAT to allow you to set, or reset, these MTU values.

The syntax for using MTU.BAT is:

MTU \[/p:nnnn /v:nnnn\]

where:

/p:nnnn indicates that the PPP MTU size will be set to nnnn bytes.

/v:nnnn indicates that the VPN MTU size will be set to nnnn bytes.

nnnn is any valid MTU size.

NOTE: If you omit both switches, the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NdisWan\Parameters\Protocols registry key is deleted, which causes the default settings to be used.

NOTE: MTU.BAT uses Dec2Hex.bat.

NOTE: You must restart your computer for these changes to take effect. See PsShutdown

NOTE: If you wish to run MTU.BAT remotely, see tip 4141 » PsExec freeware executes programs remotely, or tip 4195 » How do I remotely execute a program or script on 'all' computers ...

MTU.BAT contains:

@echo off
setlocal
@echo REGEDIT4>%TEMP%\MTU.REG
@echo.>>%TEMP%\MTU.REG
set Proto=N
set PType=N
if \{%1\}<h1><a name="_goto_undo_loop_if_1_">\{\} goto undo
:loop
if \{%1\}</a></h1>\{\} goto doit
set param=%1
shift
if /i "%param:~0,3%" EQU "/p:" goto OK
if /i "%param:~0,3%" EQU "/v:" goto OK
:err
@echo Syntax: MTU \[/p:nnnn /v:nnnn\]
if exist %TEMP%\MTU.REG del /q %TEMP%\MTU.REG
endlocal
goto :EOF
:OK
set work2=#%Param:~3%
:OKL
set work1=%work2%
set work2=%work1:#0=#%
if "%work1%" NEQ "%work2%" goto OKL
set work1=%work2:#=%
call Dec2Hex %work1% Hex Len
if %Len% EQU 0 goto :err
set /a filllen=8 - %len%
set work2=00000000
call set work1=%%work2:~0^,%filllen%%%%hex%
if "%Proto%" EQU "Y" goto out
set Proto=Y
@echo \[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NdisWan\Parameters\Protocols\0\]>>%TEMP%\MTU.REG
@echo "ProtocolType"=dword:00000800>>%TEMP%\MTU.REG
@echo "PPPProtocolType"=dword:00000021>>%TEMP%\MTU.REG
:out
if /i "%param:~0,3%" EQU "/p:" goto PPP
if "%PType%" EQU "V" goto err
set PType=V
@echo "TunnelMTU"=dword:%work1%>>%TEMP%\MTU.REG
goto :loop
:PPP
if "%PType%" EQU "P" goto err
set PType=P
@echo "ProtocolMTU"=dword:%work1%>>%TEMP%\MTU.REG
goto :loop
:undo
set Proto=Y
@echo \[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NdisWan\Parameters\Protocols\]>>%TEMP%\MTU.REG
:doit
@echo.>>%TEMP%\MTU.REG
if "%Proto%" EQU "N" goto :err
regedit /s %TEMP%\MTU.REG
del /q %TEMP%\MTU.REG
endlocal