Протоколы
Протокол – это некоторое соглашение, которое оговаривает, как именно будут общаться несколько объектов (что угодно: программы, микросхемы с датчиками, да и те же люди, если приглядеться – например, протоколы передачи сообщений по азбуке Морзе).
Соответственно, устанавливать эти соглашения можно по-разному. Например, существует сетевая модель OSI – крутая в определённых кругах, однако тут мы её рассматривать не будем, рассмотрим лучше следующие уровни, где могут формироваться протоколы:
- физический: тут определяется среда передачи сигнала. Например, для протокола разговора людей это будет воздух, для электроники - провода. Тут также учитываются физические характеристики сигнала: для разговора необходим звук с частотой 16 – 20000 Гц, а для передачи сигнала – определённый уровень напряжения в проводах (смена уровня)
- информационный уровень – тут устанавливается механизм передачи 1 единицы информации – бита, звука, слова, байта и т. д.
- логический уровень - тут происходит передача уже смысла в виде предложений, команд. Именно здесь описываются правила начала и завершения разговора, очередности реплик, сами команды и прочее, а также правила адресации и подчинённости.
Итак, протоколы бывают разными. Выделяют кучу разных группировок, но мы рассмотрим следующие «разбиения» протоколов:
- синхронные и асинхронные протоколы
При использовании синхронных протоколов, понятное дело, идет постоянная синхронизация приёмника передатчиком ˆˆ. То есть передатчик у нас – как бы дирижёр а все приёмники – остальной оркестр. Когда дирижёр скажет играть – то бишь, читать – тогда остальные и начнут действовать.
Реализацией синхронизации может быть согласование таймеров, или, например, может быть выделена отдельная линия для передачи импульсов типа «прочитай сейчас». Вот как это примерно выглядит:
Рис 1. Синхронизация через отдельную линию
Нижняя линия связи – информационная, по ней мы и передаём наши данные, а вот верхняя – «временная», как только на ней уровень сигнала переходит с 0 в 1 – приёмнику можно считывать бит.
В асинхронных же протоколах приёмник считает, что передатчик точно работает с ним на одной и той же частоте. В том же оркестре – это как если бы каждый музыкант ориентировался по своему метроному. И понятно, что если вдруг у нас эти самые частоты не совпадают, то приёмник получает полную лабуду вместо информации >_<
Рис. 2. Передача при асинхронном протоколе
То есть через равные промежутки времени наш приёмник будет считывать единицу информации.
Получается, что в асинхронных протоколах расстояния между тактами могут быть только одинаковыми, а вот в синхронных – совсем не обязательно.
- параллельные и последовательные
Последовательные протоколы передают информацию побитно, через одну линию, а параллельные занимают несколько выводов, зато могут передавать, например, байт за раз:
Рис. 3. Параллельное (слева) и последовательное (справа) соединение
- дуплексные, полудуплексные и однонаправленные
Дуплексные протоколы (устройства, режимы работы) позволяют одновременно и принимать, и передавать данные – через два канала связи, обычно разделённых физически.
Полудуплексные же используют один канал связи попеременно для передачи и для приёма данных. При этом одновременное использование линии связи для передачи либо невозможно физически, либо –а-та-та! – приводит к так называемой коллизии.
Так, например, разговор по телефону – это дуплексная связь, а по рации – уже полудуплексная.
Ну и особняком стоят однонаправленные, они же симплексные, протоколы – тут, понятно, есть передатчик и приёмники, и ролями они не меняются.
Автор - Moriam =ˆˆ=