Настройки протоколов Zmodem и Janus


     T-Mail  при пересылке  файлов использует  либо односторонний  протокол
Zmodem,   либо   двусторонний   протокол   Janus.   T-Mail  поддерживает  3
разновидности протокола Zmodem:

 Plain Zmodem (ZMO)      - стандартный Zmodem;

 ZedZap (ZAP)            - Zmodem  c размером  окна, зависящим  от скорости
                           соединения;

 Direct ZedZap (DirZAP)  - то же, что и  ZedZap, но несколько ускоренный за
                           счет того, что  не используется защита некоторых
                           служебных кодов (XON,XOFF и др.).

     Для достижения максимальной производительности лучшим является DirZap,
однако его применение должно  быть осторожным, поскольку требует тщательной
настройки модемов (и вашего, и  модема удаленной системы). Кроме того, если
соединение  систем  непрямое,  то  есть  через  дополнительные  программы и
аппаратуру,  чувствительную к  управляющим кодам,  применение DirZAP  может
быть  невозможным.  Протоколом  по  умолчанию,  который годится практически
всегда, выбран ZedZap.

     Переменная Dir_ZedZap  в  t-mail.ctl  позволяет  разрешить использование
DirZAP  вашей системой.  По умолчанию  ее значение  No.

     Вы  имеете возможность  ограничивать возможность  применения DirZAP  и
ZedZAP  для  конкретных  удаленных  систем.  Это достигается использованием
флагов ZMO и ZAP в файле подстановок  subst.lst .

Примеры:
~~~~~~~~
5030/100.4   FLAGS   ZAP    ; Разрешены только ZedZAP и Zmodem
5030/100.5   FLAGS   ZMO    ; Разрешен только Zmodem.

     Вы можете настраивать некоторые параметры протоколов в  t-mail.ctl . Они
настраиваются  индивидуально  для  разных  скоростей  соединения. Параметры
протоколов можно указать в переменных Connect_* файла  t-mail.ctl . Синтаксис
этих переменных выглядит следующим образом:

Connect_baud modem string[,MaxBlock,StartBlock,
ZTimeout,MinCPS_Rx,MinCPS_Tx]

где:
     baud         - одна   из  скоростей,   на  которой   устанавливается
                      соединение.

     modem string - ответ  модема  после  соединения,  сигнализирующий об
                      установлении соединения с определенной скоростью.

     MaxBlock     - число, задающее  максимальный размер окна  данных при
                      передаче в  байтах (только для  Zmodem). Максимальный
                      размер -  8192. Значения по умолчанию  указаны ниже в
                      таблице. Желательно, чтобы определяемые величины были
                      кратны степеням 2.

     StartBlock   - число,  задающее начальный  размер окна  при передаче
                      (только  для Zmodem).  Значения по  умолчанию указаны
                      ниже   в  таблице.   Желательно,  чтобы  определяемые
                      величины были кратны степеням 2.

     ZTimeout     - число,  задающее  величину   таймаута  для  протокола
                      Zmodem. Значения по умолчанию указаны ниже в таблице.
                      При   соединении  с   MNP,  V42,   HST  эти  значения
                      утраиваются автоматически.

     MinCPS_Rx
      и
     MinCPS_Tx    - число,   задающее    минимальную   производительность
                      протокола   (байт   в   секунду) при приеме (MinCPS_Rx)
                      или передаче (MinCPS_Tx) файлов.   По  умолчанию  не
                      определено. Если вы определяете этот параметр, то при
                      снижении  средней величины  скорости приема (передачи) файлов
                      для сеанса связи до этого предела или еще ниже T-Mail
                      прервет  сеанс  связи.  Используется  для  протоколов
                      Zmodem  и  Janus.  Применять  эту возможность следует
                      весьма осторожно.

     Параметр  modem  string  является  обязательным, остальные параметры
можно  не  задавать.  В  таблице,  приведенной  ниже, указаны значения этих
параметров по умолчанию для разных  скоростей (кроме MinCPS_Rx и MinCPS_Tx,
у которых  значение по  умолчанию всегда  равно 0).  Можно задавать  только
часть  параметров,  например,  только  MaxBlock  или  только MaxBlock и
StartBlock.

  Variable      Modem string, MaxBlk,StartBlk,ZTimeout,MinCPS_Rx,MinCPS_Tx
