← На главную

Chaosnet: сеть MIT 1975 года с виртуальным токеном без центрального управления

14.06.2026 19:14 · hackernews

Chaosnet — это локальная сеть, разработанная в 1975 году в лаборатории искусственного интеллекта Массачусетского технологического института. Главная фишка — полное отсутствие централизованного управления. Сеть задумывалась как скоростной канал для Lisp Machine — многопроцессорной системы, где каждому активному пользователю выдаётся персональный компьютер со своим процессором, памятью и диском. Файлы хранятся на центральном файловом сервере, доступ к которому идёт через Chaosnet. Сеть должна была быть быстрой и надёжной, соединять несколько десятков машин, но не обязана была работать на больших расстояниях.

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

С аппаратной точки зрения Chaosnet — это коаксиальный кабель (полудюймовый, низких потерь, с волновым сопротивлением 75 Ом), к которому через UHF-коннекторы подключаются трансиверы. Максимальная длина сегмента — около километра, число узлов — несколько десятков. Кабель может быть только линейным, без ответвлений и петель. Если нужно больше — используются bridge, например, на базе PDP-11, которые ретранслируют пакеты между разными сегментами.

Биты передаются со скоростью 4 мегабита в секунду методом Upright Biphase NRZI. Каждый бит начинается с перехода уровня, что даёт самосинхронизацию. Пакет состоит из заголовка (48 бит: адрес получателя, отправителя и контрольная сумма CRC) и данных до 4032 бит. Аппаратура сама решает, принять пакет или нет — сравнивает адрес назначения со своим.

Для разрешения коллизий используется хитрый метод виртуального токена. Каждому узлу назначается временной слот в соответствии с его адресом. Узел может начать передачу только в свой слот. Счётчики слотов синхронизируются по адресу отправителя в каждом принятом пакете. Если коллизия всё же случается, передатчик посылает сигнал "abort", очищая эфир, а программное обеспечение повторяет передачу.

Программный протокол Chaosnet обеспечивает полнодуплексное надёжное соединение между процессами. Сеть гарантирует, что не перепутает, не потеряет и не продублирует пакеты. В случае серьёзной ошибки соединение просто разрывается. Для установки соединения используется асимметричная схема: один процесс (user) запрашивает подключение к другому (server) по контактному имени. После установки соединения все становятся симметричными. Протокол требует в два раза меньше кода, чем Arpanet NCP, и существует даже минимальная реализация для однокристального микрокомпьютера.

Читать оригинал →