Между компьютером и сетью появился отдельный посредник

Компьютеры, подключённые к ARPANET, могли различаться устройством и программами. Если бы каждый из них должен был напрямую разбираться в особенностях всех остальных, добавление нового узла требовало бы множества отдельных согласований. Интерфейсный процессор сообщений — IMP — снимал эту нагрузку с самих машин.

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

Совместимость не означала перевод любого кода

«Нейтральность» IMP состояла в том, что он отделял внутреннее устройство компьютера от правил передачи данных по ARPANET. Машине не требовалось знать, как устроены все остальные компьютеры или как они хранят свои данные. Но для связи ей всё равно нужно было взаимодействовать со своим IMP по согласованным правилам — сетевому интерфейсу.

Это различие важно: IMP не был универсальным переводчиком любых программных языков и форматов. Он решал более узкую, но фундаментальную задачу — переносил данные через общую сеть, скрывая от конечных машин значительную часть её внутренней сложности.

Сеть росла без переделки каждой пары компьютеров

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

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