The Network Control Protocol (NCP) was a
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
for a
computer network
A computer network is a collection of communicating computers and other devices, such as printers and smart phones. In order to communicate, the computers and devices must be connected by wired media like copper cables, optical fibers, or b ...
in the 1970s and early 1980s. It provided the
transport layer
In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end c ...
of the
protocol stack
The protocol stack or network stack is an implementation of a computer networking protocol suite or protocol family. Some of these terms are used interchangeably but strictly speaking, the ''suite'' is the definition of the communication protoc ...
running on host computers of the
ARPANET
The Advanced Research Projects Agency Network (ARPANET) was the first wide-area packet-switched network with distributed control and one of the first computer networks to implement the TCP/IP protocol suite. Both technologies became the tec ...
, the predecessor to the modern
Internet
The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
.
NCP preceded the
Transmission Control Protocol
The Transmission Control Protocol (TCP) is one of the main communications protocol, protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, th ...
(TCP) as a transport layer protocol used during the early ARPANET. NCP was a
simplex protocol that utilized two
port number
In computer networking, a port is a communication endpoint. At the software level within an operating system, a port is a logical construct that identifies a specific process or a type of network service. A port is uniquely identified by a numbe ...
s, establishing two connections for two-way communications. An odd and an even port were reserved for each
application layer
An application layer is an abstraction layer that specifies the shared communication protocols and interface methods used by hosts in a communications network. An ''application layer'' abstraction is specified in both the Internet Protocol Su ...
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.
There is some confusion over the name, even among the engineers who worked with the ARPANET. 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.
Eventually, it was realized that the original expansion of that acronym was inappropriate for its new meaning, so a new quasi-
backronym
A backronym is an acronym formed from an already existing word by expanding its letters into the words of a phrase. Backronyms may be invented with either serious or humorous intent, or they may be a type of false etymology or folk etymology. The ...
was created, 'Network Control Protocol' — again, organically, not via a formal decision.
History
On the ARPANET, the protocols in the
physical layer
In the seven-layer OSI model of computer networking, the physical layer or layer 1 is the first and lowest layer: the layer most closely associated with the physical connection between devices. The physical layer provides an electrical, mechani ...
, the
data link layer
The data link layer, or layer 2, is the second layer of the seven-layer OSI model of computer networking. This layer is the protocol layer that transfers data between nodes on a network segment across the physical layer. The data link layer p ...
, and the
network layer
In the seven-layer OSI model of computer networking, the network layer is layer 3. The network layer is responsible for packet forwarding including routing through intermediate Router (computing), routers.
Functions
The network layer provides t ...
used within the network were implemented on separate
Interface Message Processor
The Interface Message Processor (IMP) was the packet switching node used to interconnect participant networks to the ARPANET from the late 1960s to 1989. It was the first generation of gateways, which are known today as routers. An IMP was a r ...
s (IMPs). The host usually connected to an 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
The Interface Message Processor (IMP) was the packet switching node used to interconnect participant networks to the ARPANET from the late 1960s to 1989. It was the first generation of gateways, which are known today as routers. An IMP was a r ...
, which was written by
Bob Kahn
Robert Elliot Kahn (born December 23, 1938) is an American electrical engineer who, along with Vint Cerf, first proposed the Transmission Control Protocol (TCP) and the Internet Protocol (IP), the fundamental communication protocols at the hea ...
.
Under the auspices of
Leonard Kleinrock
Leonard Kleinrock (born June 13, 1934) is an American computer scientist and Internet pioneer. He is Distinguished Professor Emeritus of Computer Science at UCLA's Henry Samueli School of Engineering and Applied Science. Kleinrock made several ...
at
University of California Los Angeles (UCLA),
Stephen D. Crocker, then a graduate student in computer science at UCLA, formed and led the Network Working Group (NWG). Working with
Jon Postel and others, they designed a host-to-host protocol, known as the Network Control Program, which was developed in the ARPANET's earliest
RFC documents in 1969 after a series of meetings on the topic with engineers from
UCLA
The University of California, Los Angeles (UCLA) is a public land-grant research university in Los Angeles, California, United States. Its academic roots were established in 1881 as a normal school then known as the southern branch of the C ...
,
University of Utah
The University of Utah (the U, U of U, or simply Utah) is a public university, public research university in Salt Lake City, Utah, United States. It was established in 1850 as the University of Deseret (Book of Mormon), Deseret by the General A ...
, and
SRI. Crocker said "While much of the development proceeded according to a grand plan, the design of the protocols and the creation of the RFCs was largely accidental." After approval by Barry Wessler at ARPA, who had ordered certain more exotic elements to be dropped, it was finalized in in early 1970, and deployed to all nodes on the ARPANET in December 1970.
NCP codified the ARPANET network interface, making it easier to establish, and enabling more sites to join the network. It provided connections and flow control between processes running on different ARPANET host computers. Application services, such as
remote login and
file transfer
File transfer is the transmission of a computer file through a communication channel from one computer system to another. Typically, file transfer is mediated by a communications protocol. In the history of computing, numerous file transfer protoc ...
, would be built on top of NCP, using it to handle connections to other host computers. Other participants in the NWG developed these application-level protocols,
TELNET
Telnet (sometimes stylized TELNET) is a client-server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main ...
and
FTP
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
.
Since lower protocol layers were provided by the IMP-host interface, NCP essentially provided a
transport layer
In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end c ...
consisting of the ''ARPANET Host-to-Host Protocol'' (AHHP) and the ''Initial Connection Protocol'' (ICP). AHHP defined procedures to transmit a unidirectional, flow-controlled data stream between two hosts. The ICP defined the procedure for establishing a bidirectional pair of such streams between a pair of host processes. Application protocols (e.g., FTP) accessed network services through an interface to the top layer of NCP — a forerunner to the
Berkeley sockets
A Berkeley ( BSD) socket is an application programming interface (API) for Internet domain sockets and Unix domain sockets, used for inter-process communication (IPC). It is commonly implemented as a library of linkable modules. It originated wi ...
interface.
Network Control Program
Network Control Program (usually given as NCP) was the name for the software on
hosts which implemented the Network Control Protocol of the ARPANET.
It was almost universally referred to by the acronym, NCP. This was later taken over to refer to the
protocol suite itself.
NCPs were written for many
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s, including
Multics
Multics ("MULTiplexed Information and Computing Service") is an influential early time-sharing operating system based on the concept of a single-level memory.Dennis M. Ritchie, "The Evolution of the Unix Time-sharing System", Communications of t ...
,
TENEX,
UNIX
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and
TOPS-10
TOPS-10 System (Timesharing / Total Operating System-10) is a discontinued operating system from Digital Equipment Corporation (DEC) for the PDP-10 (or DECsystem-10) mainframe computer family. Launched in 1967, TOPS-10 evolved from the earlier "Mo ...
, and some of those NCPs survive (although of course they are now used by only
vintage computer enthusiasts).
Transition to TCP/IP
Implementation of TCP/IP began in the late 1970s.
Widespread deployment across the Arpanet began in earnest in 1981, and on several days toward the end of 1982 the backbone routers disabled NCP traffic for most hosts to test the network's readiness for the transition.
On January 1, 1983, in what is known as a ''
flag day
A flag day is a flag-related holiday, a day designated for flying a certain flag (such as a national flag) or a day set aside to celebrate a historical event such as a nation's adoption of its flag.
Flag days are usually codified in national s ...
'', NCP was officially rendered obsolete when the ARPANET changed its core networking protocols from NCP to the more flexible and powerful
TCP/IP
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
protocol suite, marking the start of the modern
Internet
The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
.
Despite the "mandatory" flag-day transition, a number of sites continued use of NCP into mid-1983,
but these were special cases that required permission from the backbone operators, and all hosts were eventually switched to TCP/IP or removed.
See also
*
Protocol Wars
Notes
References
Sources
*
Further reading
*
*
** (now offline, but a later version, which is almost identical to the original version, can be foun
here
** (this does not seem to be online, but an early version, which is almost identical to the final version, can be foun
here
*
*
{{refend
External links
Network Control Program- NCP details at the Computer History Wiki
SRI-NOSC- complete V6 UNIX NCP source
*
Illinois NCP Documentation
Network protocols
ARPANET
fr:Network Control Program