Для начала давайте выясним, как все-таки работает модем. Так как сигналы внутри компьютера цифровые, то есть передаются в виде нулей и единиц, а по телефонной линии сигналы передаются в виде синусоид, или же, выражаясь «умными» словами, в аналоговом виде, то необходимо устройство, которое выполняло бы преобразование в обе стороны. Таким устройством и является модем: внутри него находятся цифро-аналоговый и аналого-цифровой преобразователи, которые и выполняют нелегкую работу по преобразованию данных из одной формы представления в другую. Казалось бы, на этом все и должно закончиться, но реально телефонная связь требует от модема выполнения целого ряда дополнительных функций, таких, например, как: 1. Коррекция ошибок.
2. Сжатие и распаковка данных, сжатых другим модемом.
3. Оптимизация соединения с удаленным компьютером.
Это наиболее общие функции, но, к примеру, последняя требует, чтобы модем постоянно анализировал такие параметры линии, как полоса пропускания и отношение сигнал/шум, что, разумеется, проще сказать, чем сделать. Для выполнения всех этих расчетов модем располагает таким элементом, как микропроцессор, который не надо путать с центральным микропроцессором компьютера, хотя и работают они схоже. Что же касается коррекции ошибок, то данная задача решается не столько на аппаратном, сколько на программном уровне.
Существует некоторый набор инструкций и правил, согласно которым данные должны пересылаться между двумя модемами, называемый протоколом.
Протокол определяет именно то, каким образом данные будут пересылаться по телефонной линии, причем протокол оптимизирован таким образом, чтобы обеспечить наибольшую скорость соединения с минимальными потерями на помехах. В модемах используются протоколы трех видов:
протоколы коррекции ошибок;
протоколы сжатия данных;
протоколы передачи данных.
Первые определяют, каким образом отлавливать ошибки, возникшие в результате помех, и как их исправлять, вторые отвечают за формирование пакетов данных, пересылаемых модемом.
Сама по себе такая система жутко негибка, поскольку в этом случае нет никакой возможности настроить параметры соединения модема в каждом отдельном случае. Для управления модемом в процессе соединения была разработана система команд, с помощью которых он управляется операционной системой. Эти команды позволяют выбрать ту или иную скорость соединения, включать/выключать звук, тестировать и выводить на терминал параметры линии. Для того, чтобы понимать все эти команды, у модема предусмотрена программа, которая хранится либо у модема в ПЗУ, либо прикреплена к драйверу.
Для лучшего понимания того, как все это работает, давайте посмотрим, как происходит соединение вашего модема с удаленным.
Когда операционной системе необходимо установить соединение по телефонной линии через модем, она инициализирует модем с помощью некоторой команды. Затем, получив команду на набор номера, модем подключается к телефонной линии. Если в процессе инициализации модем не получил каких-либо дополнительных инструкций, он использует те настройки, которые были установлены в нем по умолчанию.