Interface Message Processor

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

IMP (англ. Interface Message Processor) — узел коммутации пакетов, который представлял собой усовершенствованный мини-компьютер Honeywell DDP-516 со специальными интерфейсами и программным обеспечением.[1] В более поздние годы IMP были сделаны из неусовершенствованного Honeywell 316, который мог обрабатывать две трети коммуникационного трафика примерно за половину стоимости.[2] Использовался в создании подсети ARPANET с конца 1960-х по 1989 год. Эти компьютеры соединялись линиями связи, передающими информацию со скоростью 56 Кбит/с и стали известны как маршрутизаторы.[3][4][5] IMP требует подключения к главному компьютеру через специальный бит-последовательный интерфейс, определенный в отчёте BBN №1822. Для повышения надёжности каждый IMP должен был быть соединен как минимум с двумя другими IMP. Подсеть должна была быть дейтаграммной, чтобы в случае если какие-либо линии и IMP разрушатся, сообщения могли бы автоматически выбрать альтернативный путь. Программное обеспечение IMP и сетевой коммуникационный протокол ARPA, работающий на IMPS, были рассмотрены в RFC 1, первом из серии документов по стандартизации, опубликованных Инженерным советом Интернета.

Концепция IMP была впервые предложена в 1966 году Дональдом Дэвисом[англ.] для сети NPL в Англии.[6] Эта же идея была независимо разработана в начале 1967 года на совещании главных исследователей для Управления перспективных исследовательских проектов Министерства обороны США для обсуждения соединения машин по всей стране. Ларри Робертс[англ.], который руководил внедрением ARPANET, первоначально предложил сеть хост-компьютеров. Уэс Кларк[англ.] предложил вставить "небольшой компьютер между каждым хост-компьютером и сетью линий передачи"[7], то есть сделать IMP отдельным компьютером.

IMP были созданы массачусетской компанией Bolt Beranek and Newman[англ.] в 1969 году. BBN заключила контракт на создание четырех IMP, первый из которых должен был появиться в Калифорнийском университете ко Дню труда; остальные три должны были быть поставлены с интервалом в один месяц, завершив всю сеть в общей сложности за двенадцать месяцев. Когда массачусетский сенатор Эдвард Кеннеди узнал о достижении BBN в подписании этого миллионного соглашения, он послал телеграмму, поздравляя компанию с получением контракта на создание IMP.[7]

Команда, работающая над IMP, называла себя "IMP Guys":[7]

  • Руководитель группы: Фрэнк Харт[8]
  • Программное обеспечение: Уильям Краутер, Дэйв Уолден, Берни Козелл и Пол Векселблат
  • Оборудование: Северо Орнштейн, Бен Баркер
  • Теория и сотрудничество с вышеизложенным по общему проектированию системы: Боб Кан
  • Другое: Хоули Райзинг
  • Позже в команду IMP были добавлены: Марти Троуп (аппаратное обеспечение), Джим Гейсман, Труетт Тач (монтаж), Билл Бертелл (Honeywell)

BBN начала программную работу в феврале 1969 года на модифицированном Honeywell DDP-516s. Завершенный код состоял из шести тысяч слов и был написан на ассемблере Honeywell 516. Программное обеспечение IMP было создано в основном на PDP-1, где код IMP был написан и отредактирован, а затем запущен на Honeywell.

BBN спроектировал IMP просто как "мессенджер", который будет только "хранить и пересылать".[7] BBN разработал только спецификацию host-to-IMP, оставив хост-сайты для создания отдельных интерфейсов host-to-host. У IMP был механизм контроля ошибок, который отбрасывал пакеты с ошибками без подтверждения получения; исходный IMP, не получив подтверждения получения, впоследствии повторно отправит дубликат пакета. Основываясь на требованиях запроса предложения ARPA, IMP использовал 24-битную контрольную сумму для исправления ошибок. BBN решила заставить аппаратное обеспечение IMP вычислять контрольную сумму, потому что это был более быстрый вариант, чем использование программного расчета. Первоначально IMP был задуман как подключенный к одному хост-компьютеру на каждом сайте, но по настоянию исследователей и студентов с хост-сайтов каждый IMP был в конечном итоге разработан для подключения к нескольким хост-компьютерам.

Первый IMP был доставлен группе Леонарда Клейнрока в Калифорнийском университете в Лос-Анджелесе 30 августа 1969 года. Он использовал главный компьютер SDS Sigma-7. Группа Дугласа Энгельбарта в Стэнфордском исследовательском институте получила второй IMP 1 октября 1969 года. Он был присоединен к узлу SDS-940[англ.]. Третий IMP был установлен в Калифорнийском университете в Санта-Барбаре 1 ноября 1969 года. Четвертый и последний IMP был установлен в Университете штата Юта в декабре 1969 года. Первый коммуникационный тест между двумя системами (в Калифорнийском университете и в Стэнфордском институте) состоялся 29 октября 1969 года, когда на IMP Стэнфордского исследовательского института была предпринята попытка передачи, но передать удалось только первые две буквы. IMP института сломался при получении символа "g".[9] Через несколько минут ошибка была исправлена, и попытка передачи была успешно завершена.

BBN разработала программу для проверки работоспособности схем связи. Согласно отчету, поданному Френком Хартом, предварительный тест в конце 1969 основывается на 27-часовой период активности на линии Калифорнийский университет-Стэнфордский институт и было выяснено, что "примерно один пакет на 20,000 даёт ошибку", а последующие испытания "обнаружили 100% вариацию этого числа - по-видимому, из-за множества необычно длительных периодов времени (порядка часов) без обнаруженных ошибок."[10]

Существовал вариант IMP, называемый TIP, который подключал к сети терминалы, а также компьютеры; он был основан на Honeywell 316, более поздней версии 516. Позже некоторые IMP на базе Honeywell были заменены на многопроцессорные BBN Pluribus[англ.] IMP, но в конечном итоге BBN разработала микропрограммный клон машины Honeywell.

IMP лежали в основе ARPANET, пока DARPA не вывело ARPANET из эксплуатации в 1989 году. Большинство IMP были либо разобраны на части, либо выброшены на свалку, либо переправлены в MILNET. Некоторые из них стали экспонатами в музеях; Клейнрок поместил первый IMP на всеобщее обозрение в Калифорнийском университете Лос-Анджелеса.[7] Последним IMP в ARPANET был IMP из Мэрилендского университета.

Отчёт BBN №1822

[править | править код]

Отчет BBN №1822 определяет метод подключения главного компьютера к IMP. Это соединение и протокол обычно называют 1822, согласно номеру отчета.

Первоначальная версия протокола 1822 была разработана в 1969 году: поскольку он на десятилетие опередил модель OSI, 1822 не полностью вписывается в слои OSI. Однако можно с уверенностью сказать, что протокол 1822 включает в себя физический уровень, канальный уровень передачи данных и сетевой уровень. Интерфейс, видимый хост-системе, передает адреса сетевого уровня непосредственно устройству физического уровня.

Для передачи данных хост создает сообщение, содержащее числовой адрес другого хоста в сети (аналогично IP-адресу в Интернете) и поле данных, и передает сообщение через интерфейс 1822 в IMP. IMP направляет сообщение на конечный хост, используя протоколы, которые в конечном итоге были приняты интернет-маршрутизаторами. Сообщения могли хранить общую длину 8159 бит, из которых первые 96 были зарезервированы для заголовка ("лидер").[11]

В то время как пакеты, передаваемые через Интернет, считаются ненадежными, 1822 сообщения были гарантированно надежно переданы адресату. Если сообщение не удалось доставить, IMP отправил исходящему хосту сообщение о том, что доставка не удалась. На практике, однако, были (редкие) условия, при которых хост мог пропустить сообщение о потере сообщения или при которых IMP мог сообщить о потере сообщения, когда оно действительно было получено.

Более поздние версии протокола 1822, такие как 1822L, описаны в RFC 802 и его преемниках.

Примечания

[править | править код]
  1. Heart F. E., Kahn R. E., Ornstein S. M., Crowther W. R., Walden D. C. The interface message processor for the ARPA computer network (англ.) // ACM Digital Library : научная статья. — 1970. — 5 May. — P. 551—567. — doi:10.1145/1476936.1477021. Архивировано 24 июня 2021 года.
  2. Ornstein S. M., Heart F. E., Crowther W. R., Rising H. K., Russell S. B., Michel A. The terminal IMP for the ARPA computer network (англ.) // ACM Digital Library : научная статья. — 1971. — 16 November. — P. 243–254. — doi:10.1145/1478873.1478906. Архивировано 24 июня 2021 года.
  3. ARPANET IMP, Interface Message Processor (амер. англ.). LivingInternet. Дата обращения: 3 июня 2021. Архивировано 2 февраля 2020 года.
  4. Dave Walden. Looking back at the ARPANET effort, 34 years later (амер. англ.). LivingInternet. Дата обращения: 3 июня 2021. Архивировано 2 февраля 2020 года.
  5. A Technical History of the ARPANET - A Technical Tour (амер. англ.). THINK Protocols. Дата обращения: 3 марта 2014. Архивировано из оригинала 10 сентября 2012 года.
  6. Roberts, Dr. Lawrence G. The ARPANET & Computer Networks (англ.) (май 1995). — «Then in June 1966, Davies wrote a second internal paper, "Proposal for a Digital Communication Network" In which he coined the word packet,- a small sub part of the message the user wants to send, and also introduced the concept of an "Interface computer" to sit between the user equipment and the packet network.» Дата обращения: 13 апреля 2016. Архивировано из оригинала 24 марта 2016 года.
  7. 1 2 3 4 5 Hafner K., Lyon M. Where Wizards Stay Up Late (англ.) // Simon & Schuster. — Нью-Йорк, 1996. — ISBN 0-684-83267-4.
  8. Hafner, Katie (2018-06-25). "Frank Heart, Who Linked Computers Before the Internet, Dies at 89". The New York Times (англ.). Архивировано 28 июня 2018. Дата обращения: 3 июня 2021.
  9. Hambling, David. Weapons Grade (англ.) // Internet Archive. — Нью-Йорк: Carroll & Graf, 2005. — ISBN 0-7867-1769-6.
  10. Heart F. E. Interface message processors for the ARPA computer network. — 1970. — С. 7. Архивировано 13 апреля 2018 года.
  11. Specifications for the interconnection of a host and an IMP (англ.). Архивировано 1 мая 2021 года.

Литература (рус.)

[править | править код]
  • Т18 Компьютерные сети. 4-е изд./Э. Таненбаум. — СПб.: Питер, 2003. — 992 с.: ил. — (Серия «Классика computer science»).

Дополнительная информация (англ.)

[править | править код]

Дополнительная информация (рус.)

[править | править код]