Network Control Program

Network Control Program（ネットワーク コントロール プログラム、NCP）とは、ARPANETホストコンピュータ上で動作するプロトコルスタックの共通要素を提供するものである。NCPは遠隔に存在するホストコンピュータ間でプロセス間接続とフロー制御を行う。電子メールやファイル転送などのアプリケーションサービスは他のホストコンピュータへの接続を制御するためにNCPのインターフェイスを使用する。
ARPANETの物理層・データリンク層・ネットワーク層のプロトコルはホストコンピュータとは別の Interface Message Processor(IMP) に実装されていた。ホストコンピュータの持つプロトコルスタックの下に IMP の高信頼パケット転送システムが接続されている。IMPの仕様は BBN Report 1822 の Host/IMP Protocol で示されている。
NCP はホストコンピュータ上のプロトコルスタック常駐部の共通層である。低レベルプロトコルはIMPで提供されるので、NCP は基本的にトランスポート層に相当する "ARPANET Host-to-Host Protocol" (AHHP) と "Initial Connection Protocol" (ICP) から構成されている。AHHP はホスト間の単方向のフロー制御されたデータストリームに関するプロトコルである。ICP はそのようなデータストリームを2本接続して双方向通信を確立するプロトコルである。アプリケーション層プロトコル（FTP、SMTPなど）は NCP を通してネットワークサービスにアクセスする。これは後のソケットに相当するものである。
1983年1月1日、ARPANET はネットワークプロトコルを NCP からもっと柔軟で強力な TCP/IP に切り替えた。すなわち、この日に今日インターネットと呼ばれているネットワークが起動したのである。