Модем и Интернет: максимальное ускорение связи

 Представляем интерактивный проект для пользователей Интернета, применяющих модем. Здесь рассматриваются практически все вопросы, которые могут возникнуть при эксплуатации вышеупомянутого устройства в качестве «окна в информационный мир». Многоуровневый подход к теме объединяет внешне модемные, низкоуровневые внутри модемные и программные ключи управления работоспособностью модема. Все рекомендации основаны на реальных многодневных проверках с использованием широко распространенных типов модемов US Robotics, Zyxel, Motorola, а также ELine, Inpro, Acorp и др. Программные манипуляции ориентированы на возможности настройки Windows 9x, однако пользователи Windows NT тоже смогут использовать около 98% материала. Вопросы, связанные с внешним подключением модема и его внутренней инициализацией, не зависят от операционных систем, они составляют примерно 60% статьи.

Статья писалась на основе различных материалов по этой тематике, представленных в Интернете, а также конкретных часто задаваемых вопросов пользователей Сети. В ее создании также принимали участие консультанты компьютерных фирм по продаже комплектующих и операторы по решению проблем пользователей провайдерских компаний. Изучив этот материал, вы сможете оперативно проверить условия для качественной связи с Интернетом.

Для кого написана эта статья?

В первую очередь статья ориентирована на обыкновенных пользователей. Именно поэтому в качестве базовой платформы выбрана операционная система Windows 9x, получившая в настоящий момент широкое распространение. Учитывая, что провайдеры Интернета устанавливают повременную оплату своих услуг, особую актуальность приобретают методы повышения качества и устойчивости связи. А это уже касается человека, который желает сохранить свои деньги.

Много полезной информации извлечет и профессиональный пользователь. Занимаясь изучением различных Интернет-технологий типа CGI, Java или попроще — HTML (это кто как умеет) :о), можно и позабыть о таких характеристиках, как скорость доступа. По-моему, это первооснова: будет хорошая связь — остальное приложится. Мы предлагаем всем подключиться к созданию второй версии этого руководства. 

 Думаю, я убедил вас, что необходимо в срочном порядке провести тестирование системы. Если этого не делать, то знайте, что 33600-й модем в нормальном состоянии должен закачивать 100-килобайтный файл в течение 24 секунд! У вас такая скорость? Вряд ли. В таком случае «пренепременно» прочитайте эту статью. Для эффективной работы первоначально предлагаю загрузить программы и документацию. Это более всего относится к тем «продвинутым личностям», которые желают глубже изучить методики настройки модема для удовлетворения собственных специальных потребностей (например, намерены совместить модем с пылесосом или шашлычницей). 

Вниманию читателей статьи!

При попытке воспользоваться приведенными здесь советами вероятны сбои в работе системы. Особенно это касается изменения структуры и ключей реестра. Можно с легкостью избежать этих проблем, если аккуратно действовать и иметь резервные копии реестра до исправления. Пользователям Windows 9x настоятельно рекомендую воспользоваться утилитой Configuration Backup, http://www.esinet.newmail.ru/soft/cfgback.zip.

Интуитивный интерфейс позволит выполнить резервирование реестра в считанные секунды даже начинающим. Конкретные рекомендации по обеспечению безопасности будут даны ниже.

Реально-механические внешнемодемные рекомендации.

На этом этапе вам не помогут резервные копии модема или скриншоты телефонного провода. Тут надо быть предельно аккуратным, в противном случае скорость доступа в 2 Кбайт/с может мгновенно «выгореть» до нуля...

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

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

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

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

А теперь попробуйте включить компьютер...

Надеюсь, у вас по-прежнему есть модем «в рабочем состоянии», незакороченная телефонная линия и «нормально» функционирующие COM-порты. А сам компьютер после нажатия кнопки Power одобрительно пикнул и протрещал до полной загрузки «Окон 9х/NT». Если так, то продолжаем испытывать судьбу... Как говорится, кто не рискует, тот не пьет шампанского!

В принципе, рисковать-то нечем, учитывая, насколько легко обеспечить сохранность рабочей версии реестра. Используйте вышеуказанную программу cfgback.exe, или создайте резервные копии файлов user.dat и system.dat (справедливо для систем Windows 9x). С помощью командной строки можно сохранить полную структуру реестра командой

>regedit /e yourfile.reg
Восстановить ключи можно командой
>regedit /с yourfile.reg

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

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

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

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

>AT&F&H1&C1&DO

Полный сборник прошивок на различные типы модемов вы сможете найти на сайте http://www.uw.ru/ компании «Альтер-Вест». Кроме того, почитайте документацию к вашему модему, вероятно, там будет указана информация для адаптации модема к низкокачественным телефонным линиям (на нашу страну намекаю).

Во избежание лишних расспросов уточню: терминальная программа обычно поставляется на прилагающемся к модему 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 123.123.123.123 -f -w 10000

где 576 — исследуемое значение MTU, 123.123.123.123 - 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

Обращаюсь к читателям: пришлите, пожалуйста, расшифровку и/или значение NDICashe параметра, если кто знает.

Имеются проблемы с 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: рекомендуется изменить порядок запроса на регистрацию компьютера в сети:

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

[Hkey_Local_Machine\System\CurrentControlSet\ Services\VxD\MSTCP\ServiceProvider]

Установите следующие значения:

Пока это все...

Работа закончена, и ваш модем работает как трактор. Однако это не значит, что мы завершили публикацию статей на эту тему.

Автор: Юрий Семенов
Источник: www.osp.ru


Hosted by uCoz