Internet protocol suite

From Wikipedia, the free encyclopedia

The Internet protocol suite (commonly TCP/IP) is the set of communications protocols that implement the protocol stack on which the Internet and most commercial networks run. It is named for two of the most important protocols in it: the Transmission Control Protocol (TCP) and the Internet Protocol (IP), which were also the first two networking protocols defined. Today's IP networking represents a synthesis of two developments that began to evolve in the 1960s and 1970s, namely LANs (Local Area Networks) and the Internet, which, together with the invention of the World Wide Web by Sir Tim Berners-Lee in 1989, have revolutionized computing.

The Internet protocol suite—like many protocol suites—can 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 reference model consists of four layers [1]. From lowest to highest, these are the link layer, the network layer, the transport layer, and the application layer.

Contents

[edit] History

The Internet protocol suite came from work done by Defense Advanced Research Projects Agency (DARPA) in the early 1970s. After building the pioneering ARPANET in the late 1960s, 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 for the ARPANET.

By the summer of 1973, Kahn and Cerf had soon 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 Request for Comments 1149 [2] [3]).

A computer called a router (a name changed from gateway to avoid confusion with other types of gateway) 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). [4]

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) [5] (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.[6]

In March 1982, the US Department of Defense made TCP/IP the standard for all military computer networking.[7] 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.

[edit] Layers in the Internet protocol suite

IP suite stack showing the physical network connection of two hosts via two routers and the corresponding layers used at each hop
IP suite stack showing the physical network connection of two hosts via two routers and the corresponding layers used at each hop
Sample encapsulation of data within a UDP datagram within an IP packet
Sample encapsulation of data within a UDP datagram within an IP packet

The IP suite uses encapsulation to provide abstraction of protocols and services. Generally a protocol at a higher level uses a protocol at a lower level to help accomplish its aims. 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.

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, which for a variety of reasons run over TCP, may also be considered part of the application or network layer.
Transport TCP, UDP, DCCP, SCTP, IL, RUDP
Internet Routing protocols like OSPF, which run over IP, are also to be considered part of the network layer, as they provide path selection. ICMP and IGMP run over IP and are considered part of the network layer, as they provide control information.
IP (IPv4, IPv6)
ARP and RARP operate underneath IP but above the link layer so they belong somewhere in between.
Network access (combines Data link and Physical) Ethernet, Wi-Fi, token ring, PPP, SLIP, FDDI, ATM, Frame Relay, SMDS

Some textbooks have attempted to map the Internet protocol suite model onto the seven layer OSI Model. The mapping often splits the Internet protocol suite's Network access layer into a Data link layer on top of a Physical layer, and the Internet layer is mapped to the OSI's Network layer. These textbooks are secondary sources that contravene the intent of RFC 1122 and other IETF primary sources[8]. The IETF has repeatedly stated that Internet protocol and architecture development is not intended to be OSI-compliant.

RFC 3439, on Internet architecture, contains a section entitled: "Layering Considered Harmful": Emphasizing layering as the key driver of architecture is not a feature of the TCP/IP model, but rather of OSI. Much confusion comes from attempts to force OSI-like layering onto an architecture that minimizes their use.[8]

[edit] Implementations

Today, most commercial operating systems include and install the 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 Microsoft Windows.

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.

[edit] See also

[edit] Notes

  1. ^ R. Braden (October 1989), RFC 1122: Requirements for Internet Hosts—Communication Layers, Information Sciences Institute (ISI) at University of Southern California, <http://www.isi.edu/in-notes/rfc1122.txt>. Retrieved on 15 September 2007 
  2. ^ D. Weitzmann (April 1990). [http:www.isi.edu/in-notes/rfc1149.txt A Standard for the Transmission of IP Datagrams on Avian Carriers]. Internet Engineering Task Force. Retrieved on 2007-11-20.
  3. ^ Bergen Linux User Group (April 2001). The informal report from the RFC 1149 event.
  4. ^ F. Baker (June 1995). Requirements for IP Routers.
  5. ^ V.Cerf et al (December 1974). Specification of Internet Transmission Control Protocol.
  6. ^ Internet History
  7. ^ Ronda Hauben. From the ARPANET to the Internet. TCP Digest (UUCP). Retrieved on 2007-07-05.
  8. ^ a b R. Bush (December 2002), Some Internet Architectural Guidelines and Philosophy, Internet Engineering Task Force, <http://www.isi.edu/in-notes/rfc3439.txt>. Retrieved on 20 November 2007 

[edit] References

  • Internet History -- Pages on Robert Kahn, Vinton Cerf, and TCP/IP (reviewed by Cerf and Kahn).
  • Forouzan, Behrouz A. (2003). TCP/IP Protocol Suite, 2nd, McGraw-Hill. ISBN 0-07-246060-1. 

[edit] Further reading

[edit] External links