Введение

Протокол управления сетью ARPANET (англ. Network Control Protocol, NCP) — протокол связи для компьютерной сети 1970-х и начала 1980-х годов. Он обеспечивал транспортный уровень стека протоколов, работающего на хост-компьютерах ARPANET, предшественника современного Интернета. NCP предшествовал протоколу управления передачей (TCP) как протокол транспортного уровня, использовавшийся в ранней ARPANET. NCP был симплексным протоколом, использующим два номера портов, устанавливающих два соединения для двусторонней связи. Для каждого прикладного приложения или протокола на прикладном уровне резервировались нечётный и чётный порты. Стандартизация TCP и UDP уменьшила необходимость использования двух симплексных портов для каждого приложения до одного дуплексного порта. Существует некоторая путаница в отношении названия, даже среди инженеров, работавших с ARPANET. Изначально не было необходимости в названии для всего стека протоколов, поэтому его и не существовало. Когда началась разработка TCP, его предшественнику потребовалось название, и уже существующая аббревиатура «NCP» (которая первоначально относилась к Network Control Program, программному обеспечению, реализующему этот стек) была органично принята для этой цели. Впоследствии было осознано, что первоначальное расшифровка этой аббревиатуры была неуместна для её нового значения, поэтому была создана новая квази-обратная аббревиатура — «Протокол управления сетью», также органично, без формального решения.

История

NCP был впервые специфицирован и описан в самых ранних документах RFC для ARPANET в 1969 году после серии совещаний по этой теме с инженерами из UCLA, Университета Юты и SRI. Он был окончательно разработан в начале 1970 года и развернут на всех узлах ARPANET в декабре 1970 года. Он оставался в использовании до конца 1982 года; см. раздел «День флага» ниже. NCP обеспечивал соединения и управление потоком данных между процессами, работающими на различных хост-компьютерах ARPANET. Прикладные сервисы, такие как удалённый вход и передача файлов, создавались поверх NCP, используя его для установления соединений с другими хост-компьютерами. В ARPANET протоколы физического, канального и сетевого уровней, использовавшиеся в сети, были реализованы на отдельных процессорах интерфейсных сообщений (IMP). Хост обычно подключался к IMP, используя другой тип интерфейса с различными спецификациями физического, канального и сетевого уровней. Функциональные возможности IMP были определены протоколом «Хост/IMP» в отчёте BBN 1822. Поскольку нижние уровни протокола предоставлялись интерфейсом хоста IMP, NCP по сути представлял собой транспортный уровень, состоящий из протокола «Хост-к-хосту ARPANET» (AHHP) и протокола начального соединения (ICP). AHHP определял процедуры для передачи однонаправленного потока данных с управлением потоком между двумя хостами. ICP определял процедуру установления двунаправленной пары таких потоков между парой хост-процессов. Прикладные протоколы (например, FTP) обращались к сетевым сервисам через интерфейс верхнего уровня NCP – предшественник интерфейса сокетов Berkeley. Стивен Д. Крокер, в то время аспирант UCLA, сформировал и возглавил Рабочую группу по сетям (NWG) и непосредственно руководил разработкой NCP. Другие участники NWG разработали прикладные протоколы, такие как TELNET, FTP и, в 1980-х годах, SMTP, среди прочих.

Программа управления сетью

Программа управления сетью (обычно обозначаемая как NCP) — это название программного обеспечения, установленного на хостах, которое реализовывало сетевой протокол управления ARPANET.