![]() |
|||||||||||||
|
Internet Protocol Suite |
The Internet Protocol Suite (commonly TCP/IP) is the set of communications protocols used for the Internet and other similar networks. It is named from two of the most important protocols in it: the Transmission Control Protocol (TCP) and the Internet Protocol (IP), which were the first two networking protocols defined in this standard. Today's IP networking represents a synthesis of several developments that began to evolve in the 1960s and 1970s, namely the Internet and LANs (Local Area Networks), which emerged in the mid- to late-1980s, together with the invention of the World Wide Web by Tim Berners-Lee in 1989 (and which exploded with the availability of the first popular web browser: Mosaic).
The Internet Protocol Suite, like many protocol suites, may be viewed as a set of layers. Each layer solves a set of problems involving the transmission of data, and provides a well-defined service to the upper layer protocols based on using services from some lower layers. Upper layers are logically closer to the user and deal with more abstract data, relying on lower layer protocols to translate data into forms that can eventually be physically transmitted.
The TCP/IP model consists of four layers (RFC 1122).12 From lowest to highest, these are the Link Layer, the Internet Layer, the Transport Layer, and the Application Layer.
| The TCP/IP model (RFC 1122) |
|---|
| Application Layer |
| BGP · DHCP · DNS · FTP · Gopher · GTP · HTTP · IMAP · IRC · NNTP · NTP · POP · RIP · RPC · RTCP · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · STUN · Telnet · TIME · TLS/SSL · XMPP · (more) |
| Transport Layer |
| TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) |
| Internet Layer |
| IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec · (more) |
| Link Layer |
| ARP · RARP · NDP · OSPF · Tunnels (L2TP) · Media Access Control (Ethernet, DSL, ISDN, FDDI) · Device Drivers · (more) |
Contents |
The Internet Protocol Suite resulted from work done by Defense Advanced Research Projects Agency (DARPA) in the early 1970s. After building the pioneering ARPANET in 1969, DARPA started work on a number of other data transmission technologies. In 1972, Robert E. Kahn was hired at the DARPA Information Processing Technology Office, where he worked on both satellite packet networks and ground-based radio packet networks, and recognized the value of being able to communicate across them. In the spring of 1973, Vinton Cerf, the developer of the existing ARPANET Network Control Program (NCP) protocol, joined Kahn to work on open-architecture interconnection models with the goal of designing the next protocol generation for the ARPANET.
By the summer of 1973, Kahn and Cerf had worked out a fundamental reformulation, where the differences between network protocols were hidden by using a common internetwork protocol, and, instead of the network being responsible for reliability, as in the ARPANET, the hosts became responsible. Cerf credits Hubert Zimmerman and Louis Pouzin, designer of the CYCLADES network, with important influences on this design.
With the role of the network reduced to the bare minimum, it became possible to join almost any networks together, no matter what their characteristics were, thereby solving Kahn's initial problem. One popular saying has it that TCP/IP, the eventual product of Cerf and Kahn's work, will run over "two tin cans and a string." There is even an implementation designed to run using homing pigeons, IP over Avian Carriers, documented in RFC 1149. 3 4.
A computer called a router (a name changed from gateway to avoid confusion with other types of gateways) is provided with an interface to each network, and forwards packets back and forth between them. Requirements for routers are defined in (Request for Comments 1812). 5
The idea was worked out in more detailed form by Cerf's networking research group at Stanford in the 1973–74 period, resulting in the first TCP specification (Request for Comments 675) 6 (The early networking work at Xerox PARC, which produced the PARC Universal Packet protocol suite, much of which existed around the same period of time (i.e. contemporaneous), was also a significant technical influence; people moved between the two).
DARPA then contracted with BBN Technologies, Stanford University, and the University College London to develop operational versions of the protocol on different hardware platforms. Four versions were developed: TCP v1, TCP v2, a split into TCP v3 and IP v3 in the spring of 1978, and then stability with TCP/IP v4 — the standard protocol still in use on the Internet today.
In 1975, a two-network TCP/IP communications test was performed between Stanford and University College London (UCL). In November, 1977, a three-network TCP/IP test was conducted between the U.S., UK, and Norway. Between 1978 and 1983, several other TCP/IP prototypes were developed at multiple research centers. A full switchover to TCP/IP on the ARPANET took place January 1, 1983.7
In March 1982, the US Department of Defense made TCP/IP the standard for all military computer networking.8 In 1985, the Internet Architecture Board held a three day workshop on TCP/IP for the computer industry, attended by 250 vendor representatives, helping popularize the protocol and leading to its increasing commercial use.
On November 9, 2005 Kahn and Cerf were presented with the Presidential Medal of Freedom for their contribution to American culture.
The TCP/IP suite uses encapsulation to provide abstraction of protocols and services. Such encapsulation usually is aligned with the division of the protocol suite into layers of general functionality. In general, an application (the highest level of the model) uses a set of protocols to send its data down the layers, being further encapsulated at each level.
This may be illustrated by an example network scenario, in which two Internet host computers communicate across local network boundaries constituted by their internetworking gateways (routers).
The major functional groups of protocols and methods are the Application Layer, the Transport Layer, the Internet Layer, and the Link Layer (RFC 1122). It should be noted that this model was not intended to be a rigid reference model into which new protocols have to fit in order to be accepted as a standard.
The following table provides some examples of the protocols grouped in their respective layers.
| Application | DNS, TFTP, TLS/SSL, FTP, Gopher, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet, Echo, RTP, PNRP, rlogin, ENRP |
|---|---|
| Routing protocols like BGP and RIP which run over TCP/UDP, may also be considered part of the Internet Layer. | |
| Transport | TCP, UDP, DCCP, SCTP, IL, RUDP, RSVP |
| Internet | IP (IPv4, IPv6) ICMP, IGMP, and ICMPv6 |
| OSPF for IPv4 was inititally considered IP layer protocol since it runs per IP-subnet, but has been placed on the Link since RFC 2740. | |
| Link | ARP, RARP, OSPF (IPv4/IPv6), IS-IS, NDP |
The following table shows the layer names and the number of layers in the TCP/IP model as presented in widespread university course textbooks on computer networking used today.
| Forouzan 9 | Comer10, Kozierok11 | Stallings12 | Tanenbaum13 | Kurose14, RFC 1122 | Cisco Academy15 | |
|---|---|---|---|---|---|---|
| Five layers | Five layers | Five layers | Four layers | Four layers | Four layers | |
| L5 | Application | Application | Application | Application | Application | Application |
| L4 | Transport | Transport | Host-to-host or transport | Transport | Transport | Transport |
| L3 | Network | Internet | Internet | Internet | Internet | Internetwork |
| L2 | Data link | Data link (Network interface) | Network access | Host-to-network | Link | Network interface |
| L1 | Physical | (Hardware) | Physical |
These textbooks are secondary sources that may contravene the intent of RFC 1122 and other IETF primary sources16.
Different authors have interpreted the RFCs differently regarding whether the Link Layer (and the four-layer TCP/IP model) covers physical layer issues or a "hardware layer" is assumed below the link layer. Some authors have tried to use other names for the link layer, such as Network interface layer, in effort to avoid confusion with the Data link layer of the seven-layer OSI model. Others have attempted to map the Internet Protocol model onto the seven-layer OSI Model. The mapping often results in a five-layer TCP/IP model, wherein the Link Layer is split into a Data Link Layer on top of a Physical Layer. Especially in literature with a bottom-up approach to computer networking, where physical layer issues are emphasized, an evolution towards a five-layer Internet model can be observed out of pedagogical reasons.
The Internet Layer is usually directly mapped to the OSI's Network Layer. At the top of the hierarchy, the Transport Layer is always mapped directly into OSI Layer 4 of the same name. OSIs Application Layer, Presentation Layer, and Session Layer are collapsed into TCP/IP's Application Layer. As a result, these efforts result in either a four- or five-layer scheme with a variety of layer names. This has caused considerable confusion in the application of these models. Other authors dispense with rigid pedagogy17 focusing instead on functionality and behavior.
The Internet protocol stack has never been altered by the Internet Engineering Task Force (IETF) from the four layers defined in RFC 1122. The IETF makes no effort to follow the seven-layer OSI model and does not refer to it in standards-track protocol specifications and other architectural documents. The IETF has repeatedly stated that Internet protocol and architecture development is not intended to be OSI-compliant.
RFC 3439, addressing Internet architecture, contains a section entitled: "Layering Considered Harmful".16
Today, most operating systems include and install a TCP/IP stack by default. For most users, there is no need to look for implementations. TCP/IP is included in all commercial Unix systems, Mac OS X, and all free-software Unix-like systems such as Linux distributions and BSD systems, as well as all Microsoft Windows operating systems.
Unique implementations include Lightweight TCP/IP, an open source stack designed for embedded systems and KA9Q NOS, a stack and associated protocols for amateur packet radio systems and personal computers connected via serial lines.