Протокол передачи данных HDLC
Классический бит-ориентированный протокол HDLC (High-level Data Link Control – высокоуровневый протокол управления каналом) относится к группе тесно связанных друг с другом протоколов, произошедших от одного из первых протоколов передачи данных SDLC (Synchronous Data Link Control – синхронный протокол управления каналом). После разработки протокола SDLC корпорация IBM представила его на рассмотрение институтов ANSI (American National Standards Institute – Американский национальный институт стандартов) и ISO для утверждения в качестве стандарта США и международного стандарта. Институт ANSI модифицировал протокол в ADCCP (Advanced Data Communication Control Procedure – усовершенствованная процедура управления информационным обменом), a международная организация стандартов ISO переделала его в HDLC. После этого протокол HDLC был адаптирован для протокола доступа к каналу LAP (Link Access Procedure – процедура доступа к каналу), а затем протокол LAP модифицирован в протокол LAP-B(Link Access Procedure Balanced – процедура сбалансированного доступа), который более совместим с новой версией протокола HDLC. В основе всех этих протоколов лежат одни и те же принципы. Все они являются бит-ориентированными, и во всех применяется битовое заполнение, обеспечивающее прозрачность данных. Они различаются только в незначительных, но, тем не менее, существенных деталях.
Во всех бит-ориентированных протоколах используется формат кадра, показанный на рис. 8.3. Поле Address (Адрес) чрезвычайно важно для линий связи с несколькими машинами (многоточечных сетях), где оно используется для идентификации одной из машин. В двухточечных сетях это поле иногда используется, чтобы отличать команды от ответов. Поле Control (Управляющая информация) используется для хранения порядковых номеров, подтверждений и других служебных данных. Поле Data (Данные) может содержать произвольную информацию. Оно может быть любой длины, хотя эффективность контрольной суммы снижается с увеличением длины кадра из-за увеличения вероятности многочисленных пакетов ошибок. Поле Checksum (Контрольная сумма) является разновидностью циклического избыточного кода.
В качестве заголовка и трейлера кадра используется флаговый байт (01111110). В линиях «точка–точка», которые в текущий момент времени простаивают, флаговые последовательности передаются постоянно. Кадр минимального размера состоит из трех полей, занимающих в общей сложности 32 бита (не считая флаги в начале и в конце кадра).
Биты 8 8 8 16 8
Address | Control | Data | Checksum |
Рис. 8.3. Формат кадра бит-ориентированных протоколов
Все кадры можно разделить на три категории: информационные, супервизорные и ненумерованные. Содержимое поля Control для этих трех типов кадров показано на рис. 8.4.
Биты 1 3 1 3
а | Seq | P/F | Next |
б | Type | P/F | Next |
в | Type | P/F | Modifier |
Рис. 8.4. Управляющее поле: а – информационного кадра;
б – супервизорного кадра; в – ненумерованного кадра
В каждый момент времени в сети может находиться не более семи неподтвержденных кадров. Поле Seq содержит порядковый номер кадра. Поле Next является пересылаемым вместе с кадром подтверждением. Однако все протоколы придерживаются соглашения о том, что вместо номера последнего правильно принятого кадра в поле Next пересылается номер первого не принятого кадра (то есть следующего ожидаемого кадра). Впрочем, номер кадра, используемого для подтверждения, не принципиален. Важно лишь, чтобы все участники придерживались одного и того же соглашения. Бит P/F означает Poll/Final (Опрос/Финальный). Он используется, когда получатель опрашивает группу отправителей. В случае значения Р получатель предлагает отправителю посылать данные. Во всех кадрах, посылаемых отправителем (кроме последнего), бит P/F устанавливается в Р. В последнем кадре этот бит устанавливается в F. Некоторые протоколы используют бит P/F, чтобы заставить другую машину послать супервизорный кадр немедленно, не ожидая попутного потока данных. Этот бит также изредка используется в ненумерованных кадрах.
Тип супервизорного кадра указывается с помощью значения поля Туре. Если Туре = 0, значит, данный кадр является подтверждением. Он официально называется RECEIVE READY («к приему готов»). Такой кадр сообщает номер следующего ожидаемого кадра и применяется при отсутствии попутного потока данных для передачи подтверждения. Туре = 1 является признаком отрицательного подтверждения, официально называющегося REJECT («отказ»). Он применяется для сообщения об обнаружении ошибки передачи. Поле Next в этом случае содержит номер первого неверно полученного кадра (то есть первого кадра, который следует переслать повторно). Отправитель должен переслать повторно все неподтвержденные кадры, начиная с кадра с номером Next. Туре = 2 означает RECEIVE NOT READY («к приему не готов»). При этом, как и в случае RECEIVE READY, подтверждается прием всех кадров вплоть до Next – 1, однако отправителю сообщается, что передачу следует приостановить. Сигнал неготовности к приему предназначен не для обозначения наличия у получателя каких-либо временных проблем, например отсутствия свободной памяти в буферах. Когда получатель сможет продолжить работу, он пошлет сигнал готовности, отказа или другой управляющий кадр. Туре = 3 означает SELECTIVE REJECT («выборочный отказ»). Такой байт представляет собой запрос повторной передачи только указанных кадров. Таким образом, если получатель хочет сохранить в буфере несвоевременные кадры для последующего использования, он может запросить повторную передачу любого кадра с помощью SELECTIVE REJECT. Протоколы HDLC и ADCCP поддерживают этот тип кадра, а протоколы SDLC и LAP-B – нет, то есть в этих протоколах нет команды выборочного отказа, а кадры со значением Туре = 3 не используются.
Третий класс кадров составляют ненумерованные кадры. Иногда они применяются для служебных целей, но могут переносить и данные, когда требуется ненадежный, не требующий соединения сервис. В отличие от предыдущих двух классов, в которых различные бит-ориентированные протоколы были почти идентичными, в вопросе использования ненумерованных кадров они очень сильно различаются. Для обозначения типа кадра зарезервировано 5 бит, однако используются значительно меньше, чем 32 возможных комбинации.
Все протоколы поддерживают команду DISC (Disconnect – прервать связь), позволяющую предупредить, что машина скоро будет выключена (например, для профилактического обслуживания). Также имеется команда SNRM (Set Normal Response Mode – установить нормальный режим ответа), позволяющая машине, только что вернувшейся в подключенный режим (on-line), заявить о своем присутствии и принудительно обнулить все порядковые номера. Третьей командой, поддерживаемой всеми указанными протоколами, является FRMR (FRaMe Reject – отклонить кадр), применяющаяся тогда, когда приходит кадр с верной контрольной суммой, но недопустимой семантикой (например, супервизорный кадр со значением Туре = 3 в протоколе LAP-B, кадр с длиной менее 32 бит, недопустимый управляющий кадр и т. д.).
Управляющие кадры могут быть повреждены или потеряны так же, как и информационные кадры, поэтому им тоже нужны подтверждения. Для этой цели предназначен специальный служебный кадр, называемый UA (Unnumbered Acknowledgement – ненумерованное подтверждение).
Дата добавления: 2015-12-17; просмотров: 1032;