- Internet Protocol
The Internet Protocol (IP) is a protocol used for communicating data across a
packet-switched internetwork using theInternet Protocol Suite (TCP/IP).IP is the primary protocol in the
Internet Layer of theInternet Protocol Suite and has the task of delivering datagrams (packets) from the source host to the destination host solely based on its address. For this purpose the Internet Protocol defines addressing methods and structures for datagram encapsulation. The first major version of addressing structure, now referred to as Internet Protocol Version 4 (IPv4) is still the dominant protocol of the Internet, although the successor, Internet Protocol Version 6 (IPv6) is actively deployed worldwide.Packetization
Data from an
upper layer protocol is encapsulated inside one or more packets/datagrams (the terms are basically synonymous in IP).No circuit setup is needed before a host tries to send packets to a host it has previously not communicated with (this is the point of apacket-switched network), thus IP is aconnectionless protocol .This is quite unlikePublic Switched Telephone Network s that require the setup of a circuit before a phone call may go through ("connection-oriented" protocol).ervices provided by IP
Because of the abstraction provided by encapsulation, IP can be used over a
heterogeneous network (i.e., a network connecting two computers can be any mix ofEthernet , ATM, FDDI,Wi-Fi ,token ring , etc.) and it makes no difference to theupper layer protocol s.Each link layer implementation can (and does) have its own method of addressing (or possibly the complete lack of it), with a corresponding need to resolve IP addresses to data link addresses. This address resolution is handled by theAddress Resolution Protocol (ARP) forIPv4 andNeighbor Discovery Protocol (NDP) forIPv6 .Reliability
IP provides an "unreliable" service (i.e.,
best effort delivery ). This means that the network makes no guarantees about the packets proper arrival and any of the following may occur:
* data corruption
* out-of-order delivery (Given packet A is sent before packet B, packet B can arrive before packet A.)
* duplicate arrival
* lost or dropped/discarded packagesIPv4, however, does provide some reliability in terms of integrity of the packet, ensuring the IP packet's header is error-free through the use of a
checksum . This has the side-effect of discarding packets with bad headers on the spot, and with no required notification to either end (though an ICMP message may be sent). IPv6, on the other hand, has abandoned the use of IP header checksums for the benefit of rapid forwarding through routing elements in the network.To address any of these reliability issues, an
upper layer protocol must handle it. For example, to ensure in-order delivery the upper layer may have to cache data until it can be passed up in order.If the upper layer protocol does not self-police its own packet size by first examining the maximum transmission unit (MTU) size, and sends the IP layer too much data, IP is forced to fragment the original datagram into smaller fragments for transmission. IP "does" provide re-ordering of any fragments that arrive out of order by using the fragmentation flags and offset [Siyan, Karanjit. "Inside TCP/IP", New Riders Publishing, 1997. ISBN 1-56205-714-6] . Transmission Control Protocol (TCP) is a good example of a protocol that will adjust its segment size to be smaller than the MTU. User Datagram Protocol (UDP) and Internet Control Message Protocol (ICMP) are examples of protocols that disregard MTU size thereby forcing IP to fragment oversized datagrams. [ [http://www.securityfocus.com/infocus/1870 Basic Journey of a Packet ] ]
The primary reason for the lack of reliability is to reduce the complexity of
router s. While this does give routers "carte blanche" to do as they please with packets, anything less than "best effort" yields a poor experience for the end user. So, even though no guarantees are made, the better the effort made by the network, the better the experience for the user. Most protocols are built around the idea that error checking is best done at each end of the communication line, seeEnd-to-end principle .IP addressing and routing
Perhaps the most complex aspects of IP are
IP address ing androuting . Addressing refers to how end hosts become assigned IP addresses and how subnetworks of IP host addresses are divided and grouped together. IP routing is performed by all hosts, but most importantly by internetwork routers, which typically use eitherinterior gateway protocol s (IGPs) or external gateway protocols (EGPs) to help make IP datagram forwarding decisions across IP connected networks.Version history
In May, 1974, the
Institute of Electrical and Electronic Engineers (IEEE) published a paper entitled "A Protocol for Packet Network Interconnection." [Vinton G. Cerf, Robert E. Kahn, "A Protocol for Packet Network Intercommunication", IEEE Transactions on Communications, Vol. 22, No. 5, May 1974 pp. 637-648] The paper's authors,Vint Cerf andBob Kahn , described an internetworking protocol for sharing resources using packet-switching among the nodes. A central control component of this model was the "Transmission Control Program" (TCP) that incorporated both connection-oriented links and datagram services between hosts. The monolithic Transmission Control Program was later divided into a modular architecture consisting of theTransmission Control Protocol at the connection-oriented layer and the Internet Protocol at the internetworking (datagram) layer. The model became known informally as TCP/IP, although formally it was henceforth referenced as theInternet Protocol Suite .The Internet Protocol is one of the determining elements that define the
Internet . The dominant internetworking protocol (Internet Layer ) in use today isIPv4 ; with number 4 assigned as the formal protocol version number carried in every IP datagram. IPv4 is described inRFC-791 (1981 ).The successor to IPv4 is
IPv6 . Its most prominent modification from Version 4 is the addressing system. IPv4 uses32-bit addresses (~4 billion, or ~4.3×109, addresses) while IPv6 uses128-bit addresses (~3.4×1038 addresses). Although adoption of IPv6 has been slow, as of June2008 , allUnited States government systems have demonstrated basic infrastructure support for IPv6 (if only at the backbone level). [ [http://www.gcn.com/print/25_16/41051-1.html CIO council adds to IPv6 transition primer ] ]Version numbers 0 through 3 were development versions of IPv4 used between
1977 and1979 . Version number 5 was used by theInternet Stream Protocol (IST), an experimental stream protocol. Version numbers 6 through 9 were proposed for various protocol models designed to replace IPv4: SIPP (Simple Internet Protocol Plus, known now as IPv6), TP/IX (RFC 1475), PIP (RFC 1621) and TUBA (TCP and UDP with Bigger Addresses, RFC 1347). Version number 6 was eventually chosen as the official assignment for the successor Internet protocol, subsequently standardized asIPv6 .In 2004, a Chinese project called IPv9 was briefly mentioned in the press as a possible competitor to IPv6. The proposal had no affiliation with or support by any international standards body, and appears to have gained no traction even within China. [cite web|url=http://www.theregister.co.uk/2004/07/06/ipv9_hype_dismissed/
title=China disowns IPv9 hype|publisher=The Register |accessdate=2008-03-14|last=|first=]A humoristic
Request for Comments that made an IPv9 protocol center of its storyline was published onApril 1 ,1994 by theIETF . [RFC 1606: A Historical Perspective On The Usage Of IP Version 9.April 1 ,1994 .] It was intended as anApril Fool's Day joke.Reference diagrams
See also
: "Main lists:
List of basic internet topics andList of Internet topics "
*Connectionless protocol
* IANA
*Internet Protocol Suite
*IPv4
*IPv5
*IPv6
*IP address
*
*TCP and UDP port numbers
*Transmission Control Protocol
* ip - the ip structure for the C programming language
*Internet
*Country IP database References
External links
*
* RFC 791
* [http://www.ict.tuwien.ac.at/skripten/datenkomm/infobase/L30-IP_Technology_Basics_v4-6.pdf Data Communication Lectures of Manfred Lindner - Part IP Technology Basics]
* [http://www.ict.tuwien.ac.at/skripten/datenkomm/infobase/L31-IP_Technology_Details_v4-7.pdf Data Communication Lectures of Manfred Lindner - Part IP Technology Details]
* [http://www.ict.tuwien.ac.at/skripten/datenkomm/infobase/L80-IPv6_v4-5.pdf Data Communication Lectures of Manfred Lindner - Part IPv6]
* [http://www.ipv6.com IPv6.com - Knowledge Center for Next Generation Internet IPv6]
Wikimedia Foundation. 2010.