КомпьютерМастер КомпьютерМастер
Программы

  Услуги   Цены   Гарантии Вызов мастера Всё о компьютерах   Полезные ссылки

Ускорение модемного соединения


Причиной неустойчивой или низкокачественной связи может являться наличие параллельных телефонных аппаратов, подключенных до точки модема. Это особенно проявляется в тот момент, когда по какой-либо причине поднята трубка. Сигнал значительно исказится, и скорость связи модема снизится практически до нуля или вообще произойдет разрыв. Мы рекомендуем отключить все аппараты, однако это не слишком серьезная проблема. Распространенная ошибка пользователей - отключение параллельных телефонов путем «выдергивания» телефонной вилки из розетки. Скорость при этом снижается примерно в три раза. Делать это ни в коем случае нельзя!

На качество связи сильно влияют различные электромагнитные помехи, которые наводятся на телефонный провод. Неправильное проведение телефонной линии до модема может снизить скорость доступа в полтора-два раза. Сразу рекомендуем приобрести цельный телефонный провод (лучше витую пару) и провести ее по кратчайшему пути от распределительного телефонного щита до модема. Параллельно вы должны проследить, чтобы телефонный провод не пересекался с сетевыми проводами 220 В (идущими, например, от розеток). В то же время длина линии должна быть как можно меньше. Конечно, не всегда можно пододвинуть модем к телефонному щиту, но постараться надо.

Проследите также за температурным режимом модема. При перегреве возможно повышение количества ошибок и, как следствие, ухудшение качества связи вплоть до разрывов. Аппарат должен находиться на некотором расстоянии от обогревательных элементов. Не используйте модем как подставку под кофе!

Вы сделали все что можно. Теперь остается надеятся на качество и помехозащищенность линии, идущей от телефонной станции до вашего телефонного щита, а также на отлаженность работы АТС. Учтите, что путь соединения с провайдером по внешней телефонной линией (кроссировка) меняется при повторных звонках. Активно пользуйтесь этим свойством, если при коннекте вы получили скорость доступа явно ниже обычной.

Создайте резервные копии файлов user.dat и system.dat (справедливо для систем Windows 9x). С помощью командной строки можно сохранить полную структуру реестра командой

>regedit /e yourreg.reg
Восстановить ключи можно командой
>regedit /с yourreg.reg 
Данная операция, кроме всего прочего, уменьшает занимаемое реестром пространство на жестком диске на несколько сотен килобайт! Если, игнорируя все меры предосторожности, вы все-таки «подправили» реестр и нарушили работоспособность системы, то воспользуйтесь встроенной утилитой rollback.exe (справедливо для систем с Windows NT), которая восстановит все ключи в первоначальное постинсталляционное состояние - естественно, с потерей всех настроек (тут уж выбирать не приходится).

Внутримодемные низкоуровневые установки

Несмотря на простоту, доступность и безопасность регулирования этого типа настроек, все-таки встречаются случаи невыполнения элементарных правил. Обращаем внимание, что манипулирование любыми программными ключами может существенно повлиять на качество связи, но далеко не всегда в лучшую сторону. В этом плане нужно быть предельно внимательным и аккуратно вести учетные записи во время проведения подобных экспериментов.

Первоначально рекомендую поставить прошивку вашего модема. Прошивка - это специальный набор AT-команд модема, которые конфигурируют его для различных типов телефонных линий (характеризуются по качеству связи). Например, для российских телефонных линий прошивка модема USRobotics Sportster 14.4 выполняется командой

>AT&F&H1&C1&DO 
Кроме того, почитайте документацию к вашему модему, вероятно, там будет указана информация для адаптации модема к низкокачественным телефонным линиям.

Во избежание лишних расспросов уточню: терминальная программа обычно поставляется на прилагающемся к модему CD-ROM. Если же возникнут трудности с поиском (или работоспособностью) вашего терминала, то скачайте небольшую утилиту этого класса - эмулятор терминала модема TeleMax ver 3.0 http://www.esinet.newmail.ru/soft/terminal.zip.

Она разработана для Symantec Norton Commander ver 5.0, так что ее можно найти и там: в качестве встроенной утилиты. Пользователи Windows 9x/NT имеют возможность запустить терминал модема непосредственно до и после установления связи с провайдером по следующему пути:

Start -> Programs -> Accessories -> Communications -> Dual Up Networking -> [правая кнопка на выбранном соединении] -> Properties -> Configfure... -> Options -> Connection control

Установите галочки против соответствующих позиций.

Проверим настройки вашего COM-порта. Откройте следующие приложения:

Start -> Setings -> Control Panel -> System -> Device Manager -> Ports -> [порт, на котором у вас «висит» модем»] -> Port Settings

Обращаем ваше внимание, что значение Bits per second должно превосходить пропускную способность вашего модема в три раза! Это обусловлено взаимодействием программных и аппаратных сжатий данных. В целом этот механизм проследить довольно трудно, но жизнь подтверждает справедливость именно такого расклада. Если же, наоборот, наблюдаются частые разрывы связи и низкая скорость доступа, то имеет смысл уменьшить максимальную скорость передачи данных в полтора-два раза. Проверьте наличие галочки на Use FIFO buffers в отделе Advanced.

Драйвер COM-портов поддерживает буферизацию на программном уровне. 128-байтного буфера, устанавливаемого по умолчанию, совершенно недостаточно. Попробуем увеличить его. Откройте файл system.ini (это выполняется командой sysedit) и в секции [386Enh] добавьте ключ Com[номер COM-порта]Buffer=[размер буфера в байтах]. Оптимальным значением будет 8192 байта. Вот примерный вид system.ini после коррекции:

...
[386Enh]
Com2Buffer=8192
... 
Будьте внимательны, ошибка, конечно, не фатальная, но улучшения качества вы можете и не заметить!

Иногда возникают ситуации, когда во время первоначального соединения с провайдером в окне исполнения скрипта возникают шумовые сигналы, мешающие корректности его выполнения (особенно в момент ввода логина/пароля). Возможно, у вас отсутствует коррекция ошибок на стадии подключения. Нажмите правую кнопку мыши на исследуемом соединении и откройте окна по следующей схеме:

Properties -> [General] Configure -> Connections -> Advanced... -> Use Error Control [поставте галочку]

Если ошибки продолжают возникать, то нужно обратиться к провайдеру (возможны ошибки совместимости) или в компьютерную фирму, продавшую вам этот модем.

Еще одной причиной разрывов связи (кроме вышеупомянутых) является «болезненное» реагирование модема на потерю несущей на 1-2 секунды. Учитывая, что это типично для российских телефонных линий, советуем подправить значение ячейки S10, которая хранит время ожидания несущей в десятых долях секунд. Обратите внимание, что S10=255 интерпретируется как бесконечно долгое ожидание несущей. Такое значение ставить не рекомендуется, так как модем может удерживать линию даже после окончания сессии связи с удаленным компьютером или серьезного сбоя линии.

Если модем не распознает сигнал занято (busy), то нужно установить регистр S7=40. Это позволит модему сбрасывать попытку связи при отсутствии ответа в течение 40 секунд. На устойчивость и скорость связи также существенно влияет величина выходного сигнала модема, задается в регистре S39. Учтите: чем меньше значение регистра, тем больше выходной сигнал. Очень важно запретить модему самостоятельно изменять этот параметр, установив S56=2. Если у вас есть параллельный телефон, который не отключается во время работы модема, может сработать автоответчик. Коррекция ошибки проводится путем установки третьего бита в 40 регистре, то есть введите S40.3=1.

Все изменяемые вами параметры можно автоматически инициализировать в Windows при использовании модема. Для этого нужно проделать следующие шаги:

Settings -> Control Panel -> Modems -> Properties -> Connection -> Advanced...

и написать инициализирующую строку в поле Extra Settings. Если вы хотите иметь различные настройки одного модема для разных связей, то заведите несколько модемов (двух вполне хватит), которые ссылаются на одно устройство - ваш реальный модем.

Настройки операционной системы

Займемся самым безопасным делом - настройкой реестра Windows. Для работы нужно зарезервировать начальное состояние регистров системы любым из предложенных выше способов. А что касается утилит iSpeed или MTUSpeed, то они имеют встроенные опции сохранения первоначального состояния (как и любого другого, впрочем).

