Смекни!
smekni.com

Протокол HDLC (стр. 3 из 5)

Пятый двоичный разряд, бит P/F или бит опроса/окончания принимается во внимание только тогда, когда он установлен в 1. Бит P/F называется битом P, когда он используется первичной станцией, и битом F, когда он используется вторичной станцией. Он используется первичной и вторичной станциями для выполнения следующих функций:

Первичная станция использует бит P для санкционирования передачи кадра статуса от вторичной станции. P также может означать опроc.

Вторичная станция отвечает на бит P кадром данных или состояния с битом F. Бит F может также означать окончание передачи вторичной станцией в режиме нормального ответа (NRM).

Только один бит P (ожидающий ответа в виде F бита) может быть активным в канале в любой момент времени. Если некоторый бит P установлен в 1, он может быть использован в качестве контрольной точки. То есть P=1 как бы говорит: ответьте мне, потому что я хочу знать ваш статус. Контрольные точки играют большую роль в реализации механизма управления трафиком. Это также способ устранения неопределенностей и отмены накопленных транзакции. Бит P/F может использоваться и интерпретироваться следующим образом:

В режиме NRM вторичная станция не может вести передачу, пока не будет получена команда с установленным в 1 битом P. Первичная станция может запросить информационные (I) кадры путем посылки кадра с установленным в 1 битом P или путем посылки некоторых супервизорных (S) кадров (RR, REJ или SREJ) с установленным в 1 битом P.

В режимах ARM и ABM информационные кадры могут передаваться без получения полномочий на передачу с помощью команды, имеющей бит P. Поэтому бит P используется в этом случае для запроса ответа с установленным в 1 битом F так быстро, насколько это возможно. Например, в случае двунаправленной одновременной (полнодуплексной) передачи, когда по получении команды с установленным в 1 битом Р передачу ведет вторичная станция, бит F устанавливается в 1 в самом первом очередном ответе. Передача кадра с установленным в 1 битом F не требует, чтобы вторичная станция прекратила передачу. Вслед за кадром с установленным в 1 битом F могут быть еще переданы кадры. В режимах ARM и ABM не следует интерпретировать бит F как окончание передачи вторичной станцией; его следует просто считать индикатором ответа на предыдущий кадр.

Описание команд и ответов

Супервизорный формат показан на рис.1 и предусматривает четыре команды и ответа (RR, RNR, REJ, SREJ), которые представлены на рис.4.5. (Обобщенная сводка всех команд и ответов приведена в таблице 1). Назначение этого формата состоит в выполнении нумерованных [т.е. использующих порядковые номера кадров N(R)] супервизорных функций, таких, как подтверждение (квитирование), опрос, временная задержка передачи данных и восстановление после ошибок. Кадры супервизорного формата не содержат информационного поля, следовательно, как показано на рис.1, в них располагается только порядковый номер приема N(R). Супервизорный формат может быть использован для подтверждения приема кадров от передающей станции.

Функции команд и ответов, используемых супервизорным форматом:

RR (Receive ready - Готов к приему) используется первичной или вторичной станцией для индикации того, что станция готова принять информационный кадр и/или подтвердить (квитировать) ранее принятые кадры с помощью поля N(R). Если станция до этого, используя команду "Не готов к приему", посылала уведомление о том, что она занята, теперь она использует команду Готов к приему для индикации того, что она свободна и готова принять данные. Первичная станция может также использовать команду Готов к приему для опроса вторичной станции.

RNR (Receive not ready - Не готов к приему) используется станцией для индикации состояния занятости. Эта команда уведомляет передающую станцию о том, что принимающая станция не способна принять дополнительные поступающие данные. Кадр RNR, используя поле N(R), может подтвердить прием ранее переданных кадров. Состояние занятости может быть сброшено посылкой кадра RR, а также некоторых других кадров, которые будут рассмотрены позднее.

REJ (Reject - Неприем) используется для запроса передачи кадров, начиная с кадра, указанного в поле N(R). Подтверждаются все кадры с номерами до N(R) - 1. Кадр REJ может использоваться для реализации метода "Возвращение-на-N" (Go-Back-N).

