IPv4 Packet Header
The Internet Protocol (IP) uses a Datagram service to transfer
packets of data between end
systems using routers.
The IPv4 packet header consists of 20 bytes of data. An option exists within the header that allows further optional bytes to be added, but this is not normally used (with the occasional exception of something called "Router Alert"). The full header is shown below:
The header fields are discussed below:
- Version (always set to the value 4 in the current version of IP)
- IP Header Length (number of 32 -bit words forming
the header, usually five)
- Differentiated Services Code Point (DSCP)(6 bit field, sometimes set to 0, but can indicate a particular treatment, sometimes refelecting the Quality of Service needs of an application to the network. The DSCP informs a router how to queue packets while they are waiting to be forwarded).
- Explicit Congestion Notification (ECN) Field (2 bits)
- 00 indicates the packet does not use ECN.
- 01 indicates the packet is a part of an ECN-capable transport flow.
- 10 indicates the packet is a part of an experimental ECN-capable transport flow.
- 11 indicates the packet has experienced congestion.
- Size of Datagram (in bytes, this is the combined length of the header and the data)
- Identification (16-bit number which together with
the source address uniquely identifies this packet - used during
reassembly of fragmented
- Flags (a sequence of three flags (one of the 4 bits is unused) used to control whether routers
are allowed to fragment
a packet (i.e. the Don't Fragment, DF,
flag), and to indicate the parts of a packet to the receiver)
- Fragmentation Offset (a byte count from the start
of the original sent packet, set by any router which performs
IP router fragmentation)
- Time To Live (Number of hops /links which the packet
may be routed over, decremented by most routers
- used to prevent accidental routing loops)
- Protocol (Service
Access Point (SAP) which indicates the type of transport
packet being carried (e.g. 1 = ICMP;
2= IGMP; 6 = TCP; 17= UDP).
- Header Checksum (A 1's complement checksum inserted by the sender and updated whenever the packet header is modified by a router - Used to detect processing
errors introduced into the packet inside a router
or bridge where the packet
is not protected by a link layer cyclic
redundancy check. Packets with an invalid checksum are discarded
by all nodes in an IP network)
- Source Address (the IP address
of the original sender of the packet)
- Destination Address (the IP
address of the final destination of the packet)
- Options (not normally used, but, when used, the IP header length will be greater than five 32-bit words to indicate the size of the options field)
IP Packet Processing
Example Packet Decodes
Operation of an IP Router
J.Postel. Internet Protocol, RFC 791
Gorry Fairhurst Date: 18/11/2008 EG3567