Полагаю, все уже наслышаны о MTU, который существенно влияет на производительность модема. Что же это такое, в конце концов? MTU (Maximum Transmition Unit) - максимальное количество данных, которое может быть передано по сети за один физический фрейм. Но суть не в этом, главное, если передаваемый сервером пакет много меньший установленного MTU, то оный подвергается значительным фрагментационным перегрузкам. Нетрудно догадаться о существенном влиянии этой операции на скорость связи. По умолчанию Windows 9x ставит его в значении 1500. Опыты фиксируют оптимальное значение на уровне 576.

В самом деле, можно самостоятельно определить оптимальное значение MTU. Для этого нужно воспользоваться встроенной командой ping:

>>ping.exe -l 576 xxx.xxx.xxx.xxx -f -w 10000 
где 576 - исследуемое значение MTU, xxx.xxx.xxx.xxx - IP-адрес любого доступного вам сервера. Эта команда используется в MTUSpeed, выполняясь прямо в сессии MS-DOS. Связанным с параметром MTU является значение MSS (Maximum Segment Size), которое определяет максимальный сегмент TCP данных, приготовленных Winsock для непосредственной отправки. MSS должен быть меньше MTU (576, например) на 40 байт, то есть равен 536.

Попытаемся установить эти жизненно важные параметры. Первоначально нужно определить ID-идентификатор вашего контроллера удаленного доступа. Откройте реестр командой regedit и по адресу [HKEY_LOCAL_MACHINE\Enum\Root\Net] найдите запись, по которому прописан Dial-Up Adapter. Внутри этого подключа найдите запись MSTCP\0000=»», которая располагается в подключе Bindings. Число, стоящее после MSTCP\, и есть искомый ID. Теперь все просто, по адресу реестра [HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\Class\NetTrans\xxxx], где xxxx - это цифровой ID, добавьте параметры MaxMTU=[число] и MaxMSS=[число].

Если вы работаете с удаленными серверами, то наверняка у вас часто возникают случаи так называемого «таймаута», то есть сервер прекращает загрузку и выдает загруженный материал на экран. В этом случае необходима коррекция TTL (Time To Live) и RWIN (DefaultReciveWindows), последний определяет размер буфера данных, после заполнения которого система выдаст результаты. (Как у человека: когда нервы перенапрягаются - выдаешь такое!) Откройте ветвь реестра [Hkey_Local_Machine\System\ CurrentControlSet\Services\VxD\MSTCP] и добавьте туда два ключа

DefaultRcvWindow=4288
DefaultTTL=128
Отмечу, что значительная роль отводится параметру NDICasheSize, однако ни в русскоязычных, ни в англоязычных руководствах я не нашел расшифровку этого ключа, хотя все настоятельно рекомендуют установить его на уровне 16 (в отличие от нулевого значения по умолчанию). Если так, то давайте поставим
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\VxD\NWLink\Ndi\params\cachesize\default] default=16

Имеются проблемы с 32-разрядными приложениями, которые не получают ответа от DNS. Проверьте путь к файлу wsock32.dll, записанному в реестре

[Hkey_local_machine/system/currentcontrolset/ services/vxd/mstcp/serviceprovider/]
со значением %WINDIR%\SYSTEM\WSOCK32.DLL. Если все правильно, то уточните: находится ли сам winsock32.dll по пути c:\windows\system\winsock32.dll. К вопросу о DNS - рекомендуется изменить порядок запроса на регистрацию компьютера в сети:

прочитать локальный LMHOSTS
запрос к DNS
запрос к WINS
широковещательный запрос

Откройте редактор реестра и найдите

[Hkey_Local_Machine\System\CurrentControlSet\ Services\VxD\MSTCP\ServiceProvider]
Установите следующие значения:
LocalPriority = 499 
HostsPriority = 500 
DNSPriority = 2000 
NetbtPriority = 2001


КомпьютерМастер computermaster.ru


[Услуги] [Цены] [Гарантии] [Вызов мастера] [Всё о компьютерах] [Полезные ссылки]

© КомпьютерМастер, 2004.
Rambler's Top100 Rambler's Top100