Следующая:The Initial Handshake, Следующая:, Предыдущая:UUCP Protocol, Вверх:UUCP Protocol



The Initial Handshake

Стартовая процедура установки связи

Перед начальной процедурой установки связи, вызывающий обычно входит в вызываемую машину и каким-то способом запускает там UUCP пакет. На Unix системы это обычно делается, устанавливая командную оболочку для входа в систему на программу /usr/lib/uucp/uucico.

Все сообщения процедуры начальной установки связи начинаются с ^P (байт с восьмеричным значением \020) и оканчивается нулевым байтом (000). На нескольких системах такие сообщения заканчиваются символом перевода строки (\012) вместо нулевого байта; нижеприведенные примеры предполагают, что используется нулевой байт.

Some options below are supported by QFT, which stands for Queued File Transfer, and is (or was) an internal Bell Labs version of UUCP.

В Taylor UUCP введены переговоры о размерах UUCP, которые также поддерживаются DOS UUPlus, Amiga wUUCP, UUCP-1.17.

Начальная процедура установки связи происходит следующим образом. Данная процедура начинается вызываемой (called) машиной.

called: \020Shere=hostname\000
hostname - название UUCP вызываемой машины. Более старые версии пакетов UUCP не выводят данный параметр, а просто отсылают '\020Shere\000'.
caller: \020Shostname options\000
hostname - UUCP имя машины, осуществляющей вызов. Могут использоваться следующие опции:
-QSEQ
Последовательный номер для данного сеанса связи. Номер последовательности сохраняется для обоих сайтов, и инкрементируется после каждого запроса. Если последовательный номер не совпадает, то это обозначает что-то сделано неправильно (например, возможно кто-то нарушил защиту, притворяясь одной из машин) и запрос отклоняется. Если последовательный номер изменился на одной из машин, возможно из-за прерывания попытки установить связь или из-за процедур дискового резервирования, последовательные номера на этих двух машинах должны быть восстановлены вручную.
-xLEVEL
Запрос у вызываемой системы установить уровень отладки (debugging level) на указанное значение. Данная опция не поддерживается всеми системами.
-pGRADE
-vgrade=GRADE
Запрос у вызываемой системы перемещать файлы указанного класса (grade) или выше. Данная опция не поддерживается всеми системами. Некоторые системы поддерживают опцию -p, некоторые поддерживают -vgrade=. UUPlus позволяет на по системной основе определить или опцию -p или опцию -v в файле SYSTEMS (опция gradechar).
-R
Указывает, что звонящая UUCP система понимает, как перезапустить неудавшуюся файловую передачу. Поддерживается только System V Release 4 UUCP, QFT и Taylor UUCP.
-ULIMIT
Устанавливает значение ulimit вызывающего UUCP. Предельное значение определено как число по основанию 16 в "C" нотации (например, -U0x1000000). Данный номер является количеством 512-байтовых блоков в самом большом файле, который вызывающий UUCP может создать. Вызываемый UUCP протокол, не должен передать файлы большие, чем данный. Данная опция поддерживается только системами System V Release 4 UUCP, QFT и UUPlus. UUPlus сообщает меньшее из доступного дискового пространства в spool каталоге и значения переменной ULIMIT файла UUPlus.CFG. Taylor UUCP понимает данную опцию, но не генерирует ее.
-N[NUMBER]
Указывает, что звонящий UUCP пакет понимает расширенные Taylor UUCP переговоры о размерах UUCP. Не поддерживается традиционными пакетами UUCP. Поддерживается UUPlus. Опциональный номер это битовая маска особенностей, поддерживаемых звонящим UUCP, и описана ниже.

