Состояние логического разъединения (LDS — Logical Disconnect State)
Если вторичная станция находится в режиме нормального разъединения (NDM), то она может принимать кадры только после получения явного разрешения от первичной. Если же в асинхронном режиме разъединения (ADM), то вторичная станция может самовольно инициировать передачу.
Состояние инициализации (IS — Initialization State)
Используется для передачи управления на удалённую комбинированную станцию и для обмена параметрами между удалёнными станциями.
Состояние передачи информации (ITS — Information Transfer State)
Всем станциям разрешено вести передачу и принимать информацию. Станции могут находиться в режимах NRM, ARM, ABM.
Режимы состояния передачиHDLC поддерживает три режима логического соединения, отличающиеся ролями взаимодействующих устройств:
Режим нормального ответа (Normal Response Mode, NRM) требует инициации передачи в виде явного разрешения на передачу от первичной станции. После использования канала вторичной станцией (ответа на команду первичной), для продолжения передачи она обязана ждать другого разрешения. Для выбора права на передачу первичная станция проводит круговой опрос вторичных. Используется в основном в соединениях точка-многоточка.
Режим асинхронного ответа (Asynchronous Response Mode, ARM) даёт возможность вторичной станции самой инициировать передачу. В основном используется в соединениях типа кольцо и многоточечных с неизменной цепочкой опроса, так как в этих соединениях одна вторичная станция может получить разрешение на передачу от другой вторичной и в ответ начать передачу. То есть разрешение на передачу передаётся по типу маркера (token). За первичной станцией сохраняются обязанности по инициализации линии, определению ошибок передачи и логическому разъединению. Позволяет уменьшить накладные расходы, связанные с началом передачи.
Асинхронный сбалансированный режим (Asynchronous Balanced Mode, ABM) используется комбинированными станциями. Передача может быть инициирована с любой стороны, может происходить в полном дуплексе. В режиме ABM оба устройства равноправны и обмениваются кадрами, которые делятся на кадры-команды и кадры-ответы.
Конфигурации канала
Для обеспечения совместимости между станциями, которые могут менять свой статус(тип), в протоколе HDLC предусмотрены 3 конфигурации канала:
Несбалансированная конфигурация (UN — Unbalanced Normal) обеспечивает работу 1 первичной и одной или нескольких вторичных станций в (симплексном)полудуплексном и полнодуплексном режимах, с коммутируемым или некоммутируемым каналом.
Симметричная конфигурация (UA — Unbalanced Asynchronous) обеспечивает взаимодействие двух двухточечных несбалансированных станций. Используется 1 канал передачи, в который мультиплексируются и команды и ответы. В данное время не используется.
Сбалансированная конфигурация (BA — Balanced Asynchronous) состоит из 2 комбинированных станций. Передача в(симплексном) полудуплексном иполнодуплексном режимах, с коммутируемым или некоммутируемым каналом. Каждая станция несёт одинаковую ответственность за управление каналом.
КадрыКадры HDLC можно передавать, используя синхронные и асинхронные соединения. В самих соединениях нет механизмов определения начала и конца кадра, для этих целей используется уникальная в пределах протокола битовая последовательность (FD — Frame Delimiter) '01111110'(0x7E в шестнадцатеричном представлении), помещаемая в начало и конец каждого кадра. Уникальность флага гарантируется использованием битстаффинга в синхронных соединениях и байтстаффинга в асинхронных. Битстаффинг — вставка битов, здесь — бита 0 после 5 подряд идущих битов 1. Битстаффинг работает только во время передачи информационного поля (поля данных) кадра. Если передатчик обнаруживает, что передано подряд пять единиц, то он автоматически вставляет дополнительный ноль в последовательность передаваемых битов (даже если после этих пяти единиц и так идёт ноль). Поэтому последовательность 01111110 никогда не появится в поле данных кадра. Аналогичная схема работает в приемнике и выполняет обратную функцию. Когда после пяти единиц обнаруживается ноль, он автоматически удаляется из поля данных кадра. В байтстаффинге используется escape-последовательность, здесь — '01111101'(0x7D в шестнадцатеричном представлении), то есть байт FD(0x7E) в середине кадра заменяется последовательностью байтов (0x7D, 0x5E), а байт (0x7D) — последовательностью байтов (0x7D, 0x5D).
Во время простоя среды передачи при синхронном соединении последовательность 0x7E ('01111110') постоянно передаётся по каналу для поддержания битовой синхронизации. Может иметь место совмещение последнего бита 0 одного флага и начального бита 0 следующего. Время простоя также называется межкадровым временны́м заполнением.
Структура кадров
Структура кадра HDLC, включая флаги FD:
Флаг FD | Адрес | Управляющее поле | Информационное поле | FCS | Флаг FD |
8 бит | 8 бит | 8 или 16 бит | 0 или более бит, кратно 8 | 16 бит | 8 бит |
Флаги FD — открывающий и закрывающий флаги, представляющие собой коды 01111110, обрамляют HDLC-кадр, позволяя приемнику определить начало и конец кадра. Благодаря этим флагам в HDLC-кадре отсутствует поле длины кадра. Иногда флаг конца одного кадра может (но не обязательно) быть начальным флагом следующего кадра.
Адрес выполняет свою обычную функцию идентификации одного из нескольких возможных устройств только в конфигурациях точка-многоточка. В двухточечной конфигурации адрес HDLC используется для обозначения направления передачи — из сети к устройству пользователя (10000000) или наоборот (11000000).
Управляющее поле занимает 1 или 2 байта. Его структура зависит от типа передаваемого кадра. Тип кадра определяется первыми битами управляющего поля: 0 — информационный, 10 — управляющий, 11 — ненумерованный тип. В структуру управляющего поля кадров всех типов входит бит P/F, он по-разному используется в кадрах-командах и кадрах-ответах. Например, станция-приемник при получении от станции-передатчика кадра-команды с установленным битом P немедленно должна ответить управляющим кадром-ответом, установив бит F.
Информационное поле предназначено для передачи по сети пакетов протоколов вышележащих уровней — сетевых протоколов IP, IPX, AppleTalk, DECnet, в редких случаях — прикладных протоколов, когда те выкладывают свои сообщения непосредственно в кадры канального уровня. Информационное поле может отсутствовать в управляющих кадрах и некоторых ненумерованых кадрах.
Поле FCS (Frame Check Sequence) — контрольная последовательность, необходимая для обнаружения ошибок передачи. Её вычисление в основном производится методом циклического кодирования с производящим полиномом X16+X12+X5+1 (CRC-16) в соответствии с рекомендацией CCITT V.41. Полученная CRC побитово инвертируется и записывется в обратной последовательности. Это позволяет обнаруживать всевозможные кортежи ошибок длиной до 16 бит вызываемые одиночной ошибкой, а также 99,9984 % всевозможных более длинных кортежей ошибок. FCS составляется по полям Адрес, Управляющее поле, Информационное поле. В редких случаях используются другие методы циклического кодирования. После просчёта FCS на стороне приёмника он отвечает положительной или отрицательной квитанцией. Повтор кадра передающей стороной выполняется по приходу отрицательной квитанции или по истечении тайм-аута.
Типы кадров
I-кадры (информационные кадры, кадры данных)
Предназначены для передачи данных пользователя. В процессе передачи информационных блоков осуществляется их нумерация в соответствии с алгоритмом скользящего окна. После установления соединения данные и положительные квитанции начинают передаваться в информационных кадрах. Логический канал HDLC является дуплексным, так что информационные кадры, а значит, и положительные квитанции могут передаваться в обоих направлениях. Если же потока информационных кадров в обратном направлении нет или же нужно передать отрицательную квитанцию, то используются управляющие кадры. При работе HDLC для обеспечения надёжности передачи используется скользящее окно размером в 7 кадров (при размере управляющего поля 1 байт) или 127 (при размере управляющего поля 2 байта). Для поддержания алгоритма окна в информационных кадрах станции-отправителя отводится 2 поля:
N(S) — номер отправляемого кадра;
N(R) — номер кадра, который станция ожидает получить от своего партнера по диалогу.
Предположим для определенности, что станция А отправила станции В информационный кадр с некоторыми значениями NA(S) и NA(R). Если в ответ на этот кадр приходит кадр от станции В, в котором номер посланного этой станцией кадра NB(S) совпадает с номером ожидаемого станцией А кадра NA(R), то передача считается корректной. Если станция А принимает кадр-ответ, в котором номер отправленного кадра NB(S) неравен номеру ожидаемого NA(R), то станция А этот кадр отбрасывает и посылает отрицательную квитанцию REJ (отказ) с номером NA(R). Приняв отрицательную квитанцию, станция В обязана повторить передачу кадра с номером NA(R), а также всех кадров с большими номерами, которые она уже успела отослать, пользуясь механизмом скользящего окна.
I-кадры также содержат бит опрос/ответ P/F (poll/final). В режиме NRM ведущий терминал использует бит P для опроса, ведомый — бит F в последнем I-кадре ответа. В режимах ARM и ABM биты P/F используются для форсирования ответа.
Команда/ Ответ | Описание | Формат упр. поля 8…7…6…5…4…3…2…1….. |
C/R | Данные пользователя | .-N(R)-… P/F…..-N(S)-..0 |
S-кадры (управляющие
Используются для контроля потока ошибок передачи. В управляющих кадрах передаются команды и ответы в контексте установленного логического соединения, в том числе запросы на повторную передачу искаженных информационных блоков:
Готов к Приёму (RR)
Используется как положительная квитанция (до N(r)-1).
Ведущая станция может сделать опрос, установив бит P.
Ведомая станция на опрос может ответить кадром с установленным F битом, если у неё нет данных для передачи.
Не готов к Приёму (RNR)
Используется как положительная квитанция и запрос остановить передачу I-кадров до получения следующего кадра RR.
Ведущая или Комбинированная станции могут установить бит P для уточнения статуса приёма ведомой/комбинированной станции.
Ведомая/комбинированная станции могут ответить установкой бита P как индикации занятости станции.
Неприем (REJ)
Часто используется как отрицательная квитанция приемника
Неприем кадров последнего окна (повтор передачи с кадра N(r))
Выборочный Неприем(SREJ)
Неприем конкретного кадра (повтор передачи одного кадра)
PPP (англ. Point-to-Point Protocol) — двухточечный протокол канального уровня (Data Link) сетевой модели OSI. Обычно используется для установления прямой связи между двумя узлами сети, причем он может обеспечить аутентификацию соединения, шифрование (с использованием ECP, RFC 1968) и сжатие данных. Используется на многих типах физических сетей: нуль-модемный кабель, телефонная линия, сотовая связь и т. д.
Часто встречаются подвиды протокола PPP, такие как Point-to-Point Protocol over Ethernet (PPPoE), используемый для подключения по Ethernet, и иногда через DSL; и Point-to-Point Protocol over ATM (PPPoA), который используется для подключения по ATM Adaptation Layer 5 (AAL5), который является основной альтернативой PPPoEдля DSL.
PPP представляет собой целое семейство протоколов: протокол управления линией связи (LCP), протокол управления сетью (NCP), протоколы аутентификации (PAP,CHAP), многоканальный протокол PPP (MLPPP).
Основные характеристикиPPP протокол был разработан на основе HDLC и дополнен некоторыми возможностями, которые до этого встречались только в проприетарных протоколах.
Автоматическая настройка
Link Control Protocol (LCP) обеспечивает автоматическую настройку интерфейсов на каждом конце (например, установка размера пакетов) и опционально проводит аутентификацию. Протокол LCP работает поверх PPP, то есть начальная PPP связь должна быть до работы LCP.
RFC 1994 описывает Challenge-handshake authentication protocol (CHAP), который является предпочтительным для соединений с провайдерами. Уже устаревший Password authentication protocol (PAP) всё еще иногда используется.
Другим вариантом аутентификации через PPP является Extensible Authentication Protocol (EAP).[1]
После того, как соединение было установлено, поверх него может быть настроена дополнительная сеть. Обычно используется Internet Protocol Control Protocol (IPCP), хотя Internetwork Packet Exchange Control Protocol (IPXCP) и AppleTalk Control Protocol (ATCP) были когда-то популярны. Internet Protocol Version 6 Control Protocol(IPv6CP) получит большее распространение в будущем, когда IPv6 заменит IPv4 как основной протокол сетевого уровня.
Многопротокольная поддержка
PPP позволяет работать нескольким протоколам сетевого уровня на одном канале связи. Другими словами, внутри одного PPP-соединения могут передаваться потоки данных различных сетевых протоколов (IP, Novell IPX и т. д.), а также данные протоколов канального уровня локальной сети. Для каждого сетевого протокола используется Network Control Protocol (NCP) который его конфигурирует (согласовывает некоторые параметры протокола).
Обнаружение закольцованных связей
PPP обнаруживает закольцованные связи, используя особенность, включающую magic numbers. Когда узел отправляет PPP LCP сообщения, они могут включать в себя магическое число. Если линия закольцована, узел получает сообщение LCP с его собственным магическим числом вместо получения сообщения с магическим числом клиента.