UUCP - UUCP

UUCP
Оригинальный автор (ы)Майк Леск
Разработчики)AT&T Bell Laboratories
изначальный выпуск1979; 41 год назад (1979)
Операционная системаUnix и Unix-подобный, ДОС, OS / 2, OpenVMS, AmigaOS, классическая Mac OS, CP / M
ТипКоманда

UUCP является акроним из Копирование из Unix в Unix.[1] Этот термин обычно относится к набору компьютерные программы и протоколы возможность удаленного выполнения команд и передачи файлы, электронное письмо и netnews между компьютеры.

Команда с именем uucp одна из программ в пакете; он предоставляет пользовательский интерфейс для запроса операций копирования файлов. В комплект UUCP также входят uux (пользовательский интерфейс для удаленного выполнения команд), Uucico (коммуникационная программа, выполняющая передачу файлов), уустат (сообщает статистику по недавней активности), uuxqt (выполнять команды, отправленные с удаленных машин), и uuname (сообщает имя UUCP локальной системы). Некоторые версии пакета включают uuencode /uudecode (конвертировать 8-битные двоичные файлы в 7-битный текстовый формат и наоборот).

Хотя UUCP изначально разрабатывался на Unix в 1970-х и 1980-х годах и наиболее тесно связан с Unix-подобный систем, реализации UUCP существуют для нескольких не-Unix-подобных операционных систем, включая ДОС, OS / 2, OpenVMS (только для оборудования VAX), AmigaOS, классическая Mac OS, и даже CP / M.

Технологии

До повсеместной доступности доступ в Интернет, компьютеры были связаны только меньшими локальные сети внутри компании или организации. Они также часто оснащались модемы чтобы их можно было использовать удаленно из терминалы в символьном режиме через набрать номер телефонные линии. UUCP использовал модемы компьютеров для дозвона до других компьютеров, устанавливая между ними временные соединения точка-точка. Каждая система в сети UUCP имеет список соседних систем с номерами телефонов, именами для входа и паролями и т. Д. Работа (запросы на передачу файлов или выполнение команд) ставятся в очередь для соседней системы, Uucico программа обычно вызывает эту систему для обработки работы. В Uucico программа также может периодически опрашивать своих соседей, чтобы проверить, нет ли на их стороне очереди; это позволяет участвовать соседям без возможности исходящего вызова.

Со временем коммутируемые ссылки были заменены подключениями к Интернету, а UUCP добавил ряд новых уровень связи протоколы. Эти новые соединения также снизили потребность в UUCP вообще, так как новые протоколы приложений были разработаны для использования преимуществ новых сетей. Сегодня UUCP редко используется по коммутируемым каналам связи, но иногда используется по TCP / IP.[2][3] Количество задействованных систем на начало 2006 г. составляло от 1500 до 2000 сайтов на 60 предприятиях. Долговечность UUCP может быть отнесена к его низкой стоимости, обширному ведению журнала, встроенному аварийное переключение для дозвона и постоянного управления очередью.

Сессии

UUCP обычно запускается, когда пользователь входит в целевую систему и затем запускает программу UUCP. В большинстве случаев это автоматизируется путем входа в известную учетную запись пользователя, используемую для переводов, оболочка которой настроена на Uucico. Таким образом, для автоматизированных переводов другая машина просто должна открыть модемное соединение с вызываемой машиной и войти в известную учетную запись.

Когда uucico запускается, он ожидает получения команд от другой программы UUCP на машине вызывающего абонента и начинает сеанс. Сессия состоит из трех отдельных этапов:

  1. Первоначальное рукопожатие
  2. Файловый запрос (ы)
  3. Заключительное рукопожатие

Первоначальное рукопожатие

При запуске uucico ответит отправкой идентификационной строки, 20 Здесь =имя хоста\0, где 20 - это контрольный символ P, а 0 - конечный ноль. UUCP вызывающего абонента отвечает 20Имя хоста опции\0, где опции - это строка, содержащая ноль или более Unix-подобных переключателей. Сюда могут входить размеры пакетов и окон, максимальный поддерживаемый размер файла, параметры отладки и другие.