--------------------------------------------------------------------------
 Connect_300    CONNECT       ;,512,  512,    10,      10        10
 Connect_1200   CONNECT 1200  ;,1024, 512,    10,      20        20
 Connect_2400   CONNECT 2400  ;,2048, 512,    10,      80        80
 Connect_4800   CONNECT 4800  ;,2048, 512,    10,      100       100
 Connect_7200   CONNECT 7200  ;,4096, 512,    10,      200       200
 Connect_9600   CONNECT 9600  ;,4096, 512,    10,      200       200
 Connect_12000  CONNECT 12000 ;,8192, 512,    10,      300       300
 Connect_14400  CONNECT 14400 ;,8192, 512,    10,      400       400
 Connect_16800  CONNECT 16800 ;,8192, 512,    10,      500       500
 Connect_19200  CONNECT 19200 ;,8192, 512,    10,      600       600
 Connect_21600  CONNECT 21600 ;,8192, 512,    10,      600       600
 Connect_24000  CONNECT 24000 ;,8192, 512,    10,      600       600
 Connect_26400  CONNECT 26400 ;,8192, 512,    10,      600       600
 Connect_28800  CONNECT 28800 ;,8192, 512,    10,      600       600
 Connect_31200  CONNECT 31200 ;,8192, 512,    10,      600       600
 Connect_33600  CONNECT 33600 ;,8192, 512,    10,      600       600
 Connect_38400  CONNECT 38400 ;,8192, 512,    10,      600       600
 Connect_57600  CONNECT 57600 ;,8192, 512,    10,      600       600
 Connect_64000  CONNECT 64000 ;,8192, 512,    10,      600       600

     Примеры:
     ~~~~~~~~
 Connect_2400   CONNECT 2400, 2048
 Connect_2400   CONNECT 2400, 2048, 512, 10
 Connect_2400   CONNECT 2400, 2048, 512, 10, 75, 50

     Протоколы используют для коррекции  ошибок подсчет циклического кода -
CRC. Существует  две разновидности -  CRC-16 и CRC-32.  Второй обеспечивает
более   надежную  защиту.
Вам предоставлена  возможность задать  тип коррекции, используя
переменную ZJCRC32 в  T-Mail.ctl  (для Zmodem и Janus):

ZJCRC32    Always (или Yes)   ; T-Mail пытается использовать CRC-32 всегда,
                                если   его  может   использовать  удаленная
                                система;

           Never  (или No)    ; Всегда используется CRC-16;

           Smart              ; Если  установленно соединение  с коррекцией
                                ошибок (MNP, V42,  и т.д.), то используется
                                CRC-16,   иначе  -   пытается  использовать
                                CRC-32  (значение   Smart  используется  по
                                умолчанию).

     Перед приемом файла T-Mail проверяет дату создания/модификации, размер
файла и  его имя. Если  на вашей системе  уже имеется файл  с таким именем,
размером и датой,  то файл будет пропущен. Если  размер существующего файла
меньше (файл недопринят), он будет приниматься с той позиции, где произошел
обрыв. Если же отличается дата файла, то в этом случае имеющийся файл будет
переименован  с тем,  чтобы новый  файл был  принят с  тем именем,  которое
сообщает  удаленная система.  Переименование происходит  следующим образом:
последний   символ   имени   файла   (или   расширения,   если   оно  есть)
инкрементируется до тех  пор, пока не будет найдено  имя, несуществующее на
вашей  системе. Инкремент  производится циклически  в пределах  {A-Z,0-9} и
только  при  достижении  последнего  символа  будет  произведена перезапись
существующего файла по умолчанию.

     Вы  можете  задать  имена  файлов,  которые  для  вашей  системы будут
считаться нежелательными для приема. При попытке удаленной системы передать
вам  такой файл,  он будет  пропущен и  не будет  приниматься. Имена  таких
файлов  могут быть  групповыми в   соответствии с  правилами OS  и задаются
переменными ZJSkiрFile (их может быть не более 16) в  t-mail.ctl  (для Zmodem
и Janus).

     Примеры:
     ~~~~~~~~
     ZJSkipFile   LPT*.*
     ZJSkipFile   CON
     ZJSkipFile   COMMAND.COM
     ZJSkipFile   *.exe

     Вы   имеете   возможность   задать   имена   файлов,   которые  всегда
