s/hash mark). | | ftp> get wall mefile | | ---> PORT 3,20,0,2,4,51 | | 200 PORT command okay. | | ---> RETR wall | | 150 Opening data connection for wall (3.20.0.2.1075)(24384bytes)| | #######################. | | 226 Transfer complete. | | 24550 bytes received in 12.00 seconds (2 Kbytes/s) | | ftp> close | | ---> QUIT | | 221 Goodbye. | | ftp> bye | | $ | +------------------------------------------------------------------+ 5-21 Инструкция по настройке КОМАНДА rcp. ____________________________________________________________________ Другая команда,позволяющяя вам копировать файлы между двумя UNIX совместимыми машинами в глобальной сети - это rcp. Эта команда аналогична ftp, но имеет синтаксис более похожий на команду UNIX cp. Эту команду можно использовать только с машинами, имеющими операционную систему UNIX или совмкстимую с UNIX. Вызов rcp. ---------- Программа rcp вызывается из оболочки UNIX. Вы должны указать имя файла для копирования и куда его нужно скопировать. Заметьте, что rcp аналогична cp. Вы можете использовать эту программу для копирования файла из своей машины в удаленную или наоборот. Следующий пример показывает как файл по имени remotefile c машины admit был скопирован в файл localfile на вашей машине(локальной машине). Как показано имена файлов соответствуют условностям UNIX. Имена файлов могут иметь одну из трех форм, где имя файла означает файл или директорий. Эти формы следующие: - user@machine:filename - machine:filename - filename где: machine имя машины, которая содержит или будет содержать файл. Если имя файла не пределено, то ваша локальная машина присваивает его себе. user имя пользователя той машины, которую вы указали. Если вы не указали имя пользователя, используется ваше имя на вашей машине. В любом случае вы должны иметь разрешение для вас на машине, на которой расположен нужный вам файл. Администратор удаленной машины может как конфигурирована удаленная машина. 5-22 Инструкция по настройке filename это стандартное имя в UNIX, которое может включать путь в директории. Если имя файла, которое вы указали не начинается со (/), тогда файл помещается или имеется в домашнем директории пользователя. Имя файла может быть универсальным, но эти имена должны быть заключены в кавычки, чтобы предотвратить их расширение операционной системой на вашей локальной машине. Если вы указали только имя директория, доступного rcp командам, то файл(ы), который(е) вы указали для копирования, то файл(ы) копируется в этот директорий с тем же именем. Опции rcp. ---------- При вызове команды вы можете указать следующие опции: -r Эта опция разрешает копирование директорий. Если вы задали файл для копирования и это директорий и поставили опцию -r, то скопируется все дерево. Когда задается эта опция, то назначение команды rcp это копирование директория. Если вы не указали эту опцию и хотите скопировать директорий, то в ответ появится сообщение об ошибке. -p Эта опция позволяет предохранить от изменения режима и размеров файла-источника в копиях, игнорируя umask. Когда вы указываете опцию -p, то файл дублируется. Если опции нет, то используется umask. 5-23 Инструкция по настройке Примеры. -------- В следующих примерах используются две удаленные машины сети по имени THERE-C и THERE-C1. Первый пример показывает копирование файла по имени list из текущего директория пользователя в домашний директорий пользователя на машине THERE-C: $ rcp list THERE-C:list Во втором примере копируется директорий c иерархией /net/src на локальной машине в дерево корневого каталога src в домашнем директории на THERE-C: $ rcp -r /net/src THERE-C:src В третьем примере показано как пользователь копирует файл list из домашнего директория пользователя по имени mike на THERE-C в директорий /usr/tmp на THERE-C1. Копия на THERE-C1 принадлежит пользователю по имени deb. $ rcp mike@THERE-C:list deb@THERE-C1:/usr/tmp ГЛАВА 6. ПРОТОКОЛ ВРЕМЕННОЙ СИНХРОНИЗАЦИИ. ____________________________________________________________________ Ведение 6-1 Формат сообщения 6-3 TSP сообщения 6-4 Сообщение о регулировке времени 6-4 Сообщение о подтверждении 6-5 Сообщение-запрос хозяина 6-5 Подтверждение хозяина 6-6 Сообщение об установлении сетевого времени 6-6 Сообщение о действии хозяина 6-7 Сообщение о действии подчиненного 6-7 Сообщение о кандидатуре хозяина 6-8 Сообщение о кандидатуре,посылающей сообщение 6-8 Сообщение об отказе в выборе 6-9 Сообщение о нескольких хозяевах 6-9 Сообщение о конфликте 6-10 Сообщение о выходе 6-10 Сообщение об установке даты 6-11 Сообщение о требовании установки даты 6-11 Сообщение, подтверждающее установку даты 6-12 Сообщение о начале трассировки 6-12 Сообщение об окончании трассировки 6-13 Сообщение о местоположении главного хозяина 6-13 Сообщение о местоположении удаленного хозяина 6-14 Сообщение о проверке 6-14 Сообщение об обнаружении петли 6-15 6-1 Инструкция по настройке ВВЕДЕНИЕ. ____________________________________________________________________ Протокол временной синхронизации (TSP) был разработан для специального использования программой timed(ADMN). Эта программа является локальной областью синхронизатора сетевых часов для UNIX операционной системы с повышенными способностями, которые предоставляет TCP/IP. Программа timed построена на базе DAPRA UDP протокола и в основе имеет схему "хозяин-подчиненный". TSP нужна для двух целей. Первая - это поддержка сообщений для синхронизации часов различных машин в локальной области сети. Вторая - поддержка сообщений для выбора нового хозяина, который выбирается среди подчиненных "временных демонов" (временной демон - это процесс операционной системы, обслуживающий временные функции системы, часы системы), когда по каким-либо причинам хозяин исчезает. Короче говоря, синхронизация программного обеспечения, которое работает в некоторой локальной области сети, состоит из набора демонов (один на машину) и основана на структуре хозяин-подчиненный. Настоящая система сохраняет синхронизацию в пределах 20 миллисекунд, если это поддерживается аппаратно. В противном случае лучшее, что может быть это 1секунда. Демон-хозяин ихмеряет временную разницу между часами, установленными на его машине и всеми другими машинами. Текущее исполнение использует ICMP (Требования к замеру времени) для замера временой разницы между часами разных машин. Время главного компьютера сети является средним между временами, предоставляемыми всеми исправными часами. Часы считаются неисправными, когда значение времени больше, чем на определенную величину превышает некоторый интервал, являющийся разницей между значениями времени в одной и той же сети. Хозяин затем посылает каждому демону-подчиненному значение времени для коррекции своих часов. Этот процесс периодически повторяется. Если выполнена коррекция и временная разница не превышает предельно допустимой, то задержки на синхронизацию будет. Когда машины включены и соединены с сеть, то за временем следит демон-подчиненный. Он спрашивает хозяина о правильном времени и регулирует часы до начала работы пользователей. Таким образом, временной демон регулирует время время сети и устраняет разницу во времени между машинами. Дополнительно демон на машине-шлюзе может играть роль подмастерия. Демон-подмастерье является подчиненным в одной сети, у которой уже есть хозяин и является хозяином в других сетях. Подмастерье, кроме того, отвечает за передачу пакетов от одной сети в другую. Чтобы быть уверенным, что предоставляемый сервис продолжителен и надежен, необходимо выполнить выбор алгоритма, который позволяет выбрать нового хозяина. Такоц выбор приходится делать, если происходит устранение текущего хозяина (например, ошибка при загрузке) или при разъединении сети. 6-2 Инструкция по настройке С помощью этого алгоритма подчиненныей могут определить прекращение работы хозяином; тогда подчиненные выбирают нового хозяина среди самих себя. Важно отметить, что после прекращения работы хозяина расхождение часов происходит постепенно и поэтому нет необходимости выбора хозяина немедленно. Вся работа демонов происходит под управлением TSP протокола. Большинство связей этого протокола не считаются надежными пока не будет послано сообщение. Надежность достигается использованием подтверждений, согласующих чисел и повторных передач, когда теряется сообщение. Когда появляется сообщение о необходимости подтверждения и нет подтверждения после многих попыток, то демон, который посылал сообщение, принимает на себя обязанности адресата. Эта глава не описывает в деталях какова надежность исполнения, но показывает когда сообщения типа запроса являются надежным механизмом связи. Формат сообщений в TSP одинаков для всех типов сообщений; однако в некоторых версиях не используются некоторые поля. Следующий раздел описывает формат сообщения. Последующие разделы описывают в деталях различные типы сообщений, их использование и содержание каждого поля сообщения. ____________________________________________________________________ В следующих версиях timed формат вероятно будет изменен. ____________________________________________________________________ 6-3 Инструкция по настройке ФОРМАТ СООБЩЕНИЯ. ____________________________________________________________________ Все поля измеряются в байтах. Поля следует загружать в систему в порядке возрастания их длины. Структура TSP сообщения следующая: 1. Тип сообщения длиной в один байт. 2. Номер версии в один байт, который определяет версию протокола, которую использует сообщение. 3. Номер числовой последовательности в два байта, который используется для выявления дубликатов сообщений при повторной передаче сообщения. 4. Восемь байт отводится под пакет специфических данных. Это поле содержит два по четыре байта под значение времени и один для использования в зависимости от типа этого пакета. 5. Строка, завершающаяся нулем для размещения 256 символов ASCII с именем машины, посылающей сообщение. 6-4 Инструкция по настройке СООБЩЕНИЯ TSP. ____________________________________________________________________ Следующие разделы описывают типы сообщений, показывая их поля и объсняя их содержание. В целях последующего обсуждения временной демон может считаться в одном из трех состояниях - подчиненный, хозяин или кандидат на выборы хозяином. Раздел передачи сообщений относится ко всем активным демонам. Сообщение о регулировке времени. -------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | Секунды для регулировки | +------------------------------------------------------------------| | Микросекунды для регулировки | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_ADJTIME(1) Хозяин посылает это сообщение подчиненному, чтобы получить разницу между часами подчиненной машины и сетевым временем, которое есть у хозяина. Подчиненный соответственно регулирует время машины. Это сообщение требует подтверждения. 6-5 Инструкция по настройке Подтверждение сообщения. ------------------------ Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_ACK (2) Оба и хозяин и подчиненные используют это сообщение только для подтверждения. Оно используется в нескольких различных контекстах. Например, в ответ на сообщение о регулировке времени. Сообщение-запрос хозяина. ------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_MASTERREQ (3) Вновь начинающий работу демон передает это сообщение для выявления хозяина. Никаких других действий оно не выполняет. Сообщение требует ответа хозяина. 6-6 Инструкция по настройке Ответ-подтверждение хозяина. ---------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_MASTERACK (4) Хозяин посылает это сообщение, чтобы подтвердить получение запроса к хозяину и сообщения о конфликте. Сообщение об установке сетевого времени. ---------------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | Секунды для установки времени | +------------------------------------------------------------------+ | Микросекунды для установки времени | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_SETTIME (5) Хозяин посылает это сообщение подчиненным демонам для установки времени. Эти данные посылаются вновь начавшим работу демонам или при изменении сетевой даты. Оно содержит время хозяина как время сети. Сообщение требует подтверждения-ответа. Следующим шагом синхронизации будет выявление маленькой временной разницы с задержкой работы в канале связи. 6-7 Инструкция по настройке Сообщение о действии хозяина. ----------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_MASTERUP (6) Хозяин посылает это сообщение для запроса имен активных подчиненных. Подчиненные отвечают в следующем сообщении. Сообщение о действии подчиненного. ---------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_SLAVEUP (7) Подчиненный посылает это сообщение хозяину в ответ на его сообщение, которое указано выше. Это сообщение также посылается, когда начинает работу новый подчиненный для информации хозяина о необходимости его синхронизации. 6-8 Инструкция по настройке Сообщения о кандидатуре хозяина. -------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_ELECTION (8) Когда наступает время выбора нового хозяина, подчиненый, могущий быть избранным, посылает это сообщение. Это сообщение свидетельствует о том, что подчиненный хочет быть хозяином. Сообщение о кандидатуре, посылающей сообщение. ---------------------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_ACCEPT (9) Это сообщение посылает подчиненный, чтобы получить кандидитуру временного демона, который посылает сообщение о выборе хозяина. Этот кандидат будет добавлен в список кандидатов на хозяина. 6-9 Инструкция по настройке Сообщение об отказе в выборе. ----------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_REFUSE (10) После получения подчиненными кандидатуры демона, он отвечает на их запросы по выборам и посылает отказы в выборе всем, кроме одного. Сообщение от нескольких хозяев. ------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_CONFLICT (11) Когда два или более хохяина посылают свои запросы, то подчиненный использует это сообщение для уведомления о существовании нескольких хозяев. 6-10 Инструкция по настройке Сообщение о конфликте. ---------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_RESOLVE (12) Хозяин, получив сообщение о наличии сообщения от другого хозяина, посылает это сообщение, чтобы установить кто другой хозяин. Сообщение о выходе. ------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_QUIT (13) Это сообщение посылается хозяином в трех различных контекстах: - кандидату, который сообщил о своей кандидатуре на хозяина - другому хозяину, когда получено уведомоение о его существовании - другому хозяину, если он обнарежен во время работы Во всех случаях получатель станет подчиненным. Это сообщение требует подтверждения. 6-11 Инструкция по настройке Сообщение об установке даты. ---------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | Секунды для установки времени | +------------------------------------------------------------------+ | Микросекунды для установки времени | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_SETDATE (22) Программа date(1) посылает это сообщение в локальный демон, когда суперпользователь хочет установить дату в сети. Если этот локальный демон является хозяином, то он установит дату. Если он - подчиненный, то он передаст нужную дату хозяину. Сообщение о требовании установки даты. -------------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | Секунды для установки времени | +------------------------------------------------------------------+ | Микросекунды для установки времени | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_SETDATEREQ (23) Подчиненный, который получил вышеуказанное сообщение передаст это сообщение хозяину для установки даты. 6-12 Инструкция по настройке Сообщение об установке даты. ---------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_DATEACK (16) Хозяин посылает это сообщение подчиненому в подтверждение установки даты. Такое же сообщение посылается локальным демоном программе rdate(ADMN) для уведомления, что дата установлена хозяином. Сообщение о начале трассировки. ------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_TRACEON (17) Контролирующая программа timedc посылает это сообщение локальному демону, чтобы начать запись в системный файл всех полученных сообщений. 6-13 Инструкция по настройке Сообщение о прекращении трассировки. ------------------------------------ Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_TRACEOFF (18) Программа timedc посылает это сообщение локальному демону для прекращения записи полученных сообщений. Сообщение о местоположении хозяина. ----------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_MSITE (19) Программа timedc посылает это сообщение локальному демону для выяснения где находится хозяин. 6-14 Инструкция по настройке Сообщение о местоположении удаленного хозяина. ---------------------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_MSITEREQ (20) Это сообщение посылает локальный демон для определения местоположения хозяина. Затем он использует подтверждающее сообщение для сообщения этого местоположения в timedc. Проверочное сообщение. ---------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_TEST (21) В целях проверки timedc посылает это сообщение подчиненному. Это устанавливает таймер в конец. 6-15 Инструкция по настройке Сообщение об обнаружении петли. ------------------------------- Байт 1 | Байт 2 | Байт 3 | Байт 4 +================Ь================Ь================О===============+ | Тип | Номер версии | Номер последовательности | |----------------+----------------+--------------------------------+ | ( не используется ) | +------------------------------------------------------------------| | ( не используется ) | |------------------------------------------------------------------+ | Имя машины | |------------------------------------------------------------------+ | ... | +------------------------------------------------------------------+ Тип: TSP_LOOP (24) Эта программа инициализируется всеми хозяевами для того, чтобы обнаружить петли. Все хозяева следуют этой программе в той сети, где они хозяева. Если хозяин получает эту программу, то это означает, что существует петля, и он пытается скорректировать проблему.