Настройка и оптимизация модемного соединения в XP

Настройка и оптимизация модемного соединения в XP

Очень важным моментом в настройке Windows является оптимизация соединения с Интернет. Ведь от качества связи напрямую зависит время, проведенное вами в сети и соответственно затраты денег на это. Можно попытаться настроить соединение наилучшим образом, с минимальными потерями данных. Прежде, чем приступить к редактированию реестра, надо узнать несколько специальных терминов и уяснить соотношения между ними. 

MTU 

Это максимальный размер пакета данных, который может быть передан за один физический кадр по протоколу TCP/IP. Дело в том, что данные от компьютера к компьютеру в Интернете идут не сплошным потоком, а этими самыми кадрами - пакетами строго определенного размера. Если бы все компании и фирмы, имеющие хоть какое-то отношение к Интернету, договорились о едином стандарте на размер этих пакетов, то мы бы использовали каждый такой кадр по максимуму, полностью заполняя каналы передачи данных своими битами. Однако это не так. Мало того, что при установке нового соединения два удаленных компьютера должны согласовать между собой размер кадра, так еще и по пути к месту назначения пакет преодолевает целый ряд промежуточных серверов и маршрутизаторов, настройки MTU которых могут быть совершенно различными. При этом слишком большой пакет в пути, скорее всего, будет фрагментироваться и заполняться "воздухом", "балластом", что негативно скажется на эффективности связи. Так, если ваш провайдер имеет установки MTU=576, а у вас в Windows задано MTU=1500, то каждый ваш пакет будет им разбиваться на три по 576 байт: 576+576+576=1728 - то есть 228 байт балласта будут добавляться к каждому вашему пакету. Но даже если провайдер тоже поставил у себя MTU=1500, то при связи с удаленным сервером вполне может попасться маршрутизатор с меньшим значением MTU и пакеты опять-таки будут фрагментироваться, замедляя передачу данных. 

Также нельзя забывать, что в процессе приема пакета может произойти сбой, тогда пакет придется принимать заново. Казалось бы, что чем меньше пакет, тем лучше, но в каждом пакете присутствует 40 байт служебной информации (об этом ниже), т.е. вам приходится принимать лишние байты, что не есть хорошо. Исходя из этих соображений, можно порекомендовать выставлять максимальное значение (1500) тем, у кого хорошее качество связи, что позволит избежать получения лишней служебной информации. Для тех, у кого качество связи оставляет желать лучшего, и часто происходят потери пакетов, можно порекомендовать выставлять значение MTU по минимому. В любом случае, лучше это значение подобрать экспериментально, выставляя его и проверяя скорость работы. 

MSS 

Каждый пакет данных в действительности состоит из нескольких сегментов - нескольких заголовков и фактических данных. Та его часть, в которой содержатся только фактические данные, называется MSS (Maximum Segment Size) - это еще один параметр протокола TCP, определяющий самый большой сегмент данных TCP, которые могут быть переданы за один раз. То есть, MTU = MSS + заголовки TCP/IP. Для заголовка тоже имеется общепринятый размер - это 40 байт (20 байт IP и 20 байт TCP), следовательно, обычно MSS = MTU - 40. По этой причине в определении оптимального размера MTU есть некоторые тонкости. 

RWIN 

RWIN (receive window, окно приема) - размер буфера, в котором накапливается содержимое области данных (MSS) нескольких полученных пакетов, прежде чем передается дальше, например, в браузер. При недостаточном размере этого буфера иногда происходит его переполнение, и поступающие пакеты отвергаются и теряются. Размер RWIN обязательно должен быть кратен MSS и обычно для лучшей эффективности модемного соединения кратность рекомендуется устанавливать равной 4-8. Однако чрезмерно большой размер буфера также нежелателен, особенно на плохих линиях - при потере всего одного пакета в случае сбоя на линии будет повторно затребован не один потерянный пакет, а все пакеты из этого буфера, что займет некоторое время. 

TTL 

TTL (time to live, время жизни) - количество хопов, то есть промежуточных серверов, через которые может пройти ваш пакет в поисках своего места назначения. Каждый такой сервер добавляет единицу к специальному счетчику в заголовке вашего пакета, и, когда счетчик достигает максимально разрешенного значения, пакет считается заблудившимся и прекращает свое существование. По умолчанию TTL равен 32, что сегодня явно недостаточно для разросшегося Интернета: нередки случаи, когда удаленный сервер находится более чем в 32 переходах, поэтому TTL следует увеличить как минимум до 64. 

NDI Cache 

NDI Cache (Network Device Interface Cache) - кэш, в котором хранятся данные о маршрутах движения пакетов, по умолчанию его размер равен нулю. Чтобы его задействовать наиболее оптимально, необходимо установить его размер равным 16 при модемном соединении или 32 при более скоростных подключениях. 

Пожалуй, пора приступать к настройкам. Часть данных хранится в ветви HKEY_LOCAL_MACHINE в разделе System\CurrentControlSet\Services\Class\NetTrans\%%STAT%%000. Здесь 0000 - номер профиля (их может быть несколько, например, 0001, 0002,...). Значение MTU выставляется с помощью строкового ключа MaxMTU (1500, 1002, 576, 552). 

Для настройки следующих параметров откройте раздел System\CurrentControlSet\Services\VxD\MSTCP. Значение MSS устанавливается строковым ключом DefaultMSS: его значение равно MaxMTU - 40. 

RWIN настраивается в строковом ключе DefaultRcvWindow. Поэкспериментируйте с этим значением, но помните, что оно должно быть кратно MSS (MSS*4 или MSS*8). 

TTL настраивается с помощью строкового ключа DefaultTTL. 

Вы можете разрешить Windows самой определять оптимальное значение MTU. 

Если опция включена, то Windows сама подбирает оптимальное значение MTU, однако процедура вычисления MTU для каждого соединения требует немало времени, что чуть тормозит работу при закачке небольших файлов и веб-серфинге. Для установки этого параметра добавьте строковый ключ PMTUDiscovery. Значение "1" включает его, "0" - выключает. 

Обнаружение черных дыр. Установка этого параметра разрешает протоколу TCP пытаться обнаружить никуда не ведущие роутеры и те, что не возвращают ICMP-сообщений о необходимости фрагментации при определении наилучшего MTU. Это также, как и любая дополнительная процедура, может замедлять работу в Интернете - попробуйте поэкспериментировать с ее отключением. Для этого добавьте строковый ключ PMTUBlackHoleDetect со значением "1" для включения и "0" для выключения. 

Для настройки NDI Cache откройте раздел System\CurrentControlSet\Services\VxD\NWLink\Ndi\params\cachesize и в значении по умолчанию пропишите нужное число (16 или 32). 

Вы можете увеличить количество одновременных подключений к серверу, включив эту опцию, что часто бывает весьма полезно, с помощью DWORD ключей MaxConnectionsPer1_0Server (установите его значение в 10) и MaxConnectionsPerServer (прировнять к 8). Эти ключи надо добавить в раздел HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings. Удаление их приведет к отключению возможности. 

Все настройки вступают в силу после перезагрузки компьютера. Поэкспериментируйте с различными значениями, и вы сможете увеличить скорость подключения на 20-40%.