called: \020ROK\000
Фактически есть несколько возможных ответов.
ROK
Вызывающий UUCP приемлем, а процедура установки связи предшествует переговорам о протоколе. В ответе могут присутствовать некоторые опции; смотри ниже.
ROKN[NUMBER]
Вызывающий UUCP приемлем, он использует опцию -N, а вызываемый UUCP также понимает ограничения по размеру, накладываемые Taylor UUCP. Дополнительное число является битовой маской свойств, поддерживаемых UUCP, и описано ниже.
RLCK
Вызываемый UUCP уже имеет блокировку для звонящего UUCP, что обычно указывает, что данные две машины уже взаимодействуют.
RCB
Вызываемый UUCP протокол выполняет call back (обратный звонок). Данный прием может использоваться, для того чтобы исключить самозванные машины (из каждой пары машин только одна машина может выполнять обратный звонок, в противном случае сеанс связи никогда не начнется).
RBADSEQ
Последовательный номер запроса неправилен (смотри обсуждение опции -Q выше).
RLOGIN
Звонящий UUCP использует неправильное имя для входа в систему.
RYou are unknown to me
Вызывающий (звонящий) UUCP не известен вызываемому UUCP, и вызываемый UUCP не разрешает соединения от неизвестных систем. Некоторые версии протокола UUCP просто разрывают линию (drop line) а не отсылают данное сообщение.

Если ответ равен ROK, то следующие опции поддерживаются System V Release 4 UUCP и QFT.

-R
Вызываемый UUCP знает, как перезапустить неудачную передачу файлов.
-ULIMIT
Сообщает значение ulimit вызываемого uucp протокола. Предельное значение определяется как число по степени 16 в C нотации. Данный номер является количеством 512-байтовых блоков в самом большом файле, который вызываемый UUCP может создать. Вызывающий UUCP не должен отсылать файл, который больше чем данный. Поддерживается UUPlus. Taylor UUCP понимает данную опцию, но не генерирует ее.
-xLEVEL
Я (автор) не уверен, что это означает. Может быть - запрос вызывающего UUCP протокола на установку уровня отладки на указанное значение.

Если ответ не является ROK (или ROKN) обе стороны кладут телефонную трубку, отказываясь от запроса.

called: \020Pprotocols\000
Обратите внимание, что вызываемый UUCP выводит две строки. Строка протоколов является списком UUCP протоколов, поддерживаемых вызываемым UUCP. Каждый протокол UUCP имеет односимвольное имя. Эти протоколы обсуждаются более подробно позже в данном документе. Например, вызываемый UUCP может отослать \020Pgf\000.
caller: \020Uprotocol\000
Вызывающий UUCP выбирает используемый протокол из протоколов, предлагаемых вызываемым протоколом UUCP. Если взаимно поддерживаемые протоколы отсутствуют, звонящий UUCP отсылает \020UN\000, и обе стороны кладут телефонную трубку. В противном случае звонящий UUCP отсылает, что то вроде \020Ug\000.

Большинство пакетов UUCP полагают, что каждый локально поддерживаемых протоколов включен и выбирают первый протокол из протоколов поддерживаемых вызываемым UUCP. На некоторых версиях HDB UUCP, это может быть изменено, задавая список протоколов после имени устройства в файле Devices или файле Systems. Например, чтобы выбрать протокол e в файле Systems

    airs Any ACU,e ...
или в файле 'Devices'
    ACU,e ttyXX ...
Для этих целей Taylor UUCP предоставляет команду 'protocol', которая может использоваться или для систем (смотрите Protocol Selection) или для портов (смотрите port File). UUPlus позволяет задавать протокольную строку на по системной основе в файле system.

Опциональный номер, который следует после -N, отсылается вызывающей системой, или в ответе ROKN, отсылаемым вызываемой системой, и представляет собой битовой маской поддерживаемых способностей UUCP пакета. Опциональный номер был введен в версии Taylor UUCP 1.04. Номер отсылается в качестве восьмеричного номера с ведущим нолем. В настоящее время определены следующие биты. Пропущенное число должно восприниматься как 011.

01
Протокол UUCP поддерживает переговоры о размерах.
02
Протокол UUCP поддерживает перезапуск файлов.
04
Протокол UUCP поддерживает команду E.
010
Протокол UUCP требует, чтобы размер файла в командах S и R был по основанию 10. Данный бит используется по умолчанию, но не должен отсылаться в явном образе.
020
Протокол UUCP ожидает пустую строку между полем уведомления и полем размера в команде S. Это верно для SVR4 UUCP. Данный бит не должен использоваться.

После того, как протокол был выбран, а процедура начальной установки связи была закончена, обе стороны включают выбранный протокол. Для некоторых протоколов (особенно для протокола g) дальнейшая процедура установки связи начинается от этой точки.