В зависимости от настроек двух систем звонок может здесь закончиться. Например, когда вызывающий абонент отвечает своим системным именем, вызываемая система может опционально повесить трубку, если она не распознает вызывающего абонента, отправив сообщение RВы мне неизвестны 0 строка ответа, а затем отключение.

Файловые запросы

Если две системы успешно установят связь, вызывающий абонент начнет отправлять серию файловых запросов. Всего четыре типа:

S вызывает отправку файла от вызывающего абонента в вызываемую систему (загрузка). Предоставляются имена от и до, позволяющие изменять имя файла на приемнике. Когда вызываемая система получает команду S, она отвечает SY, если она прошла успешно и готова принять файл, или SNx, если она не удалась, где x - причина сбоя. Если вызывающий абонент получает SY, он начинает загрузку файла с использованием протокола, выбранного во время первоначального рукопожатия (см. Ниже). Когда передача завершена, вызываемая система отвечает CY, если она успешно получила файл, или CN5, если это не удалось.
р - это запрос вызываемой системы на отправку файла вызывающему абоненту (загрузка). В остальном он похож на S, с использованием RY и RN, чтобы указать, что команда была принята, и она начнет отправлять данные или возникла проблема, и ожидает CY и CN5 от вызывающего абонента в конце передачи.
Икс загружает команды, которые должны быть выполнены в вызываемой системе. Это можно использовать, чтобы заставить эту систему вызывать другую и доставлять ей файлы. Вызываемая система отвечает XY, если это удалось, или XN, если это не удалось.
ЧАСдля Hangup указывает, что вызывающий абонент завершил работу. Вызываемая система отвечает HY, если это удалось, или HN, если это не удалось.

Заключительное рукопожатие

После отправки команды H вызывающая система отправляет последний пакет 20OOOOOO 0 (Control-P, шесть ом, символ конца строки), и вызываемая система отвечает 20OOOOOO 0 (Control-P, семь ом, символ конца строки). Некоторые системы просто повесят трубку при успешном приеме команды H и не будут беспокоиться о последнем рукопожатии.

g-протокол

В наборе протоколов в UUCP основной g-протокол отвечает за передачу информации в безошибочной форме. Протокол возник как система общего назначения для доставки пакетов и, таким образом, предлагает ряд функций, которые не используются пакетом UUCP в целом. К ним относятся вторичный канал, который может отправлять командные данные, перемежающиеся с передачей файла, и возможность повторно согласовывать размеры пакета и окна во время передачи. Эти дополнительные функции могут быть недоступны в некоторых реализациях стека UUCP.[4]

Формат пакета состоял из 6-байтового заголовка и затем от нуля до 4096 байтов в полезной нагрузке. Пакет начинается с одиночного 020 (control-P). За ним следует один байт, известный как «K», содержащий значение от 1 до 8, указывающее размер пакета от 32 до 4096 байтов, или 9, указывающее пакет управления. Многие системы поддерживают только K = 2, что означает 64 байта. Следующие два байта представляли собой 16-битную контрольную сумму полезной нагрузки, не включая заголовок. Следующий байт - это тип данных и, наконец, последний байт - это XOR заголовка, что позволяет проверять его отдельно от полезной нагрузки.[4]

Контрольный байт состоит из трех битовых полей в формате TTXXXYYY. TT - это тип пакета, 0 для пакетов управления (что также требует, чтобы K = 9 было действительным), 1 для альтернативных данных (не используется в UUCP), 2 для данных и 3 указывает на короткий пакет, который заново определяет значение K. В пакете данных XXX - это номер пакета от 0 до 7, а YYY - последний правильно полученный. Это обеспечивает до 8 пакетов в окне. В пакете управления XXX указывает команду, а YYY используется для различных параметров. Например, передача начинается с отправки короткого контрольного пакета с TT = 0 (управление), XXX = 7 и YYY, количество пакетов в окне, затем отправки другого пакета с XXX = 6 и YYY в качестве длины пакета (закодированного как это будет в K), а затем третий пакет, который идентичен первому, но XXX = 5.[4]

g-протокол использует простой раздвижное окно система для работы с потенциально долгими задержками между конечными точками. Протокол позволяет пакетам иметь размер от 64 до 4096 8-битных байтов и окнам, которые включают от 1 до 7 пакетов. Теоретически система, использующая 4k пакетов и 7 окон пакетов (4096x7), предложит соответствие производительности или превзойдет лучшие протоколы передачи файлов, такие как ZMODEM. На практике многие реализации поддерживали только одну настройку 64x3. В результате g-протокол имеет незаслуженную репутацию из-за низкой производительности. Путаница с размерами пакетов и окон привела к G-протоколу, отличавшемуся только тем, что он всегда использовал 4096x3. Taylor UUCP не поддерживал G, но поддерживал любое допустимое запрошенное окно или размер пакета, поэтому удаленные системы, запускающие G, нормально работали бы с g Taylor, в то время как две системы Taylor могли согласовывать даже более быстрые соединения.[4]

Телебит модемы использовались подмена протокола для повышения производительности передачи по протоколу g, отмечая отправку маркеров конца пакета в удаленную систему и немедленно отправляя ACK обратно на локальный хост, делая вид, что удаленная система уже получила пакет и правильно его декодировала. Это заставило программный стек отправить следующий пакет так быстро, что передача стала почти непрерывной. Данные между двумя модемами были исправлены с использованием собственного протокола, основанного на MNP который проходил через полудуплексные соединения Telebit намного лучше, чем обычно это делал бы g-протокол,[4] потому что в обычном случае 64x3 удаленная система будет отправлять постоянный поток ACKs, которые переполнили бы низкоскоростной обратный канал. В сочетании с естественно более высокими скоростями передачи данных модема они значительно улучшили общую пропускную способность и обычно работают примерно в семь раз быстрее, чем модем со скоростью 2400 бит / с.[5] Они широко использовались на хостах UUCP, так как могли быстро окупиться за счет снижения платы за междугороднюю связь.

Другие протоколы

Реализации UUCP также включают другие протоколы передачи для использования по определенным каналам.

f-протокол предназначен для работы по 7-битным ссылкам с исправленными ошибками. Изначально это предназначалось для использования на X.25 ссылки, которые были популярны какое-то время в 1980-х. Он не упаковывает данные, вместо этого весь файл отправляется как одна длинная строка, за которой следует контрольная сумма всего файла. Подобный x-протокол похоже, мало пользы или нет. d-протокол был похож на x, но предназначался для использования в устаревшей сети DataKit.[4]

t-протокол возникла в версиях BSD UUCP и предназначена для безошибочной работы в 8-битной среде. TCP / IP ссылки. В нем вообще нет исправления ошибок, и протокол состоит просто из разбивки данных команд и файлов на пакеты размером 512 или 1024 байта, чтобы легко уместить их в типичные кадры TCP. Менее используемые электронный протокол, который возник в версиях HoneyDanBer, в отличие от t из BSD, отличается только тем, что команды не упаковываются в пакеты, а вместо этого отправляются как обычные строки, а файлы дополняются до ближайших 20 байтов.[4]

История

UUCP изначально был написан на AT&T Bell Laboratories к Майк Леск.[6] К 1978 году он использовался на 82 машинах UNIX внутри системы Bell, в основном для распространения программного обеспечения. Он был выпущен в 1979 году в составе Версия 7 Unix.[7] Первоначальный UUCP был переписан исследователями AT&T Питером Ханиманом, Дэвидом А. Новицем и Брайаном Э. Редманом около 1983 года. Перезапись упоминается как HDB или HoneyDanBer uucp, который позже был улучшен, исправлена ​​ошибка и переупакована как BNU UUCP («Основные сетевые утилиты»).[8]

Каждая из этих версий распространялась как проприетарное программное обеспечение, что вдохновило Ян Лэнс Тейлор написать новый свободное программное обеспечение версия с нуля 1991 года.[9]Тейлор UUCP был выпущен под Стандартная общественная лицензия GNU. Taylor UUCP устранил дыры в безопасности, которые позволили некоторым из оригинальных сетевые черви для удаленного выполнения неожиданных команд оболочки. Taylor UUCP также включил функции всех предыдущих версий UUCP, что позволило ему взаимодействовать с любой другой версией и даже использовать аналогичные форматы файлов конфигурации из других версий.

UUCP был также реализован для не-UNIX операционные системы, в первую очередь ДОС системы. Такие пакеты, как UUSLAVE / GNUUCP (Джон Гилмор, Гарри Паксинос, Тим Позар), UUPC (Дрю Дербишир) и FSUUCP (Кристофер Амблер из IODesign), рано Интернет возможность подключения к персональным компьютерам, расширяющая сеть за пределы взаимосвязанных университетских систем. БСССВП послужило основой для многих электронная доска объявлений (BBS) пакеты, такие как Galacticomm's Основные BBS и Программное обеспечение Mustang с Дикий кот! BBS для подключения к сети UUCP и обмена электронной почтой и Usenet движение. Например, UFGATE (Джон Галвин, Гарри Паксинос, Тим Позар) был пакетом, который обеспечивал шлюз между сетями, работающими Фидонет и протоколы UUCP.

FSUUCP был единственной другой реализацией расширенного протокола «i» Тейлора, что значительно лучше стандартного протокола «g», используемого в большинстве реализаций UUCP.[нужна цитата ]

Маршрутизация почты

Визитная карточка с адресом электронной почты UUCP

В uucp и uuxqt возможности могут быть использованы для отправки электронное письмо между машинами, с подходящими почтовыми пользовательскими интерфейсами и программами агентов доставки. Простой почтовый адрес UUCP был сформирован из имени соседней машины, восклицательный знак (часто произносится хлопнуть), за которым следует имя пользователя на соседнем компьютере. Например, адрес barbox! пользователь будет относиться к пользователю пользователь на соседней машине барбокс.

Кроме того, почта может маршрутизироваться через сеть, проходя через любое количество промежуточных узлов, прежде чем прибыть в пункт назначения. Первоначально это нужно было сделать, указав полный путь со списком промежуточных имен хостов, разделенных знаком. Например, если машина барбокс не подключен к локальной машине, но известно, что барбокс подключен к машине foovax который взаимодействует с локальным компьютером, соответствующий адрес для отправки почты будет пользователь foovax! barbox!.

Пользователь barbox! пользователь обычно публикует свой адрес электронной почты UUCP в такой форме, как …! Bigsite! Foovax! Barbox! Пользователь. Это указывает людям направлять свою почту на машину. большой сайт (предположительно, хорошо известная и доступная всем машина с хорошими подключениями), а оттуда через машину foovax в аккаунт пользователя пользователь на барбокс. Публиковать полный путь было бы бессмысленно, потому что он был бы другим в зависимости от того, где находится отправитель. (например, Ann на одном сайте, возможно, придется отправить через путь gway! tcol! canty! uoh! bigsite! foovax! barbox! пользователь, тогда как откуда-то еще Билл должен отправить по пути pdp10! router22! bigsite! foovax! barbox! пользователь). Многие пользователи будут предлагать несколько маршрутов с разных крупных известных сайтов, обеспечивая даже лучшее и, возможно, более быстрое соединение с отправителем почты.

Путь взрыва

Электронный адрес этой формы был известен как путь взрываУдарьте пути от восьми до десяти машин (или хмель) не были редкостью в 1981 году, и ночные коммутируемые каналы UUCP вызывали недельное время передачи. Пути взлома часто выбирались как по времени передачи, так и по надежности, поскольку сообщения часто терялись. Некоторые хозяева зашли так далеко, что попытались "переписать «путь, отправка почты по« более быстрым »маршрутам - эта практика обычно не одобрялась.

Окончание "псевдодомена" .uucp иногда использовался для обозначения имени хоста, доступного для сети UUCP, хотя это никогда не регистрировалось официально в система доменных имен (DNS) как домен верхнего уровня. Сообщество uucp самоуправлялось и не соответствовало методам и правилам администрирования, регулирующим DNS; .uucp работает там, где нужно[где? ]; некоторые хозяева[который? ] переносить почту из очереди SMTP в очереди uucp на машинах шлюза, если адрес .uucp распознается на входящем SMTP-соединении.[нужна цитата ]

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

В общем как и другие старые форматы адресов электронной почты, пути взрыва были заменены символом "@ обозначение ", даже сайтами, все еще использующими UUCP. Сайт, работающий только с UUCP, может зарегистрировать доменное имя DNS, а DNS-сервер, который обрабатывает этот домен, предоставит Записи MX Это приводит к тому, что Интернет-почта на этот сайт доставляется на хост UUCP в Интернете, который затем может доставить почту на сайт UUCP.

UUCPNET и отображение

UUCPNET так называлась сеть компьютеров, соединенных через UUCP. Эта сеть была очень неформальной, поддерживалась в духе взаимного сотрудничества между системами, принадлежащими тысячам частных компаний, университетов и так далее. Часто, особенно в частном секторе, связи UUCP устанавливались без официального разрешения высшего руководства компаний. Сеть UUCP постоянно менялась по мере добавления новых систем и коммутируемых каналов, удаления других и т. Д.

В Картографический проект UUCP была добровольной, в основном успешной попыткой построить карту связей между машинами, которые открытые почтовые реле и установить управляемое пространство имен. Каждый системный администратор отправлял по электронной почте список систем, к которым они будут подключаться, вместе с рейтингом для каждого такого соединения. Эти отправленные записи карты были обработаны автоматической программой, которая объединила их в единый набор файлов, описывающих все соединения в сети. Эти файлы затем публиковались ежемесячно в группа новостей посвященный этой цели. Файлы карты UUCP могут затем использоваться программным обеспечением, таким как "pathalias", для вычисления наилучшего пути маршрута от одной машины к другой для почты и для автоматического предоставления этого маршрута. На картах UUCP также была указана контактная информация для сайтов, что давало сайтам, желающим присоединиться к UUCPNET, простой способ найти потенциальных соседей.

Связь с Интернетом

Многие хосты UUCP, особенно в университетах, также были подключены к Интернет в первые годы своего существования, и шлюзы электронной почты между Интернетом SMTP -почта и почта UUCP. Таким образом, пользователь системы с подключениями UUCP может обмениваться почтой с пользователями Интернета, а ссылки в Интернете могут использоваться для обхода больших участков медленной сети UUCP. «Зона UUCP» была определена в пространстве имен Интернет-домена для облегчения этих интерфейсов.

С этой инфраструктурой сильная сторона UUCP заключалась в том, что он позволял сайту получать доступ к электронной почте в Интернете и Usenet, используя только модемное соединение с другим взаимодействующим компьютером. Это было в то время, когда настоящий доступ в Интернет требовал выделенная линия передачи данных обеспечение подключения к Интернету Точка присутствияОба эти мероприятия были дорогими и сложными в организации. Напротив, соединение с сетью UUCP обычно можно было установить с помощью нескольких телефонных звонков администраторам предполагаемых соседних систем. Соседние системы часто были достаточно близки, чтобы избежать платы за телефонные звонки, кроме самых элементарных.

Удаленные команды

uux удаленное выполнение команд через UUCP. Команда uux используется для выполнения команда на удаленная система или выполнить команду в локальной системе с использованием файлов из удаленных систем. Команда запускается Uucico демон, который обрабатывает запросы удаленного выполнения как просто другой вид файла для пакетной отправки в удаленную систему всякий раз, когда доступен узел следующего перехода. Затем удаленная система выполнит запрошенную команду и вернет результат, когда исходная система будет доступна. Обе эти передачи могут быть косвенными, через многоэлементные пути, с произвольными окнами доступности. Даже при выполнении команды на всегда доступном соседе uux не выполняется мгновенно.

Отказаться

Использование UUCP начало исчезать с ростом Интернет-провайдеры предлагая недорогой SLIP и PPP Сервисы. Картографический проект UUCP был официально закрыт в конце 2000 года.

Протокол UUCP в настоящее время в основном заменен протоколами на базе Internet TCP / IP. SMTP для почты и NNTP для новостей Usenet.

В июле 2012 г. голландский интернет-провайдер XS4ALL закрыл свою службу UUCP, заявив, что это «вероятно, один из последних провайдеров в мире, который все еще предлагал ее»; в то время у него было всего 13 пользователей (однако до закрытия он несколько лет отказывался от запросов новых пользователей).[10]

Последнее использование и наследие

Одна из сохранившихся особенностей UUCP - это формат файла чата, в значительной степени унаследованный Ожидать пакет программного обеспечения.

UUCP использовался по специальным дорогостоящим каналам (например, по морским спутниковым каналам) еще долгое время после его исчезновения в других местах,[11] и до сих пор остается в использовании.[нужна цитата ]

В середине 2000-х UUCP через TCP / IP (часто зашифрованный с использованием SSH протокол[3]) был предложен[согласно кому? ] для использования, когда на компьютере нет фиксированных IP-адреса но все еще желает использовать стандартный агент по пересылке почты (MTA) как Отправить почту или Постфикс.

Пути, похожие на взрыв, все еще используются в Usenet сеть, правда, не для маршрутизации; они используются для записи в заголовке сообщения узлов, через которые это сообщение прошло, а не для указания, куда оно пойдет дальше.[12] "Путь взрыва" также используется как выражение для любого явно указанного маршрутизация путь между сетевыми хостами. Это использование не обязательно ограничивается UUCP, IP-маршрутизацией, обменом сообщениями электронной почты или Usenet.

Концепция чего-либо сети, устойчивые к задержкам Протоколы были пересмотрены в начале 2000-х годов. Методы, аналогичные используемым UUCP, могут применяться к другим сетям, в которых возникают задержки или значительные нарушения.[13]

Смотрите также

использованная литература

  1. ^ UNIX (TM) СИСТЕМА РАСПРЕДЕЛЕНИЯ ВРЕМЕНИ: РУКОВОДСТВО ПРОГРАММИСТА UNIX, седьмое издание, том 1 (PDF). Мюррей Хилл, Нью-Джерси: Bell Telephone Laboratories, Incorporated. Январь 1979 г.. Получено 2018-02-20.
  2. ^ Ян Лэнс Тейлор (июнь 2003 г.). «Протокол UUCP 'f'». Получено 2008-08-04.
  3. ^ а б Фабьен Пензо. «УУЦПш». Архивировано из оригинал на 2009-09-30. Получено 2009-08-09.
  4. ^ а б c d е ж г Тейлор, Ян Лэнс (8 марта 1996 г.). "Часто задаваемые вопросы о внутреннем устройстве UUCP".
  5. ^ Киркси, Кеннет (25 декабря 1991 г.). «Что нужно знать о модемах». Фактическая пропускная способность составляет около 14400 бит / с.
  6. ^ Макилрой, М.Д. (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Bell Labs. 139.
  7. ^ Руководство по Unix версии 7: «Описание реализации UUCP» Д. А. Новица и «Коммутируемая сеть систем UNIX» Д. А. Новица и М. Э. Леска.
  8. ^ Гэри Дж. Мураками (24 сентября 1988 г.). «История ihnp4 и рост электронной почты». Получено 7 июня, 2013.
  9. ^ Ян Лэнс Тейлор (сентябрь 1991 г.). «Доступна бета-версия нового пакета UUCP». Получено 2009-01-19.
  10. ^ Хейбрегтс, Нильс (30 июля 2012 г.). «Веб-журнал XS4ALL: Афшайд ван UUCP (Прощай, UUCP)» (на голландском). XS4ALL. В архиве из оригинала 31 июля 2013 г.
  11. ^ Рэндольф Бентсон (август 1995 г.). «Linux уходит в море». Получено 2009-02-21.
  12. ^ К. Мурчисон; К. Линдси; Д. Кон (ноябрь 2009 г.). "Дорожка". Формат статьи Netnews. IETF. п. 14-16. сек. 3.1.5. Дои:10.17487 / RFC5536. RFC 5536.
  13. ^ Кевин Фолл (август 2003 г.). Сетевая архитектура, устойчивая к задержкам, для проблемных сетей. Конференция 2003 г. по приложениям, технологиям, архитектурам и протоколам для компьютерных коммуникаций. ACM SIGCOMM. С. 27–34. Дои:10.1145/863955.863960. ISBN  978-1-58113-735-4.

внешняя ссылка