Internet protocol suite
It has been suggested that this article be merged with TCP/IP model. (Discuss) Proposed since January 2012. |
Internet protocol suite |
---|
Application layer |
Transport layer |
Internet layer |
Link layer |
بسم الله الرحمن الرحیم
The Internet protocol suite is the set of communications protocols used for the Internet and other similar networks. It is commonly known as TCP/IP, because of its most important protocols: Transmission Control Protocol (TCP) and Internet Protocol (IP), which were the first networking protocols defined in this standard. Modern IP networking represents a synthesis of several developments that began to evolve in the 1960s and 1970s, namely the precursors of the Internet and local area networks, which emerged during the 1980s, together with the advent of the World Wide Web in the early 1990s. مرگ بر اسراییل
The Internet protocol suite has four abstraction layers, each with its own protocols.[1][2] From lowest to highest, the layers are:
- The link layer contains communication technologies for a local network.
- The internet layer connects local networks, thus establishing the internet.
- The transport layer handles host-to-host communication.
- The application layer contains all protocols defined specifically for the functioning of the vast array of data communications services. This layer handles application-based interaction on a process-to-process level between communicating Internet hosts.
History
Early research
The Internet protocol suite resulted from research and development conducted by the Defense Advanced Research Projects Agency (DARPA) in the early 1970s. After initiating the pioneering ARPANET in 1969, DARPA started work on a number of other data transmission technologies. In 1972, Robert E. Kahn joined 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 both. 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.
The network's design included the recognition it should provide only the functions of efficiently transmitting and routing traffic between end nodes and that all other intelligence should be located at the edge of the network, in the end nodes. Using a simple design, it became possible to connect almost any network to the ARPANET, irrespective of their local characteristics, thereby solving Kahn's initial problem. One popular expression is that TCP/IP, the eventual product of Cerf and Kahn's work, will run over "two tin cans and a string."
A computer, called a router, is provided with an interface to each network. It forwards packets back and forth between them.[3] Originally a router was called gateway, but the term was changed to avoid confusion with other types of gateways.
Specification
From 1973 to 1974, Cerf's networking research group at Stanford worked out details of the idea, resulting in the first TCP specification.[4] A significant technical influence was the early networking work at Xerox PARC, which produced the PARC Universal Packet protocol suite, much of which existed around that time.
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, TCP v3 and IP v3, and TCP/IP v4. The last protocol is still in use 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 sites in the US, UK, and Norway. Several other TCP/IP prototypes were developed at multiple research centers between 1978 and 1983. The migration of the ARPANET to TCP/IP was officially completed on flag day January 1, 1983, when the new protocols were permanently activated.[5]
Adoption
In March 1982, the US Department of Defense declared TCP/IP as the standard for all military computer networking.[6] In 1985, the Internet Architecture Board held a three-day workshop on TCP/IP for the computer industry, attended by 250 vendor representatives, promoting the protocol and leading to its increasing commercial use.
In 1985 the first Interop conference was held, focusing on network interoperability via further adoption of TCP/IP. It was founded by Dan Lynch, an early Internet activist. From the beginning, it was attended by large corporations, such as IBM and DEC. Interoperability conferences have been held every year since then. Every year from 1985 through 1993, the number of attendees tripled.[citation needed]
IBM, ATT and DEC were the first major corporations to adopt TCP/IP, despite having competing internal protocols (SNA, XNS, etc.). In IBM, from 1984, Barry Appelman's group did TCP/IP development. (Appelman later moved to AOL to be the head of all its development efforts.) They navigated the corporate politics to get a stream of TCP/IP products for various IBM systems, including MVS, VM, and OS/2. At the same time, several smaller companies began offering TCP/IP stacks for DOS and MS Windows, such as FTP Software, Wollongong. The first VM/CMS TCP/IP stack came from the University of Wisconsin.[7] Back then, most of these TCP/IP stacks were written single-handedly by a few talented programmers. For example, John Romkey of FTP Software was the author of the MIT PC/IP package.[8] John Romkey's PC/IP implementation was the first IBM PC TCP/IP stack. Jay Elinsky and Oleg Vishnepolsky of IBM Research wrote TCP/IP stacks for VM/CMS and OS/2, respectively.[9]
The spread of TCP/IP was fueled further in June 1989, when AT&T agreed to put into the public domain the TCP/IP code developed for UNIX. Various vendors, including IBM, included this code in their own TCP/IP stacks. Many companies sold TCP/IP stacks for Windows until Microsoft released its own TCP/IP stack in Windows 95. This event was a little late in the evolution of the internet, but it cemented TCP/IP's dominance over other protocols, which eventually disappeared. These protocols included IBM's SNA, OSI, Microsoft's native NetBIOS, and Xerox' XNS.[citation needed]
Layers in the Internet protocol suite
The concept of layers
The Internet protocol suite uses encapsulation to provide abstraction of protocols and services. Encapsulation is usually 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.
According to RFC 1122, the Internet protocol suite organizes the functional groups of protocols and methods into four layers. From lowest to highest, the layers are the link layer, the internet layer, the transport layer, and the application layer. 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 role of layering in TCP/IP may be illustrated by an example network scenario (right-hand diagram), in which two Internet host computers communicate across local network boundaries constituted by their internetworking routers. The application on each host executes read and write operations as if the processes were directly connected to each other by some kind of data pipe. Every other detail of the communication is hidden from each process. The underlying mechanisms that transmit data between the host computers are located in the lower protocol layers.
The transport layer establishes host-to-host connectivity, meaning it handles the details of data transmission that are independent of the structure of user data and the logistics of exchanging information for any particular specific purpose. The layer simply establishes a basic data channel that an application uses in its task-specific data exchange. For this purpose the layer establishes the concept of the port, a numbered logical construct allocated specifically for each of the communication channels an application needs. For many types of services, these port numbers have been standardized so that client computers may address specific services of a server computer without the involvement of service announcements or directory services.
The transport layer operates on top of the internet layer. The internet layer is not only agnostic of application data structures as the transport layer, but it also does not distinguish between operation of the various transport layer protocols. It only provides an unreliable datagram transmission facility between hosts located on potentially different IP networks by forwarding the transport layer datagrams to an appropriate next-hop router for further relaying to its destination. With this functionality, the internet layer makes possible internetworking, the interworking of different IP networks, and it essentially establishes the Internet. The Internet Protocol is the principal component of the internet layer, and it defines two addressing systems to identify network hosts computers, and to locate them on the network. The original address system of the ARPANET and its successor, the Internet, is Internet Protocol version 4 (IPv4). It uses a 32-bit IP address and is therefore capable of identifying approximately four billion hosts. This limitation was eliminated by the standardization of Internet Protocol version 6 (IPv6) in 1998, and beginning production implementations in approximately 2006.
The lowest layer in the Internet protocol suite is the link layer. It comprises the tasks of specific networking requirements on the local link, the network segment that a host's network interface is connected to. This involves interacting with the hardware-specific functions of network interfaces and specific transmission technologies.
As the user data, first manipulated and structured in the application layer, is passed through the descending layers of the protocol stack each layer adds encapsulation information as illustrated in the diagram (right). A receiving host reverses the encapsulation at each layer by extracting the higher level data and passing it up the stack to the receiving process.
Layer names and number of layers in the literature
The following table shows various networking models. The number of layers varies between three and seven.
Kurose,[10] Forouzan [11] | Comer,[12] Kozierok[13] | Stallings[14] | Tanenbaum[15] | RFC 1122, Internet STD 3 (1989) | Cisco Academy[16] | Mike Padlipsky's 1982 "Arpanet Reference Model" (RFC 871) | OSI model |
---|---|---|---|---|---|---|---|
Five layers | Four+one layers | Five layers | Five layers | Four layers | Four layers | Three layers | Seven layers |
"Five-layer Internet model" or "TCP/IP protocol suite" | "TCP/IP 5-layer reference model" | "TCP/IP model" | "TCP/IP 5-layer reference model" | "Internet model" | "Internet model" | "Arpanet reference model" | ISO model |
Application | Application | Application | Application | Application | Application | Application/Process | Application |
Presentation | |||||||
Session | |||||||
Transport | Transport | Host-to-host or transport | Transport | Transport | Transport | Host-to-host | Transport |
Network | Internet | Internet | Internet | Internet | Internetwork | Network | |
Data link | Data link (Network interface) | Network access | Data link | Link | Network interface | Network interface | Data link |
Physical | (Hardware) | Physical | Physical | Physical |
Some of the networking models are from textbooks, which are secondary sources that may contravene the intent of RFC 1122 and other IETF primary sources.[17]
Different authors have interpreted the RFCs differently, about whether the link layer (and the TCP/IP model) covers OSI model layer 1 (physical layer) issues, or if a hardware layer is assumed below the link layer. Several authors have attempted to incorporate the OSI model's layers 1 and 2 into the TCP/IP model, since these are commonly referred to in modern standards (for example, by IEEE and ITU). This often results in a model with five layers, where the link layer or network access layer is split into the OSI model's layers 1 and 2.
However, the IETF makes no effort to follow the OSI model, although RFCs sometimes refer to it and often use the old OSI layer numbers. The IETF has repeatedly stated[citation needed] 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".[17]
Implementations
Most computer operating systems in use today, including all consumer-targeted systems, include a TCP/IP implementation.
A minimally acceptable implementation includes the following protocols, listed from most essential to least essential: IP, ARP, ICMP, UDP, TCP and sometimes IGMP. In principle, it is possible to support only one transport protocol, such as UDP, but this is rarely done, because it limits usage of the whole implementation. IPv6, beyond own version of ARP (NBP), and ICMP (ICMPv6), and IGMP (IGMPv6) have some additional required functions, and often is accompanied by an integrated IPSec security layer. Other protocols could be easily added later (possibly being implemented entirely in userspace), such as DNS for resolving domain names to IP addresses, or DHCP for automatically configuring network interfaces.
Most IP implementations are accessible to programmers through sockets and APIs.
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.
See also
{{{inline}}}
- List of network protocols
- List of automation protocols
- List of TCP and UDP port numbers
- FLIP (protocol) (fast local Internet protocol stack)
- List of information technology acronyms
References
- ^ RFC 1122, Requirements for Internet Hosts – Communication Layers, R. Braden (ed.), October 1989
- ^ RFC 1123, Requirements for Internet Hosts – Application and Support, R. Braden (ed.), October 1989
- ^ RFC 1812, Requirements for IP Version 4 Routers, F. Baker (June 1995)
- ^ RFC 675, Specification of Internet Transmission Control Protocol, V. Cerf et al. (December 1974)
- ^ Internet History
- ^ Ronda Hauben. "From the ARPANET to the Internet". TCP Digest (UUCP). Retrieved 2007-07-05.
- ^ [1]
- ^ [2]
- ^ Barry Appelman
- ^ James F. Kurose, Keith W. Ross, Computer Networking: A Top-Down Approach, 2008, ISBN 0-321-49770-8
- ^ Behrouz A. Forouzan, Data Communications and Networking, 2003
- ^ Douglas E. Comer, Internetworking with TCP/IP: Principles, Protocols and Architecture, Pearson Prentice Hall 2005, ISBN 0-13-187671-6
- ^ Charles M. Kozierok, "The TCP/IP Guide", No Starch Press 2005
- ^ William Stallings, Data and Computer Communications, Prentice Hall 2006, ISBN 0-13-243310-9
- ^ Andrew S. Tanenbaum, Computer Networks, Prentice Hall 2002, ISBN 0-13-066102-3
- ^ Mark Dye, Mark A. Dye, Wendell, Network Fundamentals: CCNA Exploration Companion Guide, 2007, ISBN 1-58713-208-7
- ^ a b R. Bush (December 2002), Some Internet Architectural Guidelines and Philosophy, Internet Engineering Task Force, retrieved 2012-01-07
{{citation}}
: Invalid|ref=harv
(help); Unknown parameter|coauthors=
ignored (|author=
suggested) (help)
Further reading
- Douglas E. Comer. Internetworking with TCP/IP - Principles, Protocols and Architecture. ISBN 86-7991-142-9
- Joseph G. Davies and Thomas F. Lee. Microsoft Windows Server 2003 TCP/IP Protocols and Services. ISBN 0-7356-1291-9
- Forouzan, Behrouz A. (2003). TCP/IP Protocol Suite (2nd ed.). McGraw-Hill. ISBN 0-07-246060-1.
- Craig Hunt TCP/IP Network Administration. O'Reilly (1998) ISBN 1-56592-322-7
- Maufer, Thomas A. (1999). IP Fundamentals. Prentice Hall. ISBN 0-13-975483-0.
- Ian McLean. Windows(R) 2000 TCP/IP Black Book. ISBN 1-57610-687-X
- Ajit Mungale Pro .NET 1.1 Network Programming. ISBN 1-59059-345-6
- W. Richard Stevens. TCP/IP Illustrated, Volume 1: The Protocols. ISBN 0-201-63346-9
- W. Richard Stevens and Gary R. Wright. TCP/IP Illustrated, Volume 2: The Implementation. ISBN 0-201-63354-X
- W. Richard Stevens. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols. ISBN 0-201-63495-3
- Andrew S. Tanenbaum. Computer Networks. ISBN 0-13-066102-3
- Clark, D. (1988). "The Design Philosophy of the DARPA Internet Protocols" (PDF). SIGCOMM '88 Symposium proceedings on Communications architectures and protocols. ACM: 106–114. doi:10.1145/52324.52336. Retrieved 2011-10-16.
External links
- Internet History -- Pages on Robert Kahn, Vinton Cerf, and TCP/IP (reviewed by Cerf and Kahn).
- RFC 675 - Specification of Internet Transmission Control Program, December 1974 Version
- TCP/IP State Transition Diagram (PDF)
- RFC 1180 A TCP/IP Tutorial - from the Internet Engineering Task Force (January 1991)
- TCP/IP FAQ
- The TCP/IP Guide - A comprehensive look at the protocols and the procedures/processes involved
- A Study of the ARPANET TCP/IP Digest
- TCP/IP Sequence Diagrams
- The Internet in Practice
- TCP/IP - Directory & Informational Resource
- Daryl's TCP/IP Primer - Intro to TCP/IP LAN administration, conversational style
- Introduction to TCP/IP
- TCP/IP commands from command prompt
- cIPS — Robust TCP/IP stack for embedded devices without an Operating System