Дмитрий Анисимов
Администратор
Откуда: Верхняя Салда Всего сообщений: 8269 СсылкаДата регистрации на форуме: 1 мар. 2008
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 16 февраля 2015 9:42
Пока администратор на заругался (НОВЫЙ ВОПРОС - НОВАЯ ТЕМА), отвечу.
Схема соединения между двумя устройствами через модемы выглядит так:
УСТРОЙСТВО 1 <-> порт <-> МОДЕМ 1 <---> линия <---> МОДЕМ 2 <-> порт <-> УСТРОЙСТВО 2
Соединения через порты - "короткие и жесткие", в них практически исключены помехи, ошибки, обрывы и пр. Соединение через линию - потенциально ненадежное, там почти всегда есть помехи, а значит ошибки, обрыв связи и т.п.
Физически (электрически) и логически (протокольно) данные, передаваемые через порты, и они же, передаваемые в линии, "выглядят" по-разному. Например, УСТРОЙСТВО 1 передает МОДЕМУ 1 через порт 1 байт данных в виде последовательности прямоугольных импульсов (нулей и единиц). Чтобы модем мог выделить этот байт в последовательности, перед байтом добавляется стартовый бит, после него - стоповый (могут быть другие форматы, но я не буду усложнять рассказ). И т.к. соединение через порт - "надежное", то мы уверены, что байт будет принят модемом через порт именно в том виде, в каком он выдан в этот порт устройством.
Но далее этот байт нужно передать по линии. Линия - абстрактное понятие. Это может быть провод (телефонная линия), а может быть "воздух" (беспроводная передача). В любом случае через линию нельзя передавать прямоугольные импульсы, т.к. они в силу физических причин затухнут и "не дойдут" до МОДЕМА 2. И нельзя надеяться на то, что на передаваемый байт не повлияют помехи, т.е. на то, что он будет передан с первого раза и без ошибок. Поэтому в линии - свой протокол и своя физика. Поместив полученный от УСТРОЙСТВА 1 байт данных, МОДЕМ 1 "шифрует" его, добавляя какой-нибудь заголовок, вычисленную определенным образом контрольную сумму и т.п. Эти дополнительные данные помогут принимающей стороне понять, в неискаженном виде она приняла данные, или же они "испорчены". Далее полученная логическая последовательность "модулируется" и передается в линию в виде сигналов "сложного" вида (условно говоря, синусоида с изменяющейся частотой, амплитудой). Такая форма сигнала позволяет передавать через определенную среду (провод, воздух) его на большие расстояния.
МОДЕМ 2 получает сигнал, "распаковывает" его (проверяет заголовок, контрольную сумму), и если все нормально (не обнаружено искажения данных), помещает извлеченный байт в свой буфер и передает УСТРОЙСТВУ 2 опять в виде последовательности прямоугольных импульсов со стартовым и стоповым битами. Таким образом, байт в каком виде был отправлен УСТРОЙСТВОМ 1, в таком и получен УСТРОЙСТВОМ 2. При этом оба УСТРОЙСТВА абсолютно ничего не знают о том, как именно МОДЕМЫ передавали сигнал по линии. Собственно, они и о МОДЕМАХ-то могут не знать.
Чтобы передача состоялась, важно следующее:
1) Оба УСТРОЙСТВА должны поддерживать один и тот же свой (своего уровня) протокол передачи данных. Образно говоря, один и тот же язык. Если УСТРОЙСТВО 1 передает по-русски, а УСТРОЙСТВО 2 умеет принимать только на суахили, они друг друга не поймут.
2) Оба МОДЕМА должны поддерживать один и тот же протокол своего уровня. Образно говоря, если МОДЕМ 1 упаковывает на конверте пишет адрес в формате "индекс - город - улица", а МОДЕМ 2 умеет расшифровывать только адреса вида "улица - город - индекс", то данные "не дойдут", т.е. не будут приняты.
3) В каждой паре УСТРОЙСТВО - МОДЕМ должен соблюдаться свой формат передачи данных. Опять аналогия: если УСТРОЙСТВО передает "слова" быстро и разделяет их пробелами, а МОДЕМ умеет работать только медленно, и чтобы между словами стояли точки, они друг друга поймут неправильно, и в линию уйдет не то .что было передано через порт (или не уйдет вообще ничего).
Ну, и форма передачи данных по линии должна соответствовать природе этой линии. Т.е. (опять аналогия) если письмо нужно передать под водой, оно не должно быть помещено в бумажный конверт. Но это уже "внутренняя" забота модемов.
Так вот, при настройке модемов, приборов, портов мы задаем именно скорости через порт, т.е. скорости УСТРОЙСТВО 1 <-> порт <-> МОДЕМ 1 на одной стороне и МОДЕМ 2 <-> порт <-> УСТРОЙСТВО 2 на другой. Скорость в линии выбирают сами модемы - их протокол позволяет это делать. В процессе передачи данных эта скорость может меняться; передача может останавливаться, восстанавливаться, повторяться, проверяться. При этом УСТРОЙСТВА об этом чаще всего не знают. Они "тупо" передают то, что должны передавать, в свои порты и оттуда же получают данные. Есть, конечно, протоколы, в которых устройство управляет модемом, но это протокол, скажем так, уровня операционной системы. Т.е. он возникает вот здесь: УСТРОЙСТВО 1 <-> порт (буфер) устройства <-> управление портами <-> порт (буфер) модема <-> МОДЕМ 1.
|