Network Control Protocol (ARPANET)

From HandWiki
Revision as of 14:13, 6 February 2024 by JTerm (talk | contribs) (update)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Obsolete ARPANET network protocol


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 for each application down 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 which 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]

History

NCP was first specified and described in the ARPANETs earliest RFC documents in 1969 after a series of meetings on the topic with engineers from UCLA, University of Utah, and SRI. It was finalized in RFC 33 in early 1970,[7] and deployed to all nodes on the ARPANET in December 1970.[8][9] It remained in use until the end of 1982; see Flag Day below.

NCP provided connections and flow control between processes running on different ARPANET host computers. Application services, such as remote login and the file transfer, would be built on top of NCP, using it to handle connections to other host computers.

On the ARPANET, the protocols in the physical layer, the data link layer, and the network layer used within the network were implemented on separate Interface Message Processors (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.

Since lower protocol layers were provided by the IMP-host interface, NCP essentially provided a transport layer 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 the NCP, a forerunner to the Berkeley sockets interface.

Stephen D. Crocker, then a graduate student at UCLA, formed and led the Network Working Group (NWG) and specifically led the development of NCP. Other participants in the NWG developed application level protocols such as TELNET, FTP, and, in the 1980s, SMTP, among others.

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.[10][5]

It was almost universally referred to by the acronym, NCP. This was later taken over to refer to the protocol suite itself.[3][4]

NCP's were written for many operating systems, including Multics, TENEX, UNIX and TOPS-10, and many of those NCP's survive (although of course they are now only used by vintage computer enthusiasts).

Transition to TCP/IP

On January 1, 1983, in what is known as a flag day, NCP was officially rendered obsolete when the ARPANET changed its core networking protocols from NCP to the more flexible and powerful TCP/IP protocol suite, marking the start of the modern Internet.[11][12][13][14]

See also

References

  1. Stevens, W. Richard (1994). TCP/IP Illustrated Volume I. 1. Reading, Massachusetts, USA: Addison-Wesley Publishing Company. ISBN 0-201-63346-9. 
  2. Crocker, Stephen (27 June 2022). "Separation of TCP and IP". https://elists.isoc.org/pipermail/internet-history/2022-June/008154.html. 
  3. 3.0 3.1 "Internetting or Beyond NCP". http://www.postel.org/ien/pdf/ien011.pdf. 
  4. 4.0 4.1 Proposed Revisions to the TCP, IEN 18, https://www.rfc-editor.org/ien/ien18.pdf, retrieved 4 August 2022 
  5. 5.0 5.1 Reynolds, J.; Postel, J. (1987), The Request For Comments Reference Guide, doi:10.17487/RFC1000, RFC 1000, https://tools.ietf.org/html/rfc1000, "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.)" 
  6. Mail Transfer Protocol, doi:10.17487/RFC0772, RFC 772, https://www.rfc-editor.org/rfc/rfc772.txt, retrieved 5 August 2022 
  7. Crocker, S.; Carr, S.; Cerf, V. (12 February 1970), New HOST-HOST Protocol, p. 4, doi:10.17487/RFC0033, RFC 33, https://tools.ietf.org/html/rfc33#page-4, "Processes within a HOST communicate with the network through a Network Control Program (NCP)."  - Earliest RFC reference to NCP acronym. Explicit definition of NCP as Network Control Program.
  8. Crocker, Stephen. "NCP -- Network Control Program". https://www.livinginternet.com/i/ii_ncp.htm. 
  9. (in en) UGC -NET/JRF/SET PTP & Guide Teaching and Research Aptitude. High Definition Books. p. 319. https://books.google.com/books?id=dRRDDwAAQBAJ&q=NCP. 
  10. New HOST-HOST Protocol, doi:10.17487/RFC0033, RFC 33, https://tools.ietf.org/html/rfc33, retrieved 2022-08-04 
  11. Postel, J. (November 1981), NCP/TCP transition plan, IETF, p. 2, doi:10.17487/RFC0801, RFC 801, https://tools.ietf.org/html/rfc801, retrieved February 1, 2011 
  12. Danesi, Marcel (2013). Encyclopedia of Media and Communication. University of Toronto Press. ISBN 9781442695535. https://books.google.com/books?id=GZOBAAAAQBAJ&pg=PT549. 
  13. "Marking the birth of the modern-day Internet". Google Official Blog. 1 January 2013. http://googleblog.blogspot.co.uk/2013/01/marking-birth-of-modern-day-internet.html. Retrieved 19 September 2015. 
  14. "Internet celebrates 40th birthday: but what date should we be marking?". The Telegraph. 2 September 2009. https://www.telegraph.co.uk/technology/6125925/Internet-celebrates-40th-birthday-but-what-date-should-we-be-marking.html. Retrieved 19 September 2015. 

Further reading

  • BBN (May 1978). BBN Report 1822: Interface Message Processor -- Specifications for the Interconnection of a Host and an IMP. Bolt, Beranek, and Newman, Inc.. 
  • Postel, Jon; Feinler, E. (1978). ARPANET Protocol Handbook. Menlo Park, CA: Network Information Center, SRI International. 
    • A. McKenzie; J. Postel (October 1977). NIC #8246: Host-to-Host Protocol for the ARPANET. Network Information Center.  (now offline, but a later version, which is almost identical to the original version, can be found here)
    • J. Postel (June 1971). NIC #7101: Official Initial Connection Protocol. UCLA-NMC.  (this does not seem to be online, but an early version, which is almost identical to the final version, can be found here)
  • Crocker, S. (16 March 1970), Protocol Notes, Network Working Group (now IETF), doi:10.17487/RFC0036, RFC 36, https://tools.ietf.org/html/rfc36 
  • Stevens, W. Richard. TCP/IP Illustrated Volume I. Reading, Massachusetts, USA: Addison-Wesley Publishing Company, 1994. ISBN:0-201-63346-9(v.1). Page 15.

External links

fr:Network Control Program