The Network Control Protocol (NCP) was a communication protocol for a computer network in the 1970s and early 1980s. It provided the transport layer of the protocol stack running on host computers of the ARPANET, the predecessor to the modern Internet.
NCP preceded the Transmission Control Protocol (TCP) as a transport layer protocol used during the early ARPANET. NCP was a simplex protocol that utilized two port numbers, establishing two connections for two-way communications. An odd and an even port were reserved for each application layer application or protocol. The standardization of TCP and UDP reduced the need for the use of two simplex ports per application to one duplex port.[1]: 15
There is some confusion over the name, even among the engineers who worked with the ARPANET.[2] Originally, there was no need for a name for the protocol stack as a whole, so none existed. When the development of TCP started, a name was required for its predecessor, and the pre-existing acronym 'NCP' (which originally referred to Network Control Program, the software that implemented this stack) was organically adopted for that use.[3][4] Eventually, it was realized that the original expansion of that acronym was inappropriate for its new meaning, so a new quasi-backronym was created, 'Network Control Protocol' — again, organically, not via a formal decision.[5][6]
Over the next few months we designed a symmetric host-host protocol, and we defined an abstract implementation of the protocol known as the Network Control Program. ("NCP" later came to be used as the name for the protocol, but it originally meant the program within the operating system that managed connections. The protocol itself was known blandly only as the host-host protocol.)