Протокол NCP
Протокол NCP (англ. Network Control Protocol, протокол управления сетью) — это сетевой протокол, входивший в состав ранних версий стека протоколов TCP/IP, разработанного в 1970-х годах для сети ARPANET. NCP обеспечивал функции сетевого уровня и транспортного уровня эталонной модели OSI, предшествуя протоколам IP и TCP в современном понимании. Он был основным протоколом передачи данных в ARPANET с 1970 по 1983 год, после чего был заменён на более совершенный стек TCP/IP.
История
Разработка и внедрение
Протокол NCP был разработан группой учёных и инженеров под руководством Стива Крокера (Steve Crocker) в рамках Сетевой рабочей группы (Network Working Group, NWG) ARPANET. Первая спецификация протокола была опубликована в 1970 году в документе RFC 33, известном как «Протокол управления сетью» (Network Control Protocol). NCP был реализован на узлах ARPANET, которые представляли собой мэйнфреймы, подключённые к сети через интерфейсные процессоры сообщений (Interface Message Processors, IMP).
К 1971 году NCP стал стандартным протоколом для связи между хостами ARPANET. Он позволял устанавливать соединения, передавать данные и управлять потоком информации между различными вычислительными системами, включая компьютеры от разных производителей (IBM, DEC, Honeywell и другие). В отличие от современных протоколов, NCP не разделял функции сетевого и транспортного уровней, объединяя их в единый набор правил.
Проблемы и замена
К середине 1970-х годов стали очевидны ограничения NCP. Протокол не поддерживал автоматическую маршрутизацию, был привязан к физической топологии ARPANET и не мог эффективно работать в условиях потери пакетов или перегрузки сети. Кроме того, NCP не обеспечивал надёжную доставку данных при сбоях в промежуточных узлах. Эти недостатки привели к разработке нового стека протоколов TCP/IP под руководством Винтона Серфа и Роберта Канна.
1 января 1983 года, в день, известный как «Flag Day» (День флага), ARPANET официально перешла с NCP на TCP/IP. Все узлы сети были обязаны переустановить программное обеспечение, что сделало NCP устаревшим. После этого протокол использовался только в изолированных экспериментальных сетях и в исторических целях.
Архитектура и принципы работы
Уровни и функции
NCP выполнял функции, которые в современной модели OSI распределены между сетевым (уровень 3) и транспортным (уровень 4) уровнями. Он отвечал за:
- Установление соединения: инициализация логического канала между двумя хостами.
- Передачу данных: отправка и приём сообщений, разбитых на пакеты.
- Управление потоком: регулирование скорости передачи для предотвращения переполнения буферов получателя.
- Обнаружение ошибок: проверка целостности данных с помощью контрольных сумм.
В отличие от TCP, NCP не поддерживал многопутевую маршрутизацию и не имел механизмов восстановления после потери пакетов в сети. Все функции маршрутизации были возложены на нижние уровни — интерфейсные процессоры сообщений (IMP), которые работали по протоколу 1822 (названному в честь отчёта BBN).
Формат пакета
Пакет NCP состоял из заголовка и полезной нагрузки. Заголовок включал:
- Идентификатор соединения: номер логического канала.
- Тип сообщения: команда (например, «Открыть соединение», «Закрыть соединение», «Данные»).
- Длину данных: размер полезной нагрузки в байтах.
- Контрольную сумму: для проверки целостности заголовка.
Полезная нагрузка могла содержать произвольные данные, включая текстовые сообщения, файлы или команды для удалённых систем. Максимальный размер пакета был ограничен возможностями IMP (обычно 1000–2000 байт).
Соединения
NCP использовал модель с установлением соединения (connection-oriented). Перед передачей данных хосты обменивались специальными сообщениями для создания логического канала. Этот канал оставался активным до тех пор, пока одна из сторон не инициировала разрыв. Такой подход гарантировал, что данные будут доставлены в правильном порядке, но делал протокол уязвимым к сбоям в сети.
Применение
ARPANET
Основное применение NCP — работа в сети ARPANET, созданной Министерством обороны США. Протокол использовался для:
- Удалённого доступа: подключение к мэйнфреймам через терминалы (протокол Telnet, ранняя версия).
- Передачи файлов: протокол FTP (File Transfer Protocol) поверх NCP.
- Электронной почты: отправка сообщений между пользователями (протокол SMTP в зачаточной форме).
- Совместных вычислений: обмен данными между исследовательскими центрами.
Экспериментальные сети
После перехода на TCP/IP NCP продолжал использоваться в некоторых экспериментальных сетях, например, в проектах по изучению спутниковой связи (SATNET) и пакетной радиосвязи (PRNET). Однако к концу 1980-х годов он был полностью вытеснен.
Критика и ограничения
Современные исследователи и историки компьютерных сетей отмечают несколько ключевых недостатков NCP:
- Отсутствие маршрутизации: NCP не мог самостоятельно выбирать путь передачи данных, полагаясь на статическую топологию ARPANET. Это делало сеть негибкой и уязвимой к отказам.
- Привязка к оборудованию: протокол был тесно связан с архитектурой IMP, что затрудняло его масштабирование и интеграцию с другими сетями.
- Ненадёжность: при потере пакета в сети NCP не мог восстановить данные, что приводило к сбоям в работе приложений.
- Ограниченная адресация: количество возможных соединений было ограничено 256 идентификаторами, что стало проблемой при росте ARPANET.
Винтон Серф в своих воспоминаниях отмечал, что NCP был «хорошим протоколом для своего времени», но не мог удовлетворить требованиям растущей сети. Переход на TCP/IP позволил решить эти проблемы и заложил основу для современного Интернета.
Наследие
Несмотря на то, что NCP устарел более 40 лет назад, его влияние на развитие компьютерных сетей значительно:
- Протокол NCP стал первым практическим воплощением концепции сетевого протокола с установлением соединения.
- Опыт эксплуатации NCP выявил необходимость разделения функций сетевого и транспортного уровней, что было реализовано в TCP/IP.
- Термин «протокол управления сетью» (Network Control Protocol) позже был использован в других контекстах, например, в протоколах управления сетью в стеке TCP/IP (ICMP, ARP).
В современных учебниках по компьютерным сетям NCP рассматривается как исторический курьёз, но его изучение помогает понять эволюцию протоколов и причины, по которым TCP/IP стал доминирующим стандартом.
Источники
- Crocker, S. (1970). «Protocol Notes». RFC 33.
- Cerf, V., & Kahn, R. (1974). «A Protocol for Packet Network Intercommunication». IEEE Transactions on Communications.
- Hafner, K., & Lyon, M. (1996). «Where Wizards Stay Up Late: The Origins Of The Internet».
- «ARPANET — The First Internet» (2010). Computer History Museum.
- RFC 801 — «NCP/TCP Transition Plan» (1981).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →