Беркнет
Сеть Беркли , или Беркнет , была первой глобальной сетью , разработанной в Калифорнийском университете в Беркли в 1978 году, главным образом Эриком Шмидтом в рамках его магистерской диссертации . [1] К сети постоянно подключено около десятка компьютеров под управлением BSD. [2] и предоставлял своим пользователям услуги электронной почты , передачи файлов , печати и удаленного выполнения команд , а также подключался к двум другим основным сетям, использовавшимся в то время, ARPANET и UUCPNET . [3]
Сеть работала с использованием высокоскоростных последовательных каналов со скоростью 1200 бит/с в исходной системе. Его программная реализация поставлялась вместе с Berkeley Software Distribution, начиная с версии 2.0. [1] Он состоял из линейной дисциплины Unix в ядре . [4] набор демонов , которые управляли очередями команд, которые должны быть отправлены между машинами, и набор программ пользовательского уровня, которые ставили в очередь фактические команды. Сеть Беркли представила .netrc- файл.
Выпуск UUCP как части Unix версии 7 в 1979 году привел к незначительному внешнему интересу к системе; Мэри Энн Хортон отметила в 1984 году, что «беркнетов уже нет». [5] Поддержка специальной схемы адресации электронной почты Berknet обеспечивалась в программе Sendmail до 1993 года. [4]
История
[ редактировать ]Разработка того, что стало Berknet, началась с первоначальной концепции, разработанной Бобом Фабри , Эрика Шмидта советником . Шмидт разрабатывал систему до тех пор, пока не ушел на перерыв в мае. Первоначально система была разработана для соединения только двух машин, известных как A и Q, обе PDP-11 машины работали под управлением Unix . [6] Разработка продолжалась до конца семестра в мае. К 1 мая первоначальная система, соединявшая две машины A и Q, заработала. Поскольку разработка велась в основном на машине A, система также использовалась для распространения кода на Q. Мелкая задача по перемещению кода на Q привела к первым попыткам автоматизировать систему. [6]
Когда код начал становиться функциональным, он также начал использоваться другими пользователями, и это привело к тому, что A был подключен к новой машине C. Это создало новую проблему, заключающуюся в том, что исходная реализация требовала одного и того же входа пользователя на обеих машинах, и попытка синхронизировать это между несколькими машинами привела к тому, что файл паролей А стал слишком большим. Первоначально решение этой проблемы решалось путем создания выделенных «бесплатных» учетных записей на обеих машинах, используемых Berknet, а также использования .netrc для автоматического входа в систему при необходимости. [6]
Затем была добавлена третья машина, Кори. [6] Чтобы решить проблему с учетной записью и обеспечить физическую маршрутизацию, A стал концентратором, ответственным за хранение и пересылку любых сообщений между C и Кори. Для управления этим была введена таблица маршрутизации. Именно в таком состоянии Шмидт завершил работу над первой версией в мае. Пока его не было, Вычислительный центр внес в систему несколько изменений, что привело к появлению нескольких несовместимых версий Беркнета и периодическим поломкам системы, в том числе к неработоспособности системы sendmail. [7]
К тому времени, когда Шмидт вернулся в систему в октябре, была добавлена машина VAX 11/780 , в результате чего общее количество поддерживаемых версий Unix достигло трех. Затем make использовался для сборки и распространения кода на машины, включая использование более старой версии кода для начальной загрузки машины Кори, на которой работала Unix версии 6, а на других — 7. Дальнейшие изменения привели к созданию стабильной версии и документации. и было добавлено несколько дополнительных сайтов. Производительность стала проблемой, особенно для машин, которым была поручена пересылка, и требовало ручного обслуживания, чтобы система работала. [8]
Описание
[ редактировать ]Система имела некоторое сходство с UUCP в том, что она использовала в пакетном режиме систему передачи файлов , основанную на демоне Unix , который выполнял фактическую передачу, а также определяла подходящий простой сетевой протокол для перемещения данных по телефонным каналам. Протокол встроен в net , которое отслеживает появление новых файлов в ряде определенных мест, представляющих очереди. [8] Когда появится файл, net запускает терминальное соединение с выбранной удаленной машиной, выдает команды и выполняет передачу файлов, а затем в случае успеха отключает и удаляет локальный файл. [9]
С точки зрения пользователя, существует ряд отдельных приложений, составляющих систему: одни для чтения и записи почты, другие для перемещения файлов между компьютерами и т. д. Все они работают путем размещения файлов в соответствующих очередях, которые затем автоматически перемещают данные. на целевую машину, где он снова собирается и перемещается обратно в пользовательские каталоги для использования. [8] Наиболее часто используемым приложением было netcp , который копировал файлы по сети. Ему было предоставлено два имени файла: первое — это путь к существующему файлу, а второе — путь к желаемому конечному местоположению. Пути представляли собой комбинацию имени машины, за которым следовало двоеточие, а затем обычный путь Unix, разделенный косой чертой. Например:
netcp testfile.txt Cory:/usr/pascal/sh
скопировал бы файл testfile.txt по пути /usr/pascal/sh на Кори . Машина [9]
Аналогично, существующие почтовое приложение было модифицировано для понимания той же схемы адресации и поддерживается Утилита mmail , которая автоматически добавляла заголовки, указывающие, откуда пришло сообщение. На принимающей стороне новое приложение Netmail использует net, чтобы войти на указанный удаленный компьютер и прочитать всю найденную там почту. Когда это завершится, prmail затем копирует сообщения в локальную папку пользователя. почту , где ее можно будет прочитать и ответить в обычном режиме. Автоматизация этих отдельных задач была быстро внедрена. [10]
Протокол
[ редактировать ]Базовый протокол передачи был организован в три уровня. Самым верхним был командный протокол, определявший общую структуру файла, ниже — потоковый протокол, который разбивал файл на несколько пакетов, а внизу — аппаратный уровень, использующий последовательные порты . [11]
Уровень команд состоял в основном из формата файла, который начинался с индикатора длины, за которым следовал заголовок, команда для запуска на удаленном компьютере, а затем любые необходимые данные. net собирает файлы, добавляет индикатор длины, а затем помещает полученный файл в соответствующую очередь. Заголовок содержит имена исходного и целевого компьютеров, имена входа, которые будут использоваться на обоих, номер версии, отметки времени, а затем «псевдокоманду». Данные заголовка записываются как обычный текст ASCII с полями, разделенными двоеточиями. [11]
Во время передачи файл разбивается на пакеты для исправления ошибок . Пакеты имеют заголовок, состоящий из байта длины, допускающего до 255 байт в пакете, за которым следуют двухбайтовый номер пакета, однобайтовый индикатор типа, однобайтовая контрольная сумма и затем данные. [11] Контрольная сумма помещается спереди, поскольку пакеты имеют переменную длину, и это упрощает код. Существует несколько типов пакетов, которые содержат командную информацию или данные. Среди них есть пакет «сброса», который указывает на начало новой передачи с удаленной машины. Протокол был очень похож на XMODEM по сложности, в нем не было скользящих окон или потокового подтверждения - функций, которые считалось важным добавить в будущие версии. [12]
На аппаратном уровне система представляла собой просто последовательный порт, соединяющий две машины. Однако существующие системы Unix не могли напрямую обрабатывать 8-битные данные ASCII без значительных накладных расходов, поэтому отправляемые данные кодируются тремя 8-битными байтами, упакованными в четыре 6-битных символа в печатном диапазоне. Это приводит к накладным расходам в размере 33%, что также считается важной областью для возможного улучшения. [12]
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ Перейти обратно: а б Шеклетт, Марк (2004). «Операционная система Unix» . Интернет-энциклопедия . Уайли. п. 497. ИСБН 9780471222019 . Проверено 28 апреля 2020 г.
- ^ Лернер, Джош; Тироль, Жан (2000). «Немного простой экономики открытого исходного кода» (PDF) . Серия рабочих документов NBER . НАЦИОНАЛЬНОЕ БЮРО ЭКОНОМИЧЕСКИХ ИССЛЕДОВАНИЙ . Проверено 30 апреля 2020 г.
- ^ Хаубен, Майкл; Хаубен, Ронда (1997). Пользователи сети: об истории и влиянии Usenet и Интернета . Уайли. п. 170. ИСБН 978-0-8186-7706-9 .
- ^ Перейти обратно: а б Викси, Пол А .; Аволио, Фредерик М. (2002). Sendmail: теория и практика . Эльзевир. п. 3. ISBN 9781555582296 .
- ^ Хортон, Марк Р. (1986). Что такое домен? . Группа пользователей программных средств [Sof84]. стр. 368–372 . Проверено 28 апреля 2020 г.
- ^ Перейти обратно: а б с д Шмидт 1979 , с. 2.
- ^ Шмидт 1979 , с. 3.
- ^ Перейти обратно: а б с Шмидт 1979 , с. 5.
- ^ Перейти обратно: а б Шмидт 1979 , с. 6.
- ^ Шмидт 1979 , с. 7.
- ^ Перейти обратно: а б с Шмидт 1979 , с. 8.
- ^ Перейти обратно: а б Шмидт 1979 , с. 9.
Библиография
[ редактировать ]- Шмидт, Эрик (1983) [1979]. «Сеть Беркли — ретроспектива» (PDF) . Руководство программиста UNIX, 4.2 Распространение программного обеспечения Беркли, том 2c .