Network Control Protocol (ARPANET)#Network Control Program

{{Short description|Obsolete ARPANET network protocol}}

{{About|the ARPANET Network Control Protocol and Program|Novell NetWare protocol|NetWare Core 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 per application to one duplex port.{{cite book | last = Stevens | first = W. Richard | author-link = W. Richard Stevens | title = TCP/IP Illustrated Volume I | location = Reading, Massachusetts, USA | publisher= Addison-Wesley Publishing Company | year = 1994 | isbn = 0-201-63346-9 | volume = 1 }}{{Rp|15}}

There is some confusion over the name, even among the engineers who worked with the ARPANET.{{cite web |last1=Crocker |first1=Stephen |title=Separation of TCP and IP |url=https://elists.isoc.org/pipermail/internet-history/2022-June/008154.html |website=elists.isoc.org |date=27 June 2022 |access-date=5 August 2022}} 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.{{Cite web|url=http://www.postel.org/ien/pdf/ien011.pdf|title=Internetting or Beyond NCP|access-date=4 August 2022}}{{Cite IETF|ien=18|title=Proposed Revisions to the TCP|url=https://www.rfc-editor.org/ien/ien18.pdf|access-date=4 August 2022}} 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.{{Ref RFC|1000|quote=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.)}}{{Ref RFC|772}}

History

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, which was written by Bob Kahn.{{harvnb|Hafner|Lyon|1996|pp=[https://archive.org/details/wherewizardsstay00haf_vgj/page/116/mode/2up?q=kahn 116, 149]}}{{cite report |url=http://www.bitsavers.org/pdf/bbn/imp/BBN1822_Jan1976.pdf |title=Interface Message Processor: Specifications for the Interconnection of a Host and an IMP |publisher=Bolt Beranek and Newman (BBN) |id=Report No. 1822}}

Under the auspices of Leonard Kleinrock at University of California Los Angeles (UCLA),{{citation |title=Meeting of the ARPA Computer Network Working Group at UCLA |date=November 16, 1967 |url=https://archive.org/details/MeetingOfTheArpaComputerNetworkWorkingGroupAtUcla}} 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, University of Utah, and SRI.{{Ref RFC|6529}}{{Refn|Crocker said "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.'|group=nb}} 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."{{Refn|RFCs began as informal technical notes, "requests for comments", of the Networking Working Group (NWG).|group=nb}} After approval by Barry Wessler at ARPA,{{Ref RFC|53}} who had ordered certain more exotic elements to be dropped,{{cite tech report|last1=Heart|first1=F.|last2=McKenzie|first2=A.|last3=McQuillian|first3=J.|last4=Walden|first4=D.|url=https://web.archive.org/web/20230527095942/https://walden-family.com/bbn/arpanet-completion-report.pdf|title=Arpanet Completion Report|publisher=Bolt, Beranek and Newman|location=Burlington, MA|date=January 4, 1978|page=III-63}} it was finalized in {{IETF RFC|33|link=no}} in early 1970,{{Ref RFC|33|p=4|quote=Processes within a HOST communicate with the network through a Network Control Program (NCP).{{Refn|Earliest RFC reference to NCP acronym. Explicit definition of NCP as Network Control Program.|group=nb}}}} and deployed to all nodes on the ARPANET in December 1970.{{cite web |last1=Crocker |first1=Stephen |author1-link=Steve Crocker|title=NCP -- Network Control Program |url=https://www.livinginternet.com/i/ii_ncp.htm |website=Living Internet.com |access-date=22 February 2022}}{{Cite book |url=https://books.google.com/books?id=dRRDDwAAQBAJ&q=NCP |title=UGC -NET/JRF/SET PTP & Guide Teaching and Research Aptitude |publisher=High Definition Books |page=319 |language=en}}

NCP codified the ARPANET network interface, making it easier to establish, and enabling more sites to join the network.{{Cite web |title=NCP, Network Control Program |url=https://www.livinginternet.com/i/ii_ncp.htm |access-date=2022-12-26 |website=LivingInternet |language=en-US}}{{Cite book |url=https://books.google.com/books?id=dRRDDwAAQBAJ&q=NCP |title=UGC -NET/JRF/SET PTP & Guide Teaching and Research Aptitude |publisher=High Definition Books |page=319 |language=en}} It provided connections and flow control between processes running on different ARPANET host computers. Application services, such as remote login and file transfer, 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 and FTP.{{Refn|The NPL team also envisaged the need for levels of data transmission in 1968. Both were early examples of the protocol layering concept incorporated in the OSI model.|group=nb}}{{cite journal |last=Hauben |first=Ronda |year=2004 |title=The Internet: On its International Origins and Collaborative Vision |url=http://www.ais.org/~jrh/acn/ACn12-2.a03.txt |journal=Amateur Computerist |volume=12 |issue=2 |access-date=May 29, 2009}}{{Ref RFC|1000}}

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 NCP — a forerunner to the Berkeley sockets 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.{{Cite IETF|rfc=33|title=New HOST-HOST Protocol|access-date=2022-08-04}}

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 systems, including Multics, TENEX, UNIX and TOPS-10, 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.{{cite web |last=Snively |first=Jack |title=DoD Network Newsletter |date=1982-11-01 |url=https://www.rfc-editor.org/rfc/museum/ddn-news/ddn-news.n17.1 |access-date=2025-01-30}}

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.{{cite IETF

| title = NCP/TCP transition plan

| rfc = 801

| sectionname = The General Plan

| page = 2

| last1 = Postel

| first1 = J.

| authorlink1 = Jon Postel

| date=November 1981 | publisher = IETF

| accessdate = February 1, 2011

}}{{cite book|last1=Danesi|first1=Marcel|title=Encyclopedia of Media and Communication|date=2013|publisher=University of Toronto Press|isbn=9781442695535|url=https://books.google.com/books?id=GZOBAAAAQBAJ&pg=PT549}}{{cite web|title=Marking the birth of the modern-day Internet|url=http://googleblog.blogspot.co.uk/2013/01/marking-birth-of-modern-day-internet.html|publisher=Google Official Blog|accessdate=19 September 2015|date=1 January 2013}}{{cite news|title=Internet celebrates 40th birthday: but what date should we be marking?|url=https://www.telegraph.co.uk/technology/6125925/Internet-celebrates-40th-birthday-but-what-date-should-we-be-marking.html|accessdate=19 September 2015|work=The Telegraph|date=2 September 2009}}

Despite the "mandatory" flag-day transition, a number of sites continued use of NCP into mid-1983,{{cite web |title=DoD Network Newsletter |date=1983-06-17 |url=https://www.rfc-editor.org/rfc/museum/ddn-news/ddn-news.n27.1 |access-date=2025-01-30}} 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

Notes

{{Reflist|group=nb}}

References

{{Reflist}}

Sources

  • {{cite book |last1=Hafner |first1=Katie |last2=Lyon |first2=Matthew |title=Where Wizards Stay Up Late: The Origins of the Internet |url=https://archive.org/details/wherewizardsstay00haf_vgj |url-access=registration |publisher=Simon and Schuster |year=1996 |isbn= 978-0-7434-6837-4}}

Further reading

{{refbegin}}

  • {{cite document | author=BBN | title=BBN Report 1822: Interface Message Processor -- Specifications for the Interconnection of a Host and an IMP | publisher=Bolt, Beranek, and Newman, Inc. |date=May 1978}}
  • {{cite book | title=ARPANET Protocol Handbook | first1=Jon | last1=Postel |author1-link=Jon Postel|author2=Feinler, E. | year=1978 | publisher=Network Information Center, SRI International | location=Menlo Park, CA }}
  • {{cite document | author=A. McKenzie |author2=Jon Postel| author2-link=Jon Postel|title=NIC #8246: Host-to-Host Protocol for the ARPANET | publisher=Network Information Center|date=October 1977 }} (now offline, but a later version, which is almost identical to the original version, can be found [https://drive.google.com/file/d/1vBXEHEClcD9XLqueVyVf831LOlqn0hrJ/view?usp=sharing here])
  • {{cite document | author= J. Postel |author-link=Jon Postel| title=NIC #7101: Official Initial Connection Protocol | publisher=UCLA-NMC |date=June 1971 }} (this does not seem to be online, but an early version, which is almost identical to the final version, can be found [http://www.rfc-editor.org/rfc/rfc165.pdf here])
  • {{Ref RFC|36|ref=no}}
  • {{cite book |author-link=W. Richard Stevens |last=Stevens |first=W. Richard |title=TCP/IP Illustrated Volume I |location=Reading, Massachusetts, USA |publisher=Addison-Wesley Publishing Company |date=1994 |isbn=978-0-201-63346-7 |page=15}}

{{refend}}