Открыть сервис

Network Control Program

Network Control Program — это протокол управления сетью, разработанный для ARPANET, предшественника современного Интернета. Он обеспечивал взаимодействие между хост-компьютерами (узлами сети) и сетевыми интерфейсными процессорами (IMP), позволяя передавать данные и устанавливать логические соединения. NCP был первым стандартизированным протоколом, реализовавшим принципы коммутации пакетов в глобальной сети, и использовался с 1970 по 1983 год, после чего был заменён на протокол TCP/IP.

История

Разработка и внедрение

Разработка NCP началась в рамках проекта ARPANET, финансируемого Управлением перспективных исследовательских проектов Министерства обороны США (DARPA). В 1969 году были запущены первые четыре узла сети (Калифорнийский университет в Лос-Анджелесе, Стэнфордский исследовательский институт, Калифорнийский университет в Санта-Барбаре и Университет Юты). Для обеспечения связи между ними требовался протокол, который бы управлял передачей данных через IMP — специализированные компьютеры, отвечавшие за маршрутизацию пакетов.

Первая спецификация NCP была опубликована в 1970 году в документе RFC 33 (Request for Comments), авторами которого стали Стивен Крокер, Боб Кан и другие участники проекта. NCP был реализован на операционных системах хост-компьютеров, таких как TENEX (для PDP-10) и OS/360 (для IBM System/360). К 1972 году NCP использовался на всех узлах ARPANET, насчитывавших около 20 хост-компьютеров.

Роль в развитии Интернета

NCP стал первым протоколом, который продемонстрировал возможность надёжной передачи данных между разнородными компьютерными системами. Он обеспечивал базовые функции:

  • установление соединения между процессами на разных хостах;
  • передачу данных с контролем ошибок;
  • завершение соединения.

Однако NCP имел существенные ограничения. Он не поддерживал сквозное подтверждение доставки пакетов (end-to-end acknowledgment), полагаясь на надёжность IMP. Кроме того, NCP был жёстко привязан к архитектуре ARPANET и не мог работать в сетях с другой топологией. Эти недостатки привели к разработке в 1970-х годах протокола TCP/IP, который был внедрён в 1983 году. В этот день — 1 января 1983 года — NCP был официально отключён, что считается моментом рождения современного Интернета.

Архитектура и принципы работы

Уровни и функции

NCP работал на двух уровнях модели OSI (хотя сама модель была разработана позже):

  • Транспортный уровень: обеспечивал управление соединениями (установление, поддержание, разрыв) и контроль потока данных.
  • Сетевой уровень: взаимодействовал с IMP для маршрутизации пакетов.

Протокол использовал два типа сообщений:

  • Сообщения управления: для установки и разрыва соединений (например, запрос на соединение, подтверждение, отказ).
  • Сообщения данных: содержали пользовательскую информацию, разбитую на пакеты фиксированного размера (до 1008 байт).

Взаимодействие с IMP

Каждый хост-компьютер подключался к IMP через интерфейс, называемый «хост-IMP-интерфейс». NCP отправлял команды IMP для передачи пакетов, используя протокол BBN 1822 (разработанный компанией Bolt, Beranek and Newman). IMP, в свою очередь, отвечал за маршрутизацию пакетов между узлами, используя таблицы маршрутизации, которые обновлялись динамически.

Адресация

В NCP адресация хостов была двухуровневой:

  • Номер сети: идентифицировал конкретную сеть ARPANET (всего было около 10 сетей, соединённых через шлюзы).
  • Номер хоста: уникальный идентификатор компьютера в пределах сети (например, 1.2 означал хост №2 в сети №1).

Для идентификации процессов на хосте использовались «сокеты» (socket) — числовые идентификаторы, которые назначались приложениям. Например, сокет 1 мог быть зарезервирован для Telnet, а сокет 3 — для FTP.

Применение

Сервисы и протоколы поверх NCP

NCP служил транспортной основой для первых сетевых приложений:

  • Telnet (RFC 97, 1971) — протокол удалённого терминального доступа, позволявший пользователям подключаться к удалённым компьютерам.
  • FTP (File Transfer Protocol, RFC 114, 1971) — протокол передачи файлов, использовавший NCP для установки двух соединений: управляющего и данных.
  • SMTP (Simple Mail Transfer Protocol) — ранние версии электронной почты, такие как SNDMSG и READMAIL, также работали поверх NCP.

Ограничения

NCP не поддерживал:

  • Сквозное подтверждение доставки (end-to-end acknowledgment) — потеря пакета могла быть обнаружена только на уровне приложения.
  • Мультиплексирование нескольких соединений через один физический канал (это реализовывалось на уровне IMP).
  • Адаптацию к изменяющейся пропускной способности сети — NCP предполагал фиксированную скорость передачи.

Критика и наследие

Недостатки

Основные критики NCP, включая Винтона Серфа и Роберта Канна, указывали на:

  • Отсутствие механизма сквозной надёжности — NCP полагался на IMP, который мог терять пакеты при перегрузках.
  • Негибкость — протокол был жёстко привязан к архитектуре ARPANET и не мог работать в сетях с другой топологией (например, с кольцевой или звездообразной).
  • Сложность масштабирования — адресация NCP была ограничена 256 хостами на сеть, что стало проблемой при росте ARPANET.

Переход на TCP/IP

В 1974 году Винтон Серф и Роберт Канн опубликовали RFC 675, описывающий протокол TCP, который устранял недостатки NCP. В 1980 году DARPA объявила о планах перехода на TCP/IP, и 1 января 1983 года NCP был отключён на всех узлах ARPANET. Этот день известен как «Флаг-день» (Flag Day). Несмотря на замену, NCP заложил основы для современных сетевых протоколов, включая концепцию сокетов и установления соединений.

Интересные факты

  • Первое сообщение, переданное по NCP в 1969 году, было «lo» (попытка ввести «login» на компьютере в Стэнфорде, которая прервалась из-за сбоя).
  • NCP был реализован на языке ассемблера для PDP-10, и его размер составлял около 2000 строк кода.
  • Протокол NCP упоминается в RFC 1 (1969), где описывается протокол IMP-хоста, хотя сам термин «NCP» появился позже.

Источники

  • RFC 33 — «New Host-Host Protocol» (1970).
  • RFC 97 — «Telnet Protocol» (1971).
  • RFC 114 — «File Transfer Protocol» (1971).
  • RFC 675 — «Specification of Internet Transmission Control Program» (1974).
  • Винтон Серф, Роберт Канн — «A Protocol for Packet Network Intercommunication» (1974).
  • Кэти Хафнер, Мэтью Лайон — «Where Wizards Stay Up Late: The Origins of the Internet» (1996).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →