TCP/IP (an acronym for Transmission Control Protocol/Internet Protocol) is a software-implemented protocol for connecting different networks to each other. The TCP component of the suite controls the disassembly and reassembly of data packets sent from a computer server, where the data resides. The IP component specifies the formatting and addressing scheme for transmitting data between sender and recipient computers. The software that implements the TCP/IP protocols is typically included as part of the operating system.
|“||we tend to speak of the Internet as if it were a thing, but in reality the Internet is entirely virtual; it consists of nothing but a software protocol suite known as TCP/IP. The software enables any computer in the world to exchange information with any other computer, regardless of the particular physical networks to which they are attached or the hardware they use. It does this largely by giving computers addresses and names, and providing instructions about how to use them.||”|
The TCP/IP standard is an "open" standard, meaning it is not a proprietary product of any single company. The predominant operating system is UNIX, but the Internet standard has been adopted for use on the most commonly used systems, such as LINUX, Windows/Vista, and Apple OS X.
In a TCP/IP network, each server or hardware device is assigned an IP address — a unique numeric location based on the IP addressing scheme. Every computer or device with an IP address is considered a connection point, or node, of the network. Each node can run network services such as the World Wide Web, electronic mail, and file transfer, storage, and retrieval. Each network service uses specific protocols and is identified by a port number that enables other nodes to locate and connect to the service.
The TCP/IP protocol suite has become the de facto communications standard of the Internet because many standard services are available on all systems that support TCP/IP. These services make the Internet useful by enabling the transfer of email, news, and Web pages.
Description of a TCP/IP network
TCP/IP networking can best be explained and understood in terms of a model with four layers, where each layer is responsible for performing a particular task. The layered model describes the flow of data between the physical connection to the network and the end-user application. In the four-layer model, information always moves from one layer to the next. For example, when an application sends data to another application, the data go through the layers in this order:
At the receiving end, the data go up from
Each layer has its own set of protocols for handling and formatting the data. The way in which data are sent on a network is similar to the way in which letters are sent through the postal service. For example, a typical protocol involved in sending a letter would be a preferred sequence of data for a task such as addressing an envelope (first the name; then the street address; and then city, state, and zip or other postal code).
Similarly, a protocol in the network layer of TCP/IP might be to prepare a packet for transmission from one network to another. There would be some information in that packet identifying the network where the packet originated as well as the destination network. Software that implements the TCP/IP protocols is typically included as part of the operating system.
Each of the four layers performs a specialized function:
- Application layer: Applications such as e-mail readers and Web browsers interface with the application layer to transmit data over TCP/IP networks. There are application-level protocols such as Simple Mail Transfer Protocol (SMTP) and Post Office Protocol (POP) for e-mail; HyperText Transfer Protocol (HTTP) for the Web; File Transfer Protocol (FTP) for file transfers; and Real-Time Transport Protocol/Real-Time Control Protocol (RTP/RTCP) for delivery of audio and video streams. Application-level protocols also have a port number that can be thought of as an identifier for a specific application. For example, port 80 is associated with HTTP or a Web server.
- Transport layer: This layer breaks large messages into data packets for transmission and reassembles them at the destination. The two most important protocols in this layer are Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). TCP guarantees delivery of data; UDP just sends the data without ensuring that it actually reaches its destination.
- Network layer: This layer is responsible for getting data packets from one network to another. If the networks are far apart, the data packets are routed from one network to the next until they reach their destination. The primary protocol in this layer is the Internet Protocol (IP).
- Physical layer: This layer consists of the physical networking hardware (such as an Ethernet card or Token Ring card) that carries the data packets in a network.
The benefit of the layered model is that each layer takes care of only its specific task, leaving the rest to the other layers. The layers can mix and match — TCP/IP networks can work over any type of physical network medium, from Ethernet to radio waves (in a wireless network). In addition, each layer can be implemented in different modules. For example, typically the transport and network layers already exist as part of the operating system, and any application can make use of these layers.
TCP/IP networks such as the Internet comprise many networks as well as many hosts on each network. Each host in a TCP/IP network is identified by its IP address. Because TCP/IP deals with internetworking — interconnecting many networks — the IP address is a network address that identifies the network on which the host is located and a host address that identifies the specific computer on that network.
- Vinton G. Cerf & Robert E. Kahn, "A Protocol for Packet Network Intercommunication," 22 IEEE Transactions on Comm. 637 (1974) (full-text).
- Milton L. Mueller, Ruling the Root: Internet Governance and the Taming of Cyberspace 6 (2002).
- Because these protocols are not embedded in the Internet itself, a new application-layer protocol can operate over the Internet through as little as one server computer that transmits the data in the proper format, and one client computer that can receive and interpret the data. The utility of a service to users, however, increases as the number of servers that provide that service increases.