Другие параметры
Естественно, что не только от одного MTU зависит скорость. Существует еще много составляющих протокола TCP/IP, которые влияют на нее. Опять же слепо следовать рекомендациям западных специалистов не стоит. Это может привести к неожидаемым результатам.
Поэтому и здесь собственный эксперимент не помешает. Это поможет определить, что действительно сможет ускорить работу, а что затормозить на зашей системе. Многие из этих параметров легко выставляются с помощью зсе тех же незамысловатых утилит, что и MTU.
- RWIN (receive window, окно приема) — размер буфера, в котором накапливается содержимое области данных (MSS) нескольких полученных пакетов, прежде чем передается дальше, например, в браузер. При недостаточном размере этого буфера иногда происходит его переполнение, и поступающие пакеты отвергаются и теряются. Размер RWIN обязательно должен быть кратен MSS и обычно для лучшей эффективности модемного соединения кратность рекомендуется устанавливать равной 4—8. Однако чрезмерно большой размер буфера также нежелателен, особенно на плохих линиях: при потере всего одного пакета в случае сбоя на линии будет повторно затребован не один потерянный пакет, а все пакеты из этого буфера, что займет некоторое время. В реестре тот параметр находится здесь:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP
- "DefaultRcvWindow"="Bauie значение" TTL (time to live, время жизни) — количество хопов, т. е. промежуточных серверов, через которые может пройти ваш пакет в поисках своего места назначения. Каждый такой сервер добавляет единицу к специальному счетчику в заголовке вашего пакета, и, когда счетчик достигает максимально разрешенного значения, пакет считается заблудившимся и прекращает свое существование. По умолчанию TTL равен 32, что сегодня явно недостаточно для разросшегося Интернета: нередки случаи, когда удаленный сервер находится более чем в 32 переходах, поэтому TTL следует увеличить как минимум до 64:
HKEY_LOCAL_MACHINE\System\CurrentControlSet
\aervices\VxD\MSTCP "DefaultTTL"="64"
- IPMTU (Internet Protocol MTU) — в Windows 98, по сути, это то же самое, что и MTU, но применительно только к контроллеру удаленного доступа. В реестре он упоминается несколько раз:
HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Services\Class\Net\OOOx"I? MTU"="1500"
HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Services\Class\Net\OOOx\Nc i\params\IPMTU
- PMTU (Path MTU, путевое значение MTU) ("default"=" 1500" @="1500") -этот параметр разрешает Windows самой определять оптимальное значение MTU при организации соединения с каждым сервером. При этом серверу посылается ряд нефрагментируемых пакетов разного, постепенно уменьшающегося размера, и как только очередной пакет достигнет сервера, его размер считается оптимальным. На эту процедуру, разумеется, требуется некоторое время, и по умолчанию она включена, в связи с чем часто советуют ее деактивизироватъ, что, пожалуй, все-таки довольно спорно — потерять на этом времени можно больше из-за того, что наилучший размер блока данных определен не будет и пакеты пойдут фрагментированными. Выключается же этот режим так:
HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Services\VxD\MSTCP "PMTUDiscovery"="0"
- PMTUBlackHole Detect (обнаружение "черных дыр") — установка этого параметра разрешает протоколу TCP пытаться обнаружить никуда не ведущие роутеры и те, что не возвращают ICMP-сообщений о необходимости фрагментации при определении наилучшего MTU. Это так же, как и любая дополнительная процедура, может замедлять работу в Интернете — попробуйте поэкспериментировать с ее отключением:
HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Services\VxD\MSTCP "PMTUBlackHoleDetect"="0"
- SessionKeepAlive (поддержание соединения) — определяет, как часто будут посылаться специальные пакеты информации, предотвращающие отключение вас сервером в случае отсутствия активности в Сети с вашей стороны. Минимум — одна минута, по умолчанию — один час в Windows МЕ/9х и два часа в Windows 2000. Рекомендуемый интервал — 10 минут, параметр задается в секундах:
HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Services\VxD\MSTCP "SessionKeepAlive"="600"
- SlowNet — отключение этой функции может сократить задержки в передаче данных, но на сей раз визуально это будет не сильно заметно.
HKEY_LOCAL_MACHINE\System\CurrentControlSet
\Services\Class\Net\OOOx "SLOWNET"=hex:00
- NDI Cache (Network Device Interface Cache) — кэш, в котором хранятся данные о маршрутах движения пакетов, по умолчанию его размер равен нулю. Чтобы его задействовать наиболее оптимально, необходимо установить его размер равным 16 при модемном соединении или 32 при более высоких скоростях подключения:
HKEY_LOCAL__MACHINE\System\CurrentControlSet
\Services\VxD\NWLink\Ndi\ paramsXcachesize @="16"
В реестре обычно рекомендуется выставить еще некоторые параметры, влияние которых на качество связи проследить вообще чрезвычайно сложно, но попробовать поэкспериментировать с их значениями можно:
- HKEY_LOCAL_MACHINE\System\Current
ControlSet\Services\VxD\NWLink\Ndi \
params\maxconnect @="64" "max"="128" "min"="2"
- HKEY_LOCAL_MACHINE\System\Current
ControlSet\Services\VxD\NWLink\Ndi \params
\maxsockets @="255" "тах"="1020" "min"="32"
- HKEY_LOCAL_MACHINE\System\Current
ControlSet\Services\VxD\NETBEUI\Ndi
\params\ncbs "default"="32" "max"="255" "min"="8"
- HKEY_LOCAL__MACHINE\System\Current
ControlSet\Services\VxD\NETBEUI\Ndi
\paramsXsessions "default"="32" "max"="117" "min"="4"
Нижеследующие параметры устраняют, по заверениям Microsoft, некоторые ошибки Windows и увеличивают скорость работы вашего браузера:
HKEY_LOCAL_MACHINE\System\Current
ControlSet\Services\VxD\MSTCP "BSDUrgent"="l"
"Tcpl3230pts"=dword:00000003 "SackOpts"="l"
Вот так вы увеличите количество одновременных подключений к серверу, что часто бывает весьма полезно:
[HKEY_USERS\.DEFAULT\Software\Microsoft
\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPerl_
OServer"=dword:OOOOOOOa=10 "
MaxConnectionsPerServer"=dword:00000008 =8
Оптимизировать интернет-соединения не так легко, как кажется. Несмотря на огромное количество программ, позволяющих увеличить скорость якобы в два раза. И тут, как мы выяснили, совсем не факт, что MTU-576, которое везде рекомендуется западными программистами и экспертами, будет оптимальным и для нас в России. Наши провайдеры сплошь и рядом выбирают для себя MTU=1500, а при "пинговании" удаленных серверов мы обнаруживаем, что пакет такого размера, вопреки всем утверждениям, проходит чаще всего нефрагментированным. При этом, как видно из наших вычислений, чем больше MTU, тем эффективнее используется ваш интернет-доступ.
Возможно, наши рассуждения несколько спорны и противоречат общепринятым догмам на этот счет, поэтому, для того чтобы настроить вашу систему на максимальную производительность, вам придется лично:
- выяснить действительное значение MTU своего провайдера;
- выбрав это значение, убедиться, что пакеты такого размера при связи с чаще всего вами посещаемыми серверами не будут фрагментироваться;
- провести эксперименты с загрузкой одного и того же файла при разных значениях MTU;
- проверить, как сказывается изменение MTU на сетевых играх, если вас они, конечно, интересуют.
Исходя из итогов этих опытов и стоит решать, какой размер максимального неделимого пакета вам следует в результате выбрать.
То, что везде рекомендуется, для вас может оказаться наихудшим вариантом. Аналогично наберитесь терпения и проверьте влияние и других параметров на быстродействие системы. При этом можно даже проверять MTU провайдера регулярно — раз в месяц, в два — не изменилось ли оно.