ネットワークコントロールプログラム (NCP) とは
ネットワークコントロールプログラム(NCP)は、初期のコンピュータネットワークである
ARPANETにおいて、ホストコンピュータ上で動作するプロトコルスタックの共通要素として機能しました。NCPは、遠隔にあるホストコンピュータ間でのプロセス間接続とフロー制御を担い、今日の
インターネットにおけるTCP/IPのプロトコルスタックと同様の役割を果たしていました。
NCPの役割
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を通してネットワークサービスにアクセスしていました。
TCP/IPへの移行とNCPの終焉
1983年1月1日、
ARPANETはネットワークプロトコルをNCPから、より柔軟で強力なTCP/IPへと切り替えました。この移行によって、今日の
インターネットの基盤が確立されました。NCPは、TCP/IPの登場によってその役割を終えましたが、初期の
インターネットの発展に大きく貢献した重要なプロトコルとして記憶されています。
NCPの意義
NCPは、初期のコンピュータネットワークにおいて、アプリケーションがネットワークを意識せずに通信を行うための抽象化を提供しました。NCPの設計思想は、その後のネットワーク技術に大きな影響を与え、特にTCP/IPへの移行は、現代の
インターネットの発展に不可欠でした。NCPは、現代の
インターネットの基盤を築いた重要な要素であり、その歴史的意義は計り知れません。
このように、NCPは
ARPANETにおける重要な役割を果たし、その後の
インターネット技術の発展に大きく貢献しました。現在ではTCP/IPが主流となっていますが、NCPは初期のネットワークアーキテクチャを理解する上で欠かせない存在です。