Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 9:

Протокол UUCP

Команда на выполнение

В реализации Taylor UUCP команда E используется для выполнения команд на ведомом компьютере. Как уже отмечалось ранее, для выполнения команд на ведомом компьютере в UUCP используется передача выполняемого файла с помощью команды S, перед которым ставится X.. Когда ведомый компьютер принимает такой файл, он выполняет команду uux для принятого файла. В реализации Taylor UUCP делается попытка улучшить эту процедуру путем введения команды E. Формат команды E следующий:

E fileout filein user -options temp mode notify size command

Параметры fileout, filein, user, temp, mode, notify и size работают точно так же, как и в команде S. Отличия наблюдаются лишь в параметрах команды -options, которые представлены в табл. 9.9.

Таблица 9.9. Параметры команды E
Параметр Описание
C Файл с именем filein скопирован в рабочий каталог UUCP spool
c Файл c с именем filein не был скопирован в рабочий каталог UUCP spool
N Электронное сообщение с уведомлением о состоянии выполнения команды не высылать
Z Выслать электронное сообщение с уведомлением о состоянии выполнения команды
R Выслать электронное сообщение с уведомлением о состоянии выполнения команды на адрес, указанный в параметре notify
e Команда должна быть выполнена с помощью /bin/sh, а не uux

А параметр command задает команду Linux, которая должна выполняться на ведомом компьютере. После того как выдана команда E, ведомый компьютер должен ответить на нее, используя определенный код. Коды ответов E идентичны кодам ответов S, в них лишь первая буква заменяется на E. Таким образом, когда ведущий компьютер получает код ответа EY, то считается, что обмен данными прошел успешно. Далее ведущий компьютер переводится в режим готовности к передаче очередных данных или прекращает сеанс работы.

Команда на передачу данных удаленному хосту

Одним из средств заставить ведомый хост передать файл на другой хост является команда X. С помощью команды X на ведомом компьютере запускается команда uucp с параметрами (см. раздел "Команды UUCP" далее в этой лекции). Формат команды X следующий:

X fileout filein user

Здесь fileout определяет имя файла, который должен быть передан ведомым компьютером с помощью команды uucp.

Параметр filein - это имя файла и путь, по которому ведомый компьютер должен доставить файл. Здесь имеют силу соглашения о маршрутах UUCP вида hostname!filename, где hostname - имя удаленного хост-компьютера. Таким образом, ведущий компьютер может инициировать передачу файла с ведомого компьютера на другой удаленный хост-компьютер в сети UUCP.

Ведомый компьютер на данную команду может выдавать только два кода ответов. Код ответа XY говорит о том, что команда принята и задание поставлено в очередь на выполнение. Код ответа XN означает, что ведомый компьютер отказался выполнить эту команду.

Команда на останов

Для закрытия сеанса UUCP ведущим компьютером используется команда H. Она посылается ведомому компьютеру без параметров и опций. Ведомый компьютер может ответить на нее двумя кодами.

Код ответа HY говорит о том, что ведомый компьютер согласен прекратить сеанс и разорвать соединение. Затем ведущий компьютер должен повторить этот код ответа и разорвать соединение.

Код ответа HN с ведомого компьютера говорит о том, что он согласен прекратить текущий сеанс, но желает начать новый сеанс с этим же хостом, но уже в роли ведущего компьютера. При этом ведомый компьютер принимает на себя полномочия ведущего и выдает бывшему ведущему команды на передачу файлов. После завершения передачи новый ведущий компьютер может послать команду H, и тогда новый ведомый либо прекратит сеанс, либо вновь произведет смену ролей и организует новый сеанс (весьма похоже на работу системы "клиент-сервер", не так ли?).

Подтверждение на закрытие соединения

Закрытие соединения в UUCP - ничего более, чем простая формальность в протоколе. В этой фазе обе стороны соглашаются закрыть UUCP-соединение (согласно всем канонам связи). Как и в фазе подтверждения открытия соединения, здесь ведется обмен пакетами, начинающимися на 0x10 (шестнадцатеричное) и заканчивающимися на 0x00 (шестнадцатеричное). При этом ведущий компьютер инициирует завершение соединения, посылая пакет с шестью нулями ( 000000 ). Если ведомый компьютер согласен закрыть соединение, он также отвечает пакетом с шестью нулями ( 000000 ). С этого момента UUCP-соединение считается закрытым, и модемная линия может быть сброшена.

Пример сеанса UUCP

Чтобы более наглядно представить себе сложную структуру команд UUCP, рассмотрим листинг 9.1, где показан пример сеанса UUCP между ведущим и ведомым компьютерами.

1 SLAVE: Shere=ispmail
2 MASTER: Sshadrach
3 SLAVE: ROK
4 SLAVE: Pgi
5 MASTER: Ui
6 MASTER: S test1.txt /home/rich/test1.txt rich x 066 dummy 1000
7 SLAVE: SY
8 - data transfer begins --
9 SLAVE: CY
10 MASTER: R /home/rich/test2.txt test2.txt rich 1500
11 SLAVE: RY 0666
12 - data transfer begins --
13 SLAVE: CY
14 MASTER: H
15 SLAVE: HY
16 MASTER: 000000
17 SLAVE: 0000000
Листинг 9.1. Пример сеанса UUCP

После того как ведущий хост открыл UUCP-соединение, ведомый хост-компьютер выдает приглашение в строке 1. На него в строке 2 ведущий хост отвечает сообщением о подтверждении открытия соединения. Далее в строке 4 ведомый хост запрашивает ведущего о типе протокола UUCP, который тот собирается использовать. Для этого ведомый хост выводит список поддерживаемых им протоколов. Как видите, в строке 5 ведущий хост выбрал тип протокола, по которому они будут работать в течение сеанса.

В строке 6 показано, как ведущий хост с помощью команды S посылает файл на ведомый компьютер. Далее, в строке 7 ведомый компьютер соглашается принять файл, и в строке 8 происходит собственно передача файла. После ее завершения, в строке 9 ведомый хост-компьютер выдает код CY.

В строке 10 производится передача еще одного файла, инициированная ведущим компьютером. Ведомый хост соглашается в строке 11 обработать и этот запрос. И далее, в строке 12 происходит передача второго файла. Когда передача файла завершена, в строке 13 ведомый компьютер выдает код успешного завершения CY.

В строке 14 ведущий хост выдает запрос на закрытие UUCP-соединения, на что в строке 15 ведомый хост отвечает утвердительно. Далее, в строках 16 и 17 идет обмен стандартными пакетами на закрытие соединения. С этого момента UUCP-соединение закрыто, и модемное соединение сбрасывается.

Типы протоколов UUCP

В фазе подтверждения открытия соединения UUCP два компьютера договариваются о типе протокола UUCP, по которому они будут работать во время сеанса. В описании протокола UUCP говорилось о том, что его ядро можно инкапсулировать в другой протокол для сохранения целостности данных при передаче. Так, например, обычные телефонные линии имеют высокий уровень шумов, что требует более мощной процедуры для коррекции ошибок, чем алгоритм исправления ошибок в TCP/IP. Для реализации различных методов коррекции ошибок было разработано несколько типов протоколов UUCP. В табл. 9.10 представлены наиболее популярные из них, которые мы рассмотрим здесь более подробно.

Таблица 9.10. Протоколы UUCP
Протокол Описание
g Самый первый протокол UUCP. Предоставляет широкие возможности для коррекции ошибок
i Обеспечивает высокоскоростную передачу данных одновременно в обоих направлениях
t Используется для реализации UUCP через TCP/IP. Коррекция ошибок не обеспечивается
e Еще одна реализация TCP/IP с применением управляющих пакетом в формате ASCII
Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно