|
|
Интересную ссылку
прислал Михаил Ильин. Поскольку что у меня особое отношение :-)
к модемам, модемным протоколам, и прочим особенностям выжимания
скорости и устойчивости связи из наших телефонных линий, на
эту разработку я смотрю с уважением.
Большинство "западных" производителей сейчас
умеют быстро и дешево напаивать Роквелловский чипсет на печатные платы. При этом
иногда
забывая припаять некоторые несущественные детальки, вроде релюшки
для набора номера пульсом, и регулярно забывая про фильтры и защиту от перегрузок по входу.
Это тот массовый "модем за $40", которых сейчас можно купить в любом компьютерном подвальчике.
Винмодемы, софтмодемы, и прочие "контроллеры телефонной линии" за $20 я не рассматриваю,
хотя на хорошей телефонной линии будет работать даже такое. Кстати, невпайкой релюшек
грешат не только криворукие китайцы (им по штату положено) и производители PCMCIA модемов
(там релюшку зачастую некуда ставить), а и такие производители, как USR, который сейчас,
правда, подразделение 3COM.
Меньшинство производителей (тот же USR, ZyXEL) в более серьезных моделях модемов
делают честно - производят свой чипсет, или даже пользуются мощным "универсальным"
DSP, сами пишут и оптимизируют прошивки, старательно тестируют полученный результат...
нет, не на "идеальных двухпроводных линиях с нормированным по ISO затуханием",
это было бы слишком жестоко, но, похоже, и не на реальных телефонах. А скорее
на чем-то вроде "идеальном имитаторе реальной линии" - с нормированным шумом,
максимально приближенным к "белому", и нормированными импульсными помехами, с амплитудой не
превышающей указаного в паспорте на имитатор значения. Как результат - "крутой"
модем идеально работает на хорошей линии, сносно работает на тех линиях, где
дешевые "контроллеры телефона" уже издохли, но на реальных линиях, характеристики
которых можно показывать в фильмах ужасов, спектральная плотность шумов имеет
особенности, которые даже не снились западному разработчику (почему фирма USR
до сих пор не в курсе, что в линии может тупо "гудеть" 50Гц (или 60Гц - непринципиально),
и на "гудящих" линиях старательно пытается выбирать "низкие" полосы?),
а АЧХ наряду с ФЧХ... где-то лежала у меня картинка "гималайских пиков",
снятая (не мной) модемом IDC с одной линии... о чем это я? Ах да. На реальных линиях
"это" имеет все шансы сдохнуть с диагностикой UTR или уйти навечно в ретрейн,
возвращаясь оттуда на пару секунд в минуту.
Третьи производители... Третьи производители, вроде моего любимого IDC,
берут относительно недорогой "чипсетный" модем, и начинают старательно улучшать
то, что в принципе можно улучшить в chipset-based модеме. Прошивку супервизора,
то есть. Результат получается заметно лучше "контроллеров телефона" за $40,
примерно вровень с "крутыми" вариантами модемов (хотя дешевле), но на совсем плохой
линии дохнут и те, и другие - одни потому, что не тестировались на плохих линиях,
другие потому, что из [чипсета] конфетку не сделаешь.
Четвертые (так. меня понесло) изобретают свои собственные, как сейчас модно говорить -
proprietary - протоколы, изначально заточенные под линии повышенной некачественности.
Пример вечно будет жить в нашей памяти :-) - telebit trailblazer и его
великий и могучий PEP/turboPEP. Обладавший единственным недостатком -
этот самый PEP работал (естественно) только при связи между двумя телебитами,
с обычным модемом поднимался стандартный (и не особо отлаживавшийся)
протокол. Не помню, тогда уже был v34 или нет еще?...
Пятые же, в лице HT Systems, делают правильно.
Правильно - означает вот что. Железки - свои (ну, естественно, кремний
они сами не пекут, а используют стандартные DSP и обвязку, но готовыми
"чипсетами для модемов" не пользуются). Прошивка - своя. Протокол - стандартный
v34bis, то есть, можно звонить любимому провайдеру не задумываясь о последствиях.
А вот реализация... "Обкатка" модемов делается на наших, родных телефонных линиях,
со всеми их особенностями. Выбор параметров, естественно, полностью автоматизирован
(как и положено по стандартам), при этом есть (я так думаю - так было в IDC
и это было правильно) лёгкая пессимистичность в выборе скорости:
довольно часто "на самом деле" линия оказывается менее приспособленной
к передаче данных, чем получается по "замерам" модема,
и лучше уж гарантированно соединиться на меньшей скорости (подняв ее в процессе,
если результаты байтокачания окажутся удовлетворительными) чем попытаться...
и обломиться. При этом практически любой параметр
можно "нагнуть" в нужную сторону (или задать явно) - автоматика это хорошо,
но человек иногда знает лучше, как именно этой "глупой железке" будет лучше работать.
При этом обилие улучшений и доработок, которые можно было бы назвать "мелкими",
если бы именно они не помогали бы жить в наших, реальных, условиях...
v34 - асимметричный протокол, и скорость в каждую сторону определяется независимо.
При этом, варьируя, например, мощность передатчика, можно "перекашивать" канал
в нужную сторону - скажем, на передачу станет чуть помедленней, зато на прием - чуть побыстрей.
А можно и просто чуть снизить скорость - если канал реально используется меньше чем на 100%
- можно не пытаться в эту сторону держать максимум, а чуть-чуть снизить скорость,
выиграв при этом в надежности. Эта штучка ведет статистику переданных-принятых байтиков,
и умеет наклонять канал в нужную сторону.
А еще... ниже - цитата.
http://pvt.hts-spb.com/Ext.B/HtRasDl.zip
; (HtsVer=V1.00)
Работа с Интернет из-под mailer'а
Эта программа предназначена для совместного использования с модемами
класса HTS Express и какой-либо программой, например FTN mailer, которая
является "главной", то есть сама занимается дозвонкой по ряду номеров, и
при успешном соединении вызывает предлагаемую программу. Все это касается
только платформы Win32.
Суть проблемы состоит в том, что Win32 сервис удаленного доступа
(RasDial) не умеет устанавливать соединение без набора номера. Вся
процедура реализована как вызов системной функции RasDial с некими
параметрами, и она не позволяет пропустить фазу набора номера. То есть она
непременно будет инициализировать модем, посылать строки набора номера и
ждать ответа CONNECT. Соответственно, если модем уже соединился с
провайдером, то соединение будет разорвано и дозвонка повторена.
Метод предлагаемого решения состоит в следующем: так обмануть этот
сервис, чтобы он думал, что куда-то звонит и дозвонился. Для этой цели
используется штатный режим модема - выход в командный режим в OnLine по
DTR Drop при установке &D1, и специальное расширение &C2, которое
заставляет модем на время выхода в этот режим деактивизировать сигнал .
Также испольуется специальный вход в .Inf файл модема, который вместо
многочисленных команд инициализации посылает в модем пустые строки, а
вместо набора номера выдает команду ATO'-номер, что рассматривается
модемом как возврат в командный режим плюс исполнение (а точнее -
неисполнение и без диагностики) несуществующего модемного скрипта
"номер". Предлагаемая же программа просто заменяет собой обычное Windows
окно для звонка в Интернет, и ее можно заменить на любую аналогичную.
Кто не понял - специально для "обмана" виндового RAS, в модем введена фича.
Имитирующая потерю несущей :-)
Или, скажем, вопрос из FAQ (в вольном изложении):
Q: а чего это он при запуске моей любимой программы [нужное вписать]
орет как больной слон? Потом, правда, работает.
A: а это его ваша программа инитит первобытной строчкой at&f. Которая,
как требует стандарт, приводит модем в то самое "первобытное"
состояние с отключенным практически всем, что можно отключить.
Поскольку /вряд ли/ это то, что программе нужно на самом деле (просто старая она, наверно)
- он, конечно, делает что просит, но на всякий случай привлекает ваше внимание к
нетривиальному поведению отдельных программ. Иначе говоря: если так и надо -
игнорируйте, если так не надо - копайте программу.
| |
| |