10/31/2017

От чего зависит скорость TCP/IP соединения

Привет всем. В прошлой статье мы рассмотрели что такое TCP/IP соединение, и как можно снять ограничение. Естественно, что не только от одного MTU зависит скорость. Существует еще много составляющих протокола TCP/IP, которые влияют на нее.  Многие из этих параметров легко выставляются с помощью все тех же утилит, что и MTU.MTU - Maximum Transmission Unit. В реестре он задается таким образом:


HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class \NetTrans\000x "MaxMTU"="1500"
Это максимальный размер пакета данных, который может быть передан за один физический кадр по протоколу TCP/IP. Дело в том, что данные от компьютера к компьютеру в Интернете идут не сплошным потоком, а этими самыми кадрами.  
Кадр - это пакет определенного размера.

- 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\CurrentControlSet\Services\VxD\NWLink\Ndi \
params\maxconnect @="64" "max"="128" "min"="2"
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\NWLink\Ndi \params\maxsockets @="255" "тах"="1020" "min"="32"
HKEY_LOCAL_MACHINE\System\CurrentControlSet\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\CurrentControlSet\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=1500, а при "пинге" удаленных серверов мы обнаруживаем, что пакет такого размера, проходит чаще всего нефрагментированным.
При этом, чем больше MTU, тем эффективнее используется ваш интернет - доступ.
Поэтому, чтобы настроить вашу систему на максимальную производительность,желательно вам самим:

- выяснить действительное значение MTU своего провайдера
-выбрав это значение, убедиться, что пакеты такого размера при связи с чаще всего вами посещаемыми серверами не будут фрагментироваться
- провести эксперименты с загрузкой одного и того же файла при разных значениях MTU
- проверить, как сказывается изменение MTU на сетевых играх.

Почему постоянно пропадает подключение к локальной сети или к 
интернету читайте далее
Как устранить ошибки в TCP/IP сетях читайте далее
Пожалуй на этом мы и разобрались с протоколами TCP/IP.

Комментариев нет :

Отправить комментарий

Введите Ваш E-mail

ВведитеВашEmail:

Понравилась статья? Поделись с друзьями.