On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Виды потоков

   5.1 Поток по образцу.

   Если приемник может  перенаправить  последовательный  в/в  на
диск и если передатчик может  использовать  обратный  канал  для
контроля  наличия  данных  без  ожидания,то  можно  использовать
полный поток  без  ответной  Attn  последовательности.Передатчик
начинает  передавать  с  ZDATA  заголовка  и  продолжает   ZCRCG
подпакетом  данных.Когда   приемник   обнаруживает   ошибку   он
посылает  Attn  последовательность  и   затем   посылает   ZRPOS
заголовок с корректной позицией в файле.
   В конце каждого  передаваемого  подпакета  данных  передатчик
проверяет присутствие заголовка  ошибок  от  приемника.Обнаружив
его передатчик выбирает из данных обратного канала ZPAD или  CAN
и выполняет требуемые действия.
   Другие  символы  инкримируют   счетчик,который   сбрасывается
когда  передатчик  ждет  заголовок  от  приемника.Если   счетчик
переполняется передатчик посылает следующий подпакет  как  ZCRCW
и ждет ответа.
   ZPAD   индицирует   ошибку   приемника.CAN    это     попытка
пользователя остановить  передачу.Если  один  из  этих  символов
будет  обнаружен,то   посылается   пустой   пакет   ZCRCE.Обычно
приемник посылает ZRPOS или другой  ошибочный  заголовок,который
заставляет передатчик прекратить передачу и выполнить команду.
   Если  ZPAD  или  CAN  не  обнаружен  в  течении   таймаута,то
посылается ZRPOS заголовок.Затем читается ответный  заголовок  и
выполняется команда.
   ZRPOS  заголовок  сбрасывает  текущее  смещение  в  файле  на
корректную позицию.Если возможно,то передатчик  должен  очистить
выходной буфер  и/или  сеть  от  не  переданных  данных.Приемник
должен  так-же  сбросить  буфер,прежде  чем  начнется   передача
корректных  данных.Следующие  передаваемые  данные  должны  быть
ZCRCW фреймом для гарантированного  полного  заполнения  сетевой
памяти.
   Если  приемник  дает  ZACK  заголовок  с  адресом,который  не
совпадает с адресом  передатчика,он  игнорируется  и  передатчик
ждет  другой  заголовок.ZFIN,ZABORT   или   ZTIMEOUT   завершают
секцию.ZSKIP завершает процесс для данного файла.

   5.2 Полный поток с обратным прерыванием.

   Выше описанный метод  не  может  быть  использован  если  нет
возможности принимать обратный поток данных.Алтернативный  метод
заставляет  приемник   прерывать   передатчик,когда   обнаружена
ошибка.
   Приемник  может  прервать  передатчик  контрольным  символом,
break  сигналом  и/или  их  комбинацией  как  указано   в   Attn
последовательности.После   этого   приемник   посылает     ZRPOS
заголовок, заставляя  передатчик  повторно  передать  потерянные
данные.
   Когда передатчику отвечают прерыванием он читает заголовок  и
выполняет действия описанные в предыдущем парагрофе.

   5.3 Полный поток со скользящими окнами.

   Если не один из  описанных  методов  не  применим,то  не  все
потеряно.Если передатчик может буферизировать  ответы  премника,
то передатчик может использовать ZCRCQ подпакеты,чтобы  получить
ACK  от  приемника  без  прерывания  передаваемых   данных.После
достаточного  количества  ZCRCQ   передатчик   может   прочитать
заголовки, которые поступили.
   Проблема  этого  метода  вероятно   состоит   в   черезмерном
количестве ответов.Это может привести к  переполнению  приемного
буфера передатчика прежде чем будет послан ZRPOS.

   5.4 Сегментированный поток.

   Если приемник не может перенаправить выходной поток на  диск,
тогда используется ZRINIT фрейм определенной длинны  который  не
переполняет буфер.Передающая программа посылает  ZCRCW  подпакет
и ждет ZACK  заголовок  прежде  чем  послать  следующий  сегмент
файла.
   Если передающая  программа  может  принимать  обратный  поток
данных,тогда можно снова передавать большие блоки.

Назад       Содержание       Вперёд