SREJ (Selective reject - Выборочный неприем) используется станцией для запроса повторной передачи единственного кадра, который определен в поле N(R). Как и в случае включающего подтверждения, подтверждение распространяется на все информационные кадры с номерами до N(R) - 1 включительно. Выборочный неприем позволяет реализовать режим выборочного повторения. Как только передан кадр SREJ, следующие кадры принимаются и сохраняются для повторно передаваемого кадра.

Таблица 1
Код управляющего поля
1 2 3 4 5 6 7 8 Команды Ответы
I-формат 0 N(S) * N(R) I - Информация I - Информация
S-формат 1 0 0 0 * N(R) RR - Готов к приему RR - Готов к приему
1 0 0 1 * N(R) REJ - Неприем REJ - Неприем
1 0 1 0 * N(R) RNR - Не гот.к приему RNR - Не гот.к приему
1 0 1 1 * N(R) SREJ - Выбор. неприем SREJ - Выбор. неприем
U-формат 1 1 0 0 * 0 0 0 UI - Ненумеров. информ. UI - Ненумеров. информ.
1 1 0 0 * 0 0 1 SNRM - Установить NRM
1 1 0 0 * 0 1 0 DISC - Разъединить RD- Запрос разъед.
1 1 0 0 * 1 0 0 UP- Ненумеров. опрос
1 1 0 0 * 1 1 0 UA - Ненумеров.подтв.
1 1 0 0 * 1 1 1 TEST - Проверка TEST - Проверка
1 1 1 0 * 0 0 0 SIM - Уст.реж.иниц. RIM - Запр.реж.иниц.
1 1 1 0 * 0 0 1 FRMR - Неприем кадра
1 1 1 1 * 0 0 0 SARM - Установить ARM DM - Режим разъед.
1 1 1 1 * 0 0 1 RSET - Сбросить
1 1 1 1 * 0 1 0 SARME - Уст.расш.ARM
1 1 1 1 * 0 1 1 SNRME - Уст.расш.NRM
1 1 1 1 * 1 0 0 SABM -установить ABM<TD&NBSP;< TD>
1 1 1 1 * 1 0 1 XID - Идентиф. станции XID - Идентиф. станции
1 1 1 1 * 1 1 0 SABME -Уст.расш. ABM

Системные параметры Т1, N2, N1, K и рекомендации по их установке

Таймер Т1 запускается с момента передачи каждого кадра и используется для инициирования повторной передачи, в случае его переполнения. При выборе периода таймера Т1 необходимо учитывать, запускается ли таймер по началу или по концу кадра. Для правильной работы процедуры необходимо, чтобы период таймера Т1 был больше, чем максимальное время между передачей некоторого кадра (SARM, SABM, DM, DISC, FRMR, I или супервизорной команды) и приемом соответствующего кадра, возвращаемого в качестве отклика на этот кадр (UA, DM или подтверждающий кадр).

Счетчик N2 используется для определения максимального числа повторных передач, выполняемых по переполнении таймера Т1. Переменные Т1 и N2 используются также командами / ответами установления звена, такими, как SABM и UA.

Счетчик N1 - максимальное число битов в I-кадре. Определяет максимальную длину информационных полей.

Размер окна К - максимальное число переданных, но не подтвержденных I-кадров. Это максимальное число последовательно занумерованных I-кадров, которые в любой момент времени станции могут передать без получения подтверждения. Оно не должно быть более 7.

Параметры Т1, N2, N1 и K являются системными, подлежащими согласованию с администрацией на некоторый период времени.

Описание алгоритма

Обеспечение кодопрозрачности

HDLC является кодопрозрачным протоколом. Он не зависит от конкретного кода (ASCII/IA5 или EBCDIC) при выполнении функции управления каналом. Восьмибитовая комбинация флага 01111110 помещается в начале и в конце кадра, чтобы дать возможность приемнику распознать начало и конец кадра. Возможны случаи, когда прикладной процесс помещает в данных пользователя последовательность 01111110, совпадающую с флагом. В этом случае передающая станция в поток выходных данных помещает 0 после 5 подряд идущих единиц, встретившихся в любом месте между начальным и конечным флагами кадра. Такая вставка производится в адресное, управляющее, информационное поля и поле CRC. Этот метод называется вставкой битов(bit staffing) ; такую же функцию выполняет знак DLE в протоколе BSC. После того как завершается вставка битов в кадр и по концам кадра помещаются флаги, кадр передается приемнику по каналу.