Интерфейсный процессор сообщений ( IMP ) был узлом коммутации пакетов , который использовался для соединения сетей участников с ARPANET с конца 1960-х по 1989 год. Это было первое поколение шлюзов , которые сегодня известны как маршрутизаторы . [1] [2] [3] IMP был защищенным мини-компьютером Honeywell DDP-516 со специализированными интерфейсами и программным обеспечением. [4] В более поздние годы IMP изготавливались из не защищенного Honeywell 316 , который мог обрабатывать две трети трафика связи примерно за половину стоимости. [5] IMP требует подключения к главному компьютеру через специальный последовательный интерфейс , определенный в отчете BBN Report 1822. Программное обеспечение IMP и сетевой протокол связи ARPA, работающий на IMP, обсуждались в RFC 1, [6] первом из серии документов по стандартизации, опубликованных тем, что позже стало Целевой группой по инжинирингу Интернета (IETF).
Концепция интерфейсного компьютера для компьютерных сетей была впервые предложена в 1966 году Дональдом Дэвисом для сети NPL в Англии и реализована там в 1968-1969 годах. [7] [8] [9] [10]
Та же идея была независимо разработана в начале 1967 года на встрече главных исследователей Агентства перспективных исследовательских проектов Министерства обороны (ARPA) для обсуждения объединения машин по всей стране. Ларри Робертс , который руководил реализацией ARPANET, изначально предложил сеть хост-компьютеров . Уэс Кларк предложил вставить «небольшой компьютер между каждым хост-компьютером и сетью линий передачи», [11] то есть сделать IMP отдельным компьютером.
IMP были построены базирующейся в Массачусетсе компанией Bolt Beranek and Newman (BBN) в 1969 году. BBN заключила контракт на строительство четырех IMP, первый из которых должен был быть доставлен в Калифорнийский университет в Лос-Анджелесе к Дню труда; остальные три должны были быть доставлены с интервалом в один месяц после этого, завершив всю сеть в общей сложности за двенадцать месяцев. Когда сенатор от Массачусетса Эдвард Кеннеди узнал о достижении BBN в подписании этого соглашения на миллион долларов, он отправил телеграмму, поздравляющую компанию с заключением контракта на строительство «Interfaith Message Processor». [11]
Команда, работающая над IMP, называла себя «IMP Guys»: [11]
BBN начала программные работы в феврале 1969 года на модифицированных Honeywell DDP-516. Завершенный код был длиной в шесть тысяч слов и был написан на языке ассемблера Honeywell 516. Программное обеспечение IMP было создано в основном на PDP-1, где код IMP был написан и отредактирован, а затем запущен на Honeywell.
Существовал значительный технический обмен с британской командой, создававшей сеть NPL , и Полом Бараном из RAND, но команда BBN независимо разработала важные аспекты внутренней работы сети, такие как маршрутизация, управление потоками, проектирование программного обеспечения и управление сетью. [13] [14] [15] [16] [17] [18] [19]
BBN разработала IMP просто как «мессенджер», который будет только «хранить и пересылать». [11] BBN разработала только спецификацию host-to-IMP, предоставив хост-сайтам возможность строить индивидуальные интерфейсы host-to-host. IMP имел механизм контроля ошибок, который отбрасывал пакеты с ошибками без подтверждения получения; исходный IMP, не получив подтверждающего получения, впоследствии повторно отправлял дубликат пакета. На основе требований запроса ARPA на предложение , IMP использовал 24-битную контрольную сумму для исправления ошибок. BBN решила заставить аппаратное обеспечение IMP вычислять контрольную сумму, потому что это был более быстрый вариант, чем использование программного расчета. IMP изначально задумывался как подключаемый к одному хост-компьютеру на сайт, но по настоянию исследователей и студентов с хост-сайтов каждый IMP в конечном итоге был разработан для подключения к нескольким хост-компьютерам.
Первый IMP был доставлен группе Леонарда Клейнрока в Калифорнийском университете в Лос-Анджелесе 30 августа 1969 года. Он использовал хост-компьютер SDS Sigma 7. Группа Дугласа Энгельбарта в Стэнфордском исследовательском институте (SRI) получила второй IMP 1 октября 1969 года. Он был подключен к хосту SDS 940. Третий IMP был установлен в Калифорнийском университете в Санта-Барбаре 1 ноября 1969 года. Четвертый IMP был установлен в Университете Юты в декабре 1969 года. Первый тест связи между двумя системами (UCLA и SRI) состоялся 29 октября 1969 года, когда была предпринята попытка входа в машину SRI, но удалось передать только первые две буквы. Машина SRI вышла из строя при получении символа «g». [20] Через несколько минут ошибка была исправлена, и попытка входа была успешно завершена.
BBN разработала программу для проверки производительности коммуникационных цепей. Согласно отчету, поданному Heart, предварительный тест в конце 1969 года, основанный на 27-часовом периоде активности на линии UCSB-SRI, обнаружил «приблизительно один пакет на 20 000 с ошибкой»; последующие тесты «выявили 100%-ное изменение этого числа — по-видимому, из-за многих необычно длительных периодов времени (порядка часов) без обнаружения ошибок». [21]
Существовал вариант IMP, называемый TIP (Terminal IMP), который соединял терминалы (то есть телетайпы ), а также компьютеры в сеть; он был основан на Honeywell 316, более поздней версии 516. Позже некоторые IMP на базе Honeywell были заменены многопроцессорными IMP BBN Pluribus , но в конечном итоге BBN разработала микропрограммный клон машины Honeywell.
IMP были ядром ARPANET до тех пор, пока DARPA не вывело ARPANET из эксплуатации в 1989 году. Большинство IMP были либо разобраны, либо отправлены на свалку, либо переданы в MILNET . Некоторые стали экспонатами в музеях; Клейнрок выставил IMP номер один на всеобщее обозрение в Калифорнийском университете в Лос-Анджелесе. [11] Последний IMP в ARPANET находился в Мэрилендском университете.
Отчет BBN 1822 определяет метод подключения хост-компьютера к IMP. Это соединение и протокол обычно обозначаются как 1822 , номер отчета. Спецификация была написана Бобом Каном . [11] : 116, 149
Для передачи данных хост создает сообщение, содержащее числовой адрес другого хоста в сети (аналогично IP-адресу в Интернете ) и поле данных, и передает сообщение через интерфейс 1822 в IMP. IMP направляет сообщение на целевой хост, используя протоколы, которые в конечном итоге были приняты маршрутизаторами Интернета. Сообщения могли хранить общую длину 8159 бит, из которых первые 96 были зарезервированы для заголовка («лидера»). [22]
Хотя пакеты , передаваемые через Интернет, считаются ненадежными, 1822 сообщения гарантированно передавались по адресу назначения надежно. Если сообщение не могло быть доставлено, IMP отправлял на исходный хост сообщение о том, что доставка не удалась. На практике, однако, были (редкие) условия, при которых хост мог пропустить отчет о потере сообщения или при которых IMP мог сообщить о потере сообщения, когда оно фактически было получено.
Спецификация включала в себя протокол с чередованием битов [23] , тип которого был предложен командой Дональда Дэвиса для сети NPL в 1968 году. [24]
Более поздние версии протокола 1822, такие как 1822L, описаны в RFC 802 и его последователях.
Затем в июне 1966 г. Дэвис написал вторую внутреннюю статью «Предложение о цифровой сети связи», в которой он ввел слово «пакет» — небольшую часть сообщения, которое пользователь хочет отправить, а также ввел концепцию «интерфейсного компьютера», который должен располагаться между пользовательским оборудованием и пакетной сетью.
статья от июня 1966 года... представила концепцию «интерфейсного компьютера», который должен располагаться между пользовательским оборудованием и пакетной сетью.
Первая сеть с коммутацией пакетов была реализована в Национальной физической лаборатории в Соединенном Королевстве. За ней быстро последовала ARPANET в 1969 году.
Леонард Клейнрок: Дональд Дэвис ... сделал одноузловой пакетный коммутатор до того, как это сделала ARPA
Помимо технических проблем соединения компьютеров с помощью коммуникационных цепей, понятие компьютерных сетей рассматривалось в ряде мест с теоретической точки зрения. Особо следует отметить работу, проделанную Полом Бараном и другими в Rand Corporation в исследовании «О распределенных коммуникациях» в начале 1960-х годов. Также следует отметить работу, проделанную Дональдом Дэвисом и другими в Национальной физической лаборатории в Англии в середине 1960-х годов. ... Еще одна ранняя крупная разработка сети, которая повлияла на разработку ARPANET, была предпринята в Национальной физической лаборатории в Миддлсексе, Англия, под руководством Д. У. Дэвиса.
Важные аспекты внутренней работы сети, такие как маршрутизация, управление потоком, проектирование программного обеспечения и управление сетью, были разработаны командой BBN, состоящей из Фрэнка Харта, Роберта Кана, Северо Омстейна, Уильяма Кроутера и Дэвида Уолдена.
Хотя между группой NPL и теми, кто проектировал и реализовал ARPANET, существовал значительный технический обмен, усилия по созданию сети данных NPL, по-видимому, оказали незначительное фундаментальное влияние на проектирование ARPANET. Такие основные аспекты проекта сети данных NPL, как стандартный сетевой интерфейс, алгоритм маршрутизации и программная структура коммутационного узла, были в значительной степени проигнорированы проектировщиками ARPANET. Однако нет сомнений, что во многих менее фундаментальных отношениях сеть данных NPL оказала влияние на проектирование и развитие ARPANET.
Система впервые была запущена в эксплуатацию в начале 1969 года.