IP header

An IP header is header information at the beginning of an Internet Protocol (IP) packet. An IP packet is the smallest message entity exchanged via the Internet Protocol across an IP network. IP packets consist of a header for addressing and routing, and a payload for user data. The header contains information about IP version, source IP address, destination IP address, time-to-live, etc. The payload of an IP packet is typically a datagram or segment of the higher-level transport layer protocol, but may be data for an internet layer (e.g., ICMP or ICMPv6) or link layer (e.g., OSPF) instead.

Two different versions of IP are used in practice today: IPv4 and IPv6. The IPv6 header uses IPv6 addresses and thus offers a much bigger address space but is not backward compatible with IPv4.

IPv4
IPv4 is the fourth version in the development of the Internet Protocol, and routes most traffic on the Internet. The IPv4 header includes thirteen mandatory fields and is as small as 20 bytes. A fourteenth optional and infrequently used options field can increase the header size.

IPv6
IPv6 is the successor to IPv4 and has a different header layout. It was defined in 1998 and is in various stages of production deployment. The header in IPv6 packets is subdivided into a mandatory fixed header and optional extension headers.