Библиотека Интернет Индустрии I2R.ru |
|||
|
Математика связиВы любите вашу АТС? … Отплевавшись и отдышавшись, подумайте – а вдруг можно что-то улучшить? И провода от щитка тянули? И “модемные фильтры” ставили? Знаю, знаю - не помогает. Что ж, можно попробовать сделать последний “финт ушами” перед тем, как идти с дубиной в офис районной станции. И делать мы это будем с модемом. Невзрачный, с погнутыми конденсаторами, обрезок от полноразмерной платы, именуемый модемом, уже совсем перестал считаться за отдельный вид, требующий пристального внимания. И зря. Сейчас уже все забыли те времена, когда все молились на протокол V.32bis, и люди проводили дни и ночи у пулов BBS-ок. Именно тогда настройка модема могла избавить от долгих часов дозвона после неожиданного “NO CARRIER”. С развитием интернета появились протоколы V.34bis и V.90, которые стали уже более корректно автоматически настраиваться на возможности линии. Намного легче стало устанавливать связь, да и ее качество стало выше. Но все же то, что делает автомат, не всегда идеально и некоторые параметры модема все-таки приходится менять вручную до сих пор. Самый простой пример. Каждый день вы звоните своему провайдеру, модемы начинают снюхиваться, раз, другой, а на третьей, наконец, связываются. Что же происходит? В первый раз модемы пищат друг другу в ухо и пытаются выяснить, как хорошо слышит удаленный модем. Происходит первая попытка связи - неудача, на следующей попытке - понижение скорости и дальнейшая адаптация к линии - опять неудача, и, наконец, модемы “снюхиваются”. И хорошо, если получается именно так, ведь иногда удаленный модем не так терпелив и бросает трубку уже после второй или третьей попытки. Для того, чтобы избежать этого можно просто понизить максимальную скорость, на которой модемы пытаются соединиться, но есть и более интересные и тонкие настройки, которые помогут вам не только избежать бестолковой напористости модема, но даже поднять скорость и качество соединения. Для того чтобы понять, чего же не хватает вашему модему, а точнее, вашей линии для полного счастья, лучше всего начать со сбора статистики. Процедура сия довольно скучна и требует некоторого терпения. В принципе, лучше всего воспользоваться программами-звонилками, которые умеют собирать статистику самостоятельно, но можно это сделать и с помощью программы HyperTerminal, по умолчанию инсталлируемой вместе с Windows. После того, как вы вдоволь пошатались по Сети, разрываем связь, залезаем в эту программу, создаем соединение, вместо кнопки Dial жмем Cancel, тем самым автоматически переходя в терминальный режим. Главное, чтобы модем после разрыва связи или при входе в терминальный режим не инициализировался, иначе вся статистика обнулится. Команды, заведующие статистикой, следует искать в документации, так как для модемов разных производителей они различаются. Практически все команды начинаются с пары символов “AT" (ATtention - внимание) – стандарт, созданный компанией Hayes Microcomputer Products. Итак, более или менее типичная статистика модема USR Sportster 56K Voice. ATI6 U.S. Robotics 56K Voice EXT Link Diagnostics... Chars sent 222119 Chars Received 3020828 Chars lost 0 Octets sent 179825 Octets Received 3026209 Blocks sent 11360 Blocks Received 24895 Blocks resent 137 Retrains Requested 1 Retrains Granted 3 Line Reversals 0 Blers 1674 Link Timeouts 73 Link Naks 60 Data Compression V42BIS 2048/32 Equalization Long Fallback Enabled Protocol LAPM/SREJ Speed 21600/21600 Last Call 00:54:00 Disconnect Reason is DTR dropped ATI11 U.S. Robotics 56K Voice EXT Link Diagnostics... Modulation V.34 Carrier Freq (Hz) 1829/1920 Symbol Rate 3200/3200 Trellis Code 64S-4D/64S-4D Nonlinear Encoding ON/ON Precoding OFF/ON Shaping ON/ON Preemphasis (-dB) 3/6 Recv/Xmit Level (-dBm) 32/16 Near Echo Loss (dB) 25 Far Echo Loss (dB) 56 Carrier Offset (Hz) -6536 Round Trip Delay (msec) 3 Timing Offset (ppm) 976 SNR (dB) 24 Speed Shifts Up/Down 42/37 Status :OK Чтобы разобраться в том, что собой представляют все эти значения и названия, вам придется прочитать сугубо теоретический абзац. Самые распространенные протоколы передачи данных V.34 и V.32 используют амплитудно-фазовую модуляцию сигнала. Несущая – синусоида определенной частоты, модулируется, то есть изменяется по амплитуде (громкости или уровню) и фазе. Телефонная линия, в свою очередь, рассчитана на то, чтобы пропускать сигналы в полосе частот от 300 до 3400 Гц. В идеальном варианте модем должен выбрать такую частоту несущей, чтобы ее частота находилась где-то посередине полосы пропускания, чтобы полностью и равномерно использовать весь спектр. Линия, со своей стороны, имеет свой динамический диапазон, ограниченный с одной стороны самым громким сигналом (перегрузка линии), а с другой стороны – шумами. Чаще всего это называют соотношением сигнал/шум (SNR), то есть во сколько раз сигнал на приемной стороне громче шума, к нему примешиваемого. Перейдем к расшифровке количественной статистики. Speed (иногда TX / RX Speed) - скорость приема и передачи данных. Так как исходящий трафик в Сеть намного меньше, чем входящий, наибольшее значение имеет скорость приема. Если разница в скоростях значительна, то один из модемов трудно справляется с линией (например, низок уровень входного сигнала, невысокое отношение сигнал/шум и т. д.). Retrains Requested / Retrains Granted - количество пересогласований параметров связи (ретрейнов). Requested - те ретрейны, которые запросил ваш модем, а Granted - количество ретрейнов, которые локальный модем согласился сделать по просьбе удаленного. Важным для нас является соотношение количества ретрейнов по отношению к времени соединения. Чем выше этот показатель, тем ниже стабильность линии. Чаще всего это означает, что в линии идут постоянные помехи или модемы плохо слышат друг друга. Blers (Block errors) - блоковые ошибки. Ошибки в блоках данных и протокола. Если имеет место большое количество блоковых ошибок, то проблемы наверняка в телефонной линии. Если у вас ДШ АТС, то можно не удивляться. Link Naks - отсутствие подтверждения. Удаленный модем не смог подтвердить прием одного или нескольких блоков. Disconnect Reason – причина разрыва связи. Здесь вы можете увидеть массу странных значений, но нормальным является выход с сообщением: DTR droррed. На некоторых моделях от USR можно увидеть “Unable to retrain”, что может означать наличие ошибки в микропрограмме. Noise bursts - количество скачков шума на линии, вызвавших сбои синхронизации низкого уровня. Чем больше таких скачков было зарегистрировано за единицу времени, тем ниже качество связи и, соответственно, нестабильнее соединение. По всем этим характеристикам вы можете судить, насколько стабильна ваша связь, но для того, чтобы понять, что творится на линии, нужно понять, что же мешает модему нормально работать, и, исходя из этого, его настраивать. Самые распространенные и слышимые паразиты в линии – это помехи. Часто, общаясь по телефону, можно услышать разговор соседей, шум, гул, музыку, секретные шифры и прочие прелести. Это постоянные помехи. Модему такие выкрутасы даются очень тяжело. Так как построить модель таких шумов у него нет никакой возможности, единственное, что ему остается – выбрать тот спектр сигнала, где этих шумов просто нет. Возможен также вариант, когда за счет уменьшения символьной скорости искажения будут минимально влиять на качество связи, но при этом, естественно, снизится скорость передачи данных. Импульсные помехи (щелчки, трески) имеют небольшую продолжительность, поэтому справиться с ними куда легче, чем с постоянными помехами и шумами. Для этого современными протоколами используются корректирующие коды. На данный момент самым эффективными были признаны “сверточные” коды, где каждый следующий символ зависит не только от данных, который он кодирует, но и от состояния блока кодирования. То есть учитывается некоторая предыстория, благодаря которой декодер способен найти потерянные символы. Отрицательным фактором использования корректировочных кодов является высокая нагрузка на DSP при декодировании. В итоге, далеко не все модемы способны декодировать все три уровня сложности таких кодов. Одно из слабых мест в модеме – система автоматической регулировки уровня (АРУ) входного сигнала. Блок АРУ служит для того, чтобы сигнал не был слишком силен или слишком слаб при декодировании его АЦП. Естественно, при усилении вместе с сигналом усиливаются и шумы, так что улучшения соотношения сигнал/шум не будет, зато если АРУ работает после АЦП, то некоторые разряды при слабом сигнале вообще не будут задействованы, то есть качество оцифровки будет плохим. Следующая проблема линии - эхо. Из-за плохого состояния кабелей и аппаратуры сигнал, переданный удаленному модему, может возвращаться назад, смешиваясь с полезным сигналом удаленного модема. Модемы умеют бороться с такими гадостями, оценивая вид “эха” на этапе установления соединения или в ходе ретрейна, и, в дальнейшем, убирая его из полезного сигнала. Этой задачей занимается подсистема “echo-canceller” (эхогаситель). Но эффективность этой подсистемы тоже не велика, так как некоторые разновидности эха имеют нелинейную природу и не могут быть описаны математической моделью. Практически каждое устройство на своем пути оставляет след в АЧХ, в результате чего какие-то частоты ослабляются, а какие-то усиливаются. Специально для таких случаев у модемов есть подсистема вроде эквалайзера, которая это все пытается компенсировать на этапе хендшейка или ретрейна. Естественно все, с чем не смог справиться “эквалайзер”, становится дополнительными шумами, мешающими работать на высоких скоростях. Кроме этой подсистемы модемы используют еще два ухищрения, позволяющие поднять соотношение сигнал/шум. Первое – “pre-emphasis” - использование стандартного фильтра перед передачей сигнала удаленному модему. Как правило, фильтр поднимает высокие частоты в надежде на то, что аппаратура между модемами ее испохабит до нужного уровня. Второе ухищрение – "non-linear precoding". Это уже более интеллектуальный механизм, который на основе коэффициентов удаленного модема вносит в сигнал искажения, в дальнейшем компенсирующиеся каналом связи. Для улучшения работы удаленного модема на прием в протоколах V.32T и V.34 есть еще один хитрый механизм, называемый “warping”. Не вдаваясь в подробности, его можно описать как специальную обработку сигнала, после которого АЦП удаленного модема сможет более точно декодировать сигнал. Каким путем он это делает, простым смертным лучше не знать, но там, где сигнал между модемами не проходит цифровых участков пути, этот режим лучше отключить. Есть еще некоторые искажения, которые или вообще не исправляются и требуют полноценного ретрейна, или устраняются достаточно просто, но о них мы говорить не будем. Смысл настройки модема заключается в том, чтобы оптимально сконфигурировать каждую подсистему модема, дабы ее ошибки не влияли на работу других подсистем. Однако начнем мы немного с другого. Вооружаемся глазом (желательно двумя) и смотрим, не имеет ли “лапша” (или как ее еще называют матерые телефонизаторы - “хлорка”), ведущая до щитка или распределительной коробки, скруток и повреждений. Качество проводов и их соединений влияют на количество тресков, писков, а оборудование станции отвечает за все остальные гадости, которые достаются в итоге вашему модему. Также желательно проверить, не влияют ли на качество связи телефонные аппараты, подключенные параллельно (методом сбора статистики или на глаз). Порой это дает неплохие результаты, но иногда возможно обратное – лично у меня дома при отключении одного аппарата производства какого-то “лохматого” года, модем вообще оглох. Просто ничего не слышал, как я его не настраивал. Вооружитесь отверткой и посмотрите, нет ли в розетках старого типа конденсаторов – убрав их, вы развяжете модему руки (или ноги? или микросхемы?). Бывало такое, что установленный конденсатор вообще не позволял соединиться с использованием протокола V.34 и модемы вяло и безответно пищали друг другу в уши. Еще можно заземлить компьютер – это снизит некоторые наводки внутри компьютера и модема, влияющие на связь, а также решит проблему плохой работы реле набора номера. Кроме вышеописанных проблем со страшными названиями, с которыми приходится бороться модему на линии, есть еще одно слабое место – ретрейны. Не согласования скорости, когда модемы решают, поднять или опустить скорость, а полная перенастройка параметров связи. Во время этой сложной процедуры модемы в наибольшей степени подвержены воздействию шумов или других неприятностей на линии, в результате чего или скорость может катастрофически упасть, или модемы просто разорвут связь. Естественно, чем меньше ретрейнов, тем стабильнее и равномернее происходит обмен данными. Избавиться от этой проблемы можно двумя путями. Первый – оптимальная настройка протокола и выбор наиболее эффективной скорости передачи данных. Второй – использование коэффициента агрессивности модема, который, однако, присутствует далеко не в каждой модели. Впрочем, специфические настройки модемов мы не будем описывать, а займемся настройкой подсистем и оптимизацией протокола. Для начала надо сразу запретить соединение без коррекции ошибок (если вы не играете по модему в старые DOS-игры). Иногда происходит следующее – вы дозваниваетесь провайдеру, происходит соединение, но до верификации пользователя дело так и не доходит. Если вы принудительно заставите модем устанавливать соединение только с коррекцией ошибок, то в большинстве случаев эта проблема будет решена, и вы не будете тратить время зря. Самое главное значение, исходя их которого модем выбирает скорость, это SNR - отношение сигнал/шум. Чем выше это значение, тем большая скорость связи может быть достигнута при соединении. Каждый модем по-своему определяет это соотношение, а также имеет свои собственные таблицы соответствия SNR и выбираемой скорости, но на практике коннекту на 33600 соответствует SNR= 35 Дб и выше, а для 16800 достаточно 24 Дб. Значение меняется динамически в процессе соединения, и каждый раз, анализируя SNR, модем решает - поднимать или снижать ему скорость. Следующий параметр, который необходимо настроить – это уровень мощности выходного сигнала (Xmit Level), то есть сигнала, поступающего в линию. Имеет смысл варьировать этот параметр в пределах от –8 до –13 дБм. Идеальный вариант подбора нужного значения – использование статистики удаленного модема. Оптимальное значение уровня сигнала, принимаемого удаленным модемом -25...-30 Дб. Неуверенная связь наблюдается в диапазоне -35...-40 Дб, а серьезные проблемы с ушами у удаленного модема начнутся при значении “Recv Level” ниже -40 Дб. При высоком уровне принимаемого сигнала модему приходится бороться с усилившимся эхом. Уровнями дальнего и ближнего эха заведуют два параметра – Far Echo Loss и Near Echo Loss. Главное, чтобы уровень принимаемого сигнала был выше уровня ближнего “эха”. Но как бы вы не настраивали уровни сигналов для приема или передачи, это будет действовать только на то время, пока модемы “снюхиваются”. Во время работы каждый из аппаратов способен попросить второй модем повысить или понизить уровень выходного сигнала. Некоторые модемы делают это не совсем корректно – запрашивают такой уровень, что сами не могут сигнал обработать, или происходит перегрузка канала. Если вы уверены, что проблема плохой связи в некорректной автоматической подстройке выходного сигнала, то его следует запретить. Иногда в настройках можно встретить запрещение изменения уровня сигнала удаленного модема, что также иногда помогает решить ряд проблем. Некоторые модемы позволяют изменять чувствительность приемника. Но не следует слишком сильно задирать уровень приема – вместе с ним увеличиваются шумы, так что соотношение сигнал/шум лучше не будет. Полезным действием станет понижение уровня принимаемого сигнала в тех случаях, когда входящий сигнал слишком громкий – тогда ваш модем сможет наиболее точно использовать все биты АЦП при декодировании сигнала, что, в свою очередь, приведет к более высоким скоростям и более стабильной связи. Если вы уже достаточно хорошо знаете возможности линии и ее скоростной предел, то можно ограничить нижнюю и верхнюю границу скорости соединения. В этом случае модем не будет пытаться повысить скорость, и ретрейнов будет меньше. Иногда это также бывает полезно сделать, когда связь с некоторыми модемами одного и того же пула вашего провайдера хуже, чем с остальными. Тогда, при повторном дозвоне, вы сможете соединиться на более высокой скорости. Нижнюю границу скоростей следует фиксировать при продолжительных помехах на линии, иначе, заслышав ее, модем решит сбросить скорость до очень низкого значения, и вам придется подождать минутку-другую, пока она опять не наберется. Все же, это неприменимо к линии с “плавающими” характеристиками, так как при ухудшении характеристик модем не сможет еще больше понизить скорость и разорвет связь связи. Иногда, особенно при постоянных шумах, ограничение скорости “сверху” лучше делать, уменьшая символьную скорость.
На начальной стадии соединения часто помогает активация режима установления связи на минимальной скорости с последующим разгоном. Если в статистике вы видите большое количество ошибок на прием, то имеет смысл сменить протокол коррекции ошибок, так как блоки, заведующие оным, могут самостоятельно инициировать ретрейны или пересогласования скорости. Андрей Забелин |
|
2000-2008 г. Все авторские права соблюдены. |
|