How do computer networks operate and why has the Internet been successful? A large part of the answer to both of these questions is what is known as the Transmission Control Protocol/Internet Protocol suite of computer communication protocols , more commonly referred to as TCP/IP. As late as the mid-1980s, there were many "islands" of computer networks that could not communicate with each other. These networks were limited in size and speed, and the technologies on which they were based used closed proprietary standards, meaning that they could not communicate with each other. TCP/IP has changed everything; what exists now is a fast, worldwide, and single network based on open standards: the Internet.
TCP/IP is the defining interoperability protocol for connecting computers to one another upon which the Internet is built. The creators of the TCP/IP protocol suite recognized that the task of communications is too complex and too diverse to be accomplished by a single layer. Thus, the functionality required for network interoperability is divided into separate layers that depend on each other.
The Transmission Control Protocol (TCP) and the Internet Protocol (IP) are the two primary protocols of this layered suite, at the transport and network layers respectively. The TCP protocol is implemented in end computer systems at the edge of the network while the IP protocol is implemented in intermediate network devices within the core of the network. Together, TCP/IP provides an end-to-end architecture for the Internet based on the principle that "intelligence" should be placed in end computer system applications, while the network should remain as simple as possible given the broad range of possible applications that the network might support. Many have credited the TCP/IP end-to-end architecture with subsequent Internet innovations, including the World Wide Web, because new applications can be easily implemented in an end computer system without the need to change the network infrastructure.
A communications protocol is an agreement that specifies a common set of language (semantics), grammar (syntax), and timing (synchronization) for the exchange of information between computers. TCP is a communications protocol, not a piece of software; there are many different software implementations of the TCP protocol but only one TCP protocol itself, which has endured despite many challenges. TCP is a connection-oriented protocol that specifies the format of the data and reciprocal acknowledgments that any two computers must exchange to achieve a reliable transfer. TCP identifies a connection by a pair of endpoints. Each endpoint consists of an identifier in the format "IP number, TCP port number." Thus, a given TCP port number can be shared by multiple connections. TCP assumes little about its underlying communication system, so it can be used with a large variety of packet-switching systems including the Internet Protocol.
Within the Internet, the basic unit of data is an IP packet and the basic mechanism of transfer is packet-switching. Routing refers to the algorithm for choosing a path over which to send packets. A computer with multiple network connections (a router) examines the IP address field within the packet header and matches it to a table (IP routing table). Conceptually, three possible things could happen: (1) a match is made in the routing table and the packet is sent out to the specified router interface where it may be delayed behind other packets; (2) no match is made in the routing table so the packet is sent out via the default router interface where it may be delayed behind other packets; or (3) the router is so loaded down that packets have nowhere to go (match or no match) and thus the packet is lost (bit bucket).
IP routing is referred to as an "unreliable" (packets may be lost, duplicated, delayed, or delivered out-of-sequence), "best-effort" (not guaranteed due to varying levels of Internet traffic), or "connectionless" (each packet is handled independently) packet-delivery system. However, TCP matched with IP makes the Internet reliable. All computers that connect to the Internet run IP software and most of them also run TCP software. TCP handles the problems IP does not handle without duplicating the work IP does well. In fact, it is because TCP and IP work together so well that the entire set of protocols that the Internet uses is known as the TCP/IP protocol suite. It is not a coincidence that they work together; TCP and IP were designed simultaneously to work with and complement each other in 1974 by computer scientists Vinton Cerf and Robert Kahn. The original TCP/IP protocol suite was based on successful software implementations in the ARPANET, Packet Radio, and Packet Satellite networks so there was never any question of it not working as intended.
TCP/IP as a Standard
Open system standards like TCP/IP provide the agreed upon rules for communication between computers, independent of any vendor's proprietary product. TCP/IP was adopted as a U.S. Department of Defense (DoD) standard in 1980. The interoperability of the TCP/IP standard has allowed applications to be built at higher layers of abstraction without being burdened by the details of individual, lower-layer implementations.
ARPA Roots of TCP/IP and the Internet
TCP/IP is the direct result of protocol research and development conducted on experimental packet-switched networks. In the 1970s the U.S. Department of Defense Advanced Research Project Agency (ARPA) funded three separate grants to implement TCP/IP, which led to three independent implementations within a short time. This is important because independent implementations are a basic requirement for an Internet standard. At the same time, ARPA funded a project to develop a portable operating system, which eventually converged with UNIX. The University of California-Berkeley released an especially popular version of this ARPA-funded UNIX (Berkeley Software Distribution, or BSD, UNIX) which also incorporated TCP/IP. Because its development was publicly funded, it was available for free. As universities found that they had TCP/IP functionality at their disposal via BSD UNIX, many began to form regional networks that eventually converged into the one large network that is now known as the Internet.
see also Babbage, Charles; Government Funding: Research; Internet; National Aeronautics and Space Administration (NASA).
William J. Yurcik
Cerf, Vinton G., and Robert E. Kahn. "A Protocol for Packet Network Interconnection." IEEE Transactions on Communication Technology COM-22 (1974): 627–641.
Comer, Douglas E. The Internet Book: Everything You Need to Know About Computer Networking and How the Internet Works, 3rd ed. Upper Saddle River, NJ: Prentice Hall, 2000.
The Internet Protocol, IP, is the lower of the two protocols. It provides a connectionless datagram service, and a managed address structure for data transmission. An IP address can take one of four forms, class A to class D, which always occupy a total of 32 bits (see table): the first bits define the class of the address; the next group of bits defines the identity of the subnetwork attached to the Internet; the final group defines the address of the host system within the subnetwork. Class A addresses are for large subnetworks with many hosts, and classes B and C are for progressively smaller networks with progressively fewer hosts; class D addresses are used for multicasting. IP allows a long datagram to be fragmented into numbered packets, which can then be transmitted and reassembled in their correct sequence at the destination system. It is intended to be used in conjunction with the Transmission Control Protocol, TCP.
TCP provides error-free delivery of arbitrarily long messages, known as segments, with the data being released to the host system in the same order as the original transmission. It achieves this by a “sliding window” mechanism. As data are transmitted, they are accompanied by a checksum; at the receiving end the checksum is verified and an acknowledgment is returned to the transmitter, which indicates the position of the last data to be successfully received. The transmitter will not send data beyond a certain point, determined by the size of the window, i.e. the gap between the last data to be sent and the last data for which an acknowledgment has been received. If the checksum fails at any point, the transmitter will retransmit data from the point immediately following the latest acknowledgment of correct receipt.