Internet Protocol
From Wikipedia, the free encyclopedia
The five-layer TCP/IP model |
---|
5. Application layer |
DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · RTP · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · TLS (and SSL) · SDP · SOAP · GTP · STUN · NTP · (more) |
4. Transport layer |
TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) |
3. Network/internet layer |
IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · IPsec · ARP · RARP · RIP · ICMP · ICMPv6 · IGMP · (more) |
2. Data link layer |
802.11 (WLAN) · 802.16 · Wi-Fi · WiMAX · ATM · DTM · Token ring · Ethernet · FDDI · Frame Relay · GPRS · EVDO · HSPA · HDLC · PPP · PPTP · L2TP · ISDN · ARCnet · LLTD · (more) |
1. Physical layer |
Ethernet physical layer · RS-232 · SONET/SDH · G.709 · Optical fiber · Coaxial cable · Twisted pair · (more) |
The Seven-layer OSI Model |
7. Application layer |
NNTP · SIP · SSI · DNS · FTP · Gopher · HTTP · NFS · NTP · SMPP · SMTP · SNMP · Telnet |
6. Presentation layer |
MIME · XDR · SSL · TLS |
5. Session layer |
Named Pipes · NetBIOS · SAP · SDP · Sockets Session establishment in TCP · SIP. |
4. Transport layer |
TCP · UDP · IPsec · PPTP · L2TP |
3. Network layer |
IP · ARP · ICMP · DHCP · RIP · OSPF· BGP · IGMP · IS-IS · IGRP · EIGRP |
2. Data Link layer |
PPP · SLIP |
1. Physical layer |
RS-232 · V.35· V.34· I.430· I.431· T1· E1· 802.3 Ethernet · 10BASE-T· 100BASE-TX· POTS· SONET· DSL· 802.11a/b/g/n PHY |
The Internet Protocol (IP) is a data-oriented protocol used for communicating data across a packet-switched internetwork.
IP is a network layer protocol in the Internet protocol suite and is encapsulated in a data link layer protocol (e.g., Ethernet). As a lower layer protocol, IP provides the service of communicable unique global addressing amongst computers.
Contents |
[edit] 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 a packet-switched network), thus IP (Internet protocol) is a connectionless protocol. This is quite unlike Public Switched Telephone Networks that require the setup of a circuit before a phone call may go through (a connection-oriented protocol).
[edit] Services 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 of Ethernet, ATM, FDDI, Wi-Fi, token ring, etc.) and it makes no difference to the upper layer protocols. Each data link layer 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 the Address Resolution Protocol (ARP).
[edit] Reliability
IP provides an unreliable service (i.e., best effort delivery). This means that the network makes no guarantees about the packet and none, some, or all of the following may apply:
- 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 packages
In terms of reliability the only thing IP does is ensure 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).
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 size by first looking at the Layer 2 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[1]. 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.[2]
The primary reason for the lack of reliability is to reduce the complexity of routers. 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, see End-to-end principle.
[edit] IP addressing and routing
Perhaps the most complex aspects of IP are IP addressing and routing. 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 either interior gateway protocols (IGPs) or external gateway protocols (EGPs) to help make IP datagram forwarding decisions across IP connected networks.
[edit] Version history
In May, 1974, the Institute of Electrical and Electronic Engineers (IEEE) published a paper titled "A Protocol for Packet Network Interconnection." The paper's authors -- Vinton Cerf and Robert Kahn -- described a protocol called "TCP" that incorporated both connection-oriented and datagram services.
IP is the common element found in today's public Internet. The current and most popular network layer protocol in use today is IPv4; this version of the protocol is assigned version 4. IPv4 is described in RFC-791 (1981).
IPv6 is the proposed successor to IPv4 whose most prominent change is the addressing. IPv4 uses 32-bit addresses (~4 billion addresses) while IPv6 uses 128-bit addresses (~3.4×1038 addresses). Although adoption of IPv6 has been slow, as of 2008, all United States government systems must support IPv6 (if only at the backbone level). [3]
Version numbers 0 through 3 were development versions of IPv4 used between 1977 and 1979. Version number 5 was used by the Internet Stream Protocol (IST), an experimental stream protocol. Version numbers 6 through 9 were assigned to experimental protocols designed to replace IPv4: SIPP (Simple Internet Protocol Plus, known nowadays as IPv6), TP/IX (RFC 1475), PIP (RFC 1621) and TUBA (TCP and UDP with Bigger Addresses, RFC 1347). Of these, only IPv6 is still in use.
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.[4]
[edit] Reference diagrams
[edit] See also
- Main lists: List of basic internet topics and List of Internet topics
- Connectionless protocol
- IANA
- Internet protocol suite
- IPv4
- IPv5
- IPv6
- IP address
- IP packet
- TCP and UDP port numbers
- Transmission Control Protocol
- ip - the ip structure for the C programming language
- Internet
- Country IP database
[edit] References
- ^ Siyan, Karanjit. Inside TCP/IP, New Riders Publishing, 1997. ISBN 1-56205-714-6
- ^ Basic Journey of a Packet
- ^ CIO council adds to IPv6 transition primer
- ^ China disowns IPv9 hype. The Register. Retrieved on 2008-03-14.