переписываются заново при приеме вне зависимости от того, существует ли уже
файл  с  таким  именем  на  вашей  системе.  Имена  таких файлов могут быть
групповыми в соответствии с правилами OS и задаются переменными ZJOverWrite
(их может быть не более 16) в  t-mail.ctl  (для Zmodem и Janus).

Примеры:
~~~~~~~~
ZJOverWrite   *.ZIP
ZJOverWrite   READ.ME

     Переменная ZFrameType определяет тип используемых фреймов Zmodem. Она
может иметь следующие значения:

  ZCRCG  (default)  - обычные фреймы, не требующие подтверждения;
  ZCRCW             - фреймы, после которых ОЖИДАЕТСЯ подтверждение;
  ZCRCQ             - фреймы,  после  которых  посылается  (но не ожидается
                      передающим) подтверждение.

Пример: ( subst.lst ):
~~~~~~~~~~~~~~~~~~~~
   5030/100.111    set ZFrameType=ZCRCW       ; noise line

     Вы имеете возможность включить или отключить диалоговый режим (chat) в
сеансах связи с помощью переменной ZJChat в  t-mail.ctl (для Zmodem и Janus).

     С помощью переменной ZJSkipManual можно отключить возможность пропуска
файлов при приеме (нажатием клавиш Ctrl-X) для Zmodem и Janus.

     Ниже  приводится  фрагмент  файла  конфигурации   t-mail.ctl , в котором
описаны  команды  настройки  протоколов.  Этот  фрагмент  можно  добавить в
 t-mail.ctl .

;=======================  Protocol's Definitions ==========================
;
;         Секция определения параметров протоколов Zmodem и Janus
;
;--------------------------------------------------------------------------
;
; Dir_ZedZap        YES         ; Enable Direct ZedZap protocol
;
;  Если  эта переменная  имеет  значение  YES, то  разрешается использовать
;  вариант Direct ZedZap протокола Zmodem.  Если NO, то использование этого
;  варианта запрещается. По умолчанию - NO.
;
;
ZJChat        Yes           ; Enable/disable chat. Deafult - Yes
;
;  Если  эта директива  имеет  значение  YES, то  разрешается использование
;  режима диалога  (chat) при установленной сессии,  если NO - запрещается.
;  По умолчанию - разрешено (YES).
;
; ZFrameType    ZCRCG   ; Zmodem sending frame type (ZCRCG (default),
;                         ZCRCQ or ZCRCW
;
;  Эта переменная определяет тип используемых фреймов протокола Zmodem.
;
ZJCRC32             Smart       ; Options for CRC-32 in Zmodem & Janus
;
;  Эта переменная задает вариант использования контрольной суммы CRC-32 при
;  обмене файлами. По умолчанию используется значение Smart.
;
;  Always (или Yes) - T-Mail всегда будет пытаться использовать CRC-32;
;  Never  (или No)  - всегда будет использоваться CRC-16;
;  Smart            - CRC-32 будет использоваться только если
;                     соединение произошло без коррекции ошибок.
;
; ZJSkipFile   LPT*.*
;
;  Эта   переменная  определяет   имена  файлов,   которые  вашей  системой
;  приниматься  никогда не  будут.  Можно  использовать шаблоны  DOS. Таких
;  переменных может быть до 16.
;
; ZJOverWrite   *.ZIP
;
;  Эта переменная определяет имена файлов,  которые при приеме всегда будут
;  замещать  существующие  без  переименования.  Можно использовать шаблоны
;  DOS. Таких переменных может быть до 16.
;
; ZJSkipManual Yes
;
;  Если эта переменная имеет значение Yes (по умолчанию), то оператор имеет
;  возможность  пропустить прием  текущего файла  (Ctrl-X) во  время сеанса
;  связи. Если No, то эта возможность отключена.
;
; ZBlockCheck  Yes
;
;  Если  эта переменная  имеет значение  Yes (по  умолчанию), то при приеме
;  Zmodem-блока по размеру не кратного 16, такой блок будет отвергнут. Если
;  значение переменной - No, такого не происходит.
;
;--------------------------------------------------------------------------