Управление потоком в HDLC осуществляется с помощью
передающих и принимающих окон. Окно устанавливается на каждом конце канала
связи, чтобы обеспечить резервирование ресурсов обеих станций. Этими ресурсами
могут быть ресурсы вычислителя или пространство буфера. В большинстве случаев
окно обеспечивает и буферное пространство, и правила нумерации (сообщений). Окно
устанавливается во время инициирования сеанса связи между станциями. Если
станция А и станция В должны обменяться данными, А резервирует окно для В, а В
резервирует окно для А. Использование окон необходимо для полнодуплексных
протоколов, потому что они подразумевают непрерывный поток кадров в принимающий
узел без периодических подтверждений с остановкой и ожиданием.
Переменные состояния станции V(S) и V(R). Окна в
принимающем и передающем узлах управляются переменными состояния, которые
представляют по сути состояние счетчика. Передающий узел поддерживает переменную
состояния посылки V(S). Это порядковый номер следующего по очереди I-кадра,
который должен быть передан. Принимающий узел поддерживает переменную состояния
приема V(R), которая содержит номер, который, как ожидается, является порядковым
номером следующего I-кадра. V(S) увеличивается на 1 при передаче каждого кадра и
помещается в поле порядкового номера посылки кадра. Получив кадр, принимающий
узел производит проверку наличия ошибок передачи и сравнивает порядковый номер
со своим V(R). Если кадр может быть принят, узел увеличивает V(R) на 1, помещает
его в поле порядкового номера приема кадра подтверждения АСК и посылает этот
кадр в узел-отправитель, завершая квитирование передачи.
Если V(R) не равен порядковому номеру посылки в кадре или
обнаружена ошибка, значит, что-то произошло, и после тайм-аута в
узел-отправитель посылается NAK [с порядковым номером приема, содержащим
значение V(R)]. В большинстве протоколов этот NAK называется Неприем (REJ) или
Выборочный неприем (SREJ). Значение V(R) уведомляет передающее устройство ООД о
том, что ожидается посылка нового кадра. Т. к. передатчик восстанавливает старое
значение V(S) и повторяет передачу кадра, порядковый номер которого совпадает со
значением V(S).
Во многих системах для V(S) и V(R) у порядковых номеров в кадре
используются числа 0-7. если переменные состояния в результате последовательного
увеличения достигли 7, то, начиная с 0, эти числа снова используются. Вследствие
повторного использования чисел устройствам сттанциям не разрешено посылать кадр
с порядковым номером, который не был подтвержден. Например, протокол должен
дождаться подтверждения кадра с номером 6, прежде чем он опять использует
V(S)=6. Этот процесс показан на рис.1. Здесь кадры с 6 по 4 еще не подтверждены.
Если бы был послан еще один кадр с порядковым номером 6, соответствующее
подтверждение АСК с номером 6 не позволило бы определить, приход какого кадра с
порядковым номером 6 подтверждается.
Использование номеров 0-7 позволяет семи кадрам быть в активном
состоянии, прежде, чем "закроется" окно. Несмотря на то что диапазон
0-7 дает восемь порядковых номеров, V(R) содержит значение следующего ожидаемого
кадра, что ограничивает число активных кадров до 7.
|