Введение
Технология локальных сетей Chaosnet — это технология локальных сетей. Она была впервые разработана Томасом Найтом и Джеком Холлоуэем в лаборатории искусственного интеллекта MIT в 1975 году и позднее. Она охватывает две отдельные, но тесно связанные технологии. Более распространенной была совокупность протоколов пакетной передачи данных, предназначенных для соединения недавно разработанных и весьма популярных (в стенах MIT) машин Lisp; второй представляла собой одну из первых аппаратных реализаций локальной сети (LAN).
Chaosnet is a local area network technology. It was first developed by Thomas Knight and Jack Holloway at MIT's AI Lab in 1975 and thereafter. It refers to two separate, but closely related, technologies. The more widespread was a set of computer communication packet based protocols intended to connect the then recently developed and very popular (within MIT) Lisp machines; the second was one of the earliest local area network (LAN) hardware implementations.
Происхождение
Протокол Chaosnet первоначально использовал реализацию на коаксиальном кабеле CATV, основанную на ранней версии Ethernet Xerox PARC со скоростью 3 мегабита в секунду, ранней ARPANET и протоколе управления передачей (TCP). Это была система с разделением по времени доступа, предназначенная для работы на расстоянии от 0 до 1000 метров, включавшая в себя псевдо-слотовую схему, предназначенную для уменьшения коллизий. Она работала путем передачи виртуального токена разрешения от хоста к хосту; успешные передачи пакетов обновляли информацию каждого хоста о том, у какого хоста в данный момент находится токен. Коллизии приводили к тому, что хост замолкал на время, зависящее от расстояния до хоста, с которым произошла коллизия. Коллизии никогда не были серьезной проблемой, и псевдо-слотовая схема вышла из употребления. Сетевая топология Chaosnet обычно представляла собой последовательность линейных (не кольцевых) кабелей, каждый длиной до километра и примерно с 12 клиентами. Отдельные сегменты соединялись между собой "мостами" (по образцу ARPANET), как правило, старыми компьютерами, такими как PDP 11, с двумя сетевыми интерфейсами. Позже протоколы также были реализованы в виде полезной нагрузки, которую можно было передавать по Ethernet (обычно более поздней версии со скоростью 10 мегабит в секунду). Chaosnet был специально разработан для локальных сетей (LAN); функции поддержки глобальных сетей (WAN) были исключены ради простоты. Chaosnet можно рассматривать как современника протоколов PUP, разработанных PARC, и протокола Интернет (IP), и он был признан одним из других сетевых классов (помимо "IN" и "HS") в системе доменных имен. BIND использует встроенный псевдодомен верхнего уровня в "классе CHAOS" для получения информации о работающем DNS-сервере.
Протокол Chaosnet
Протокол Chaosnet идентифицирует хосты по 16-битным адресам, 8 бит из которых определяют подсеть, а 8 бит – хост внутри подсети. Базовый протокол обеспечивал полнодуплексную надежную передачу пакетов между двумя пользовательскими процессами. Содержимое пакета могло рассматриваться как байты размером 8 или 16 бит, при этом поддержка других размеров слов предоставлялась протоколами более высокого уровня. Соединение идентифицировалось комбинацией 16-битных адресов каждого хоста и 16-битным "индексом соединения", назначаемым каждым хостом для обеспечения уникальности. "Контролируемые" пакеты внутри соединения идентифицировались 16-битным номером пакета, который использовался для надежной и упорядоченной доставки контролируемых пакетов с повторной передачей и управлением потоком. "Неконтролируемые" пакеты не подвергались повторной передаче и использовались на более низком уровне для поддержки управления потоком и повторной передачи. Chaosnet также поддерживал широковещательные пакеты "BRD" для нескольких подсетей. Первоначальное установление соединения осуществлялось с использованием "имен контактов". Эти имена идентифицировали сетевую службу и протокол более высокого уровня. Например, "STATUS" было именем контакта, запрашивающим базовую сетевую статистику с хоста. "TELNET" было именем контакта для протокола TELNET сети Arpanet. "FILE" было именем контакта для сетевой файловой службы Lisp Machine. Другие имена контактов включали "SUPDUP", "MAIL", "NAME" для протокола Finger сети Arpanet, "TIME", "SEND" для интерактивных сообщений, "ARPA" для шлюзовой службы Arpanet. "DOVER" было именем контакта для отправки заданий на печать хостам Chaosnet с подключенным принтером Xerox Dover (ранний лазерный принтер). Разработчики могли легко экспериментировать с новыми протоколами, придумывая новые имена контактов. В ITS новый сервер для этого протокола можно было установить, создав ссылку на программу в расположении DSK:DEVICE;CHAOS <cname>, где <cname> состояло из до шести букв имени контакта. Простые транзакции могли быть завершены одним пакетом "RFC", содержащим имя контакта, на который отвечал один пакет "ANS" с соответствующей информацией. Например, RFC с именем контакта "TIME" приводил к одному пакету ANS, содержащему 32-битное число, указывающее время. В оригинальном манифесте GNU упоминалось, что он был направлен, среди прочего, на поддержку протокола Chaosnet. Symbolics, производитель машин Lisp, лицензировала аппаратную и программную реализацию Chaosnet от MIT в CADR, компании, занимающейся разработкой компьютерных систем.