IP: Internet Protocol (IPv4)

Protocol Description

The Protocol () is a network-layer (Layer 3 in the OSI model) protocol that contains addressing information and some control information to enable packets to be routed in a network. is the primary network-layer protocol in the TCP/ protocol suite. Along with the Transmission Control Protocol (TCP), represents the heart of the protocols. is equally well suited for both LAN and WAN communications.

has two primary responsibilities: providing connectionless, best-effort delivery of datagrams through a network; and providing fragmentation and reassembly of datagrams to support data links with different maximum-transmission unit (MTU) sizes. The addressing scheme is integral to the process of routing datagrams through an internetwork. Each address has specific components and follows a basic format. These addresses can be subdivided and used to create addresses for subnetworks. Each computer (known as a host) on a TCP/ network is assigned a unique 32-bit logical address that is divided into two main parts: the network number and the host number. The network number identifies a network and must be assigned by the Network Information Center (InterNIC) if the network is to be part of the . An Service Provider (ISP) can obtain blocks of network addresses from the InterNIC and can itself assign address space as necessary. The host number identifies a host on a network and is assigned by the local network administrator.

When you send or receive data (for example, an e-mail note or a Web page), the message gets divided into little chunks called packets. Each of these packets contains both the sender’s address and the receiver’s address. Because a message is divided into a number of packets, each packet can, if necessary, be sent by a different route across the . Packets can arrive in a different order than the order they were sent in. The Protocol just delivers them. It’s up to another protocol, the Transmission Control Protocol (TCP) to put them back in the right order.

All other protocols within the TCP/ suite, except ARP and RARP, use to route frames from host to host. There are two basic versions, IPv4 and IPv6. This document describes the IPv4 details. The IPv6 details are described in a separate document.

Protocol Structure

4 8 16 32bit
Version IHL Type of service Total length
Identification Flags Fragment offset
Time to live Protocol Header checksum
Source address
Destination address
Option + Padding
Data
  • Version — indicates the version of currently used (4 for IPv4).
  • Header Length (IHL) — is the datagram header length in 32-bit words. Points to the beginning of the data. Minimum value is 5 (20bytes) and maximum value is 15 (60 bytes).
  • Type-of-Service — indicates the quality of service desired by specifying how an upper-layer protocol would like a current datagram to be handled and assigns datagrams various levels of importance. These 8 bits fields are used for the assignment of Precedence, Delay, Throughput and Reliability.
Type of service Differentiated Services
Precedence (000 – 111) 000
D (1 = minimize delay) 0
T (1 = maximize throughout) 0
R (1 = maximize reliability) 0
C (1 = minimize cost) 1 = ENC capable
x (reserved and set to 0) 1 = congestion
experienced
  • Total Length — specifies the length, in bytes, of the entire packet, including the data and header. The maximum length is 65,535 bytes. Typically, hosts are prepared to accept datagrams up to 576 bytes.
  • Identification — contains an integer that identifies the current datagram. This field is assigned by sender to help receiver to assemble the datagram fragments.
  • Flags — consists of a 3-bit field of which the two low-order (least-significant) bits control fragmentation.
    	X (reserved and set to 0
    	D (1 = don't fragment)
    	M (1 = more fragment)
  • Fragment Offset — This 13-bits field indicates the position of the fragment’s data relative to the beginning of the data in the original datagram, which allows the destination process to properly reconstruct the original datagram.
  • Time-to-Live — is a counter that gradually decrements down to zero, at which point the datagram is discarded. This keeps packets from looping endlessly.
  • Protocol — indicates which upper-layer protocol receives incoming packets after processing is complete. Some sample protocols:
    	1 -- ICMP     2 -- IGMP    6 -- TCP
    	9 -- IGRP     17 -- UDP    47 --GRE
    	50 -- ESP     51 -- AH     57 -- SKIP
    	88 -- EIGRP   89 -- OSPF   115 -- L2TP
  • Header Checksum — helps ensure header integrity. Since some header fields change, e.g., Time to Live, this is recomputed and verified at each point the header is processed.
  • Source Address — specifies the sending node.
  • Destination Address — specifies the receiving node.
  • Options — allows to support various options.
    	0 -- End of option list
    	1 -- No operation (PAD)
    	7 -- Record route
    	68 -- timestamp
    	131 -- Loose source route
    	137 -- Strict source route
  • Data — contains upper-layer information.

Related Protocols IPv6, TCP, UDP, ICMP, SNMP, FTP,
TELNET, SMTP, ARP, RARP, RPC, XDR, and NFS

Sponsor Source The Protocol is defined by IETF
(http://www.ietf.org) RFC 791.

Reference

http://www.javvin.com/protocol/rfc791.pdf
 Protocol Specifications

http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ip.htm
 Overview