The ARPANET Network Control Program (NCP) provided the middle
layers of the protocol stack running on an ARPANET host
computer. (Sometimes the abbreviation NCP is mistakenly expanded
to Network Control Protocol, but this term is not found in the
contemporary documentation.) NCP provided connections and flow
control between processes running on different ARPANET host
computers. Application services, like e-mail or file transfer,
were built on top of NCP, using it to handle connections to
other host computers. On the ARPANET, the physical layer, the
data link layer, and the network layer protocols used internally
to the network were implemented on separate Interface Message
Processors, called IMPs. The host usually connected to the IMP
using another kind of interface, with different physical, data
link and network layer specifications. The IMP's capabilities
were specified by the Host/IMP Protocol in BBN Report 1822.
Since lower protocol layers were provided by the IMP-host
interface, NCP essentially provided a