Internet Protocol Version 4 (IPv4) was developed by the Internet Engineering Task Force( IETF) as part of the IPnG activities and described as early as 1981 in RFC 791. The aim of these activities was to develop successor protocols for the classic IP protocol that have a significantly larger addressing range and are at the same time compatible with the IP protocol. These developments led to the standardization of IPv6 in 1995, which was intended to complement the classic IP version (IPv4) from 1970.
The header of IPv4
The entire IPv4 header corresponds to the classic IP header. It includes 20 octets, 12 fields including 3 flags and a limited number of options. It consists of a 4-bit version field to indicate the protocol version, the 4-bit IHL field to indicate the number of 32-bit words in the IP header, the 8-bit Type of Service( ToS) field to indicate the service and transmission parameters, and the 16-bit Total Length field to indicate the total length. The total length field contains the length of the entire datagram in octets, including the header and the data. This is followed by the 16-bit Identifier field for identifying individual data packets, the three-bit Flag field for indicating fragmentation, which is followed by the Fragment Offset (13-bit) data field.
The following Time-To-Live field is 8 bits long and provides a defined lifetime for the data packet. The Protocol Type field (8 bits) identifies the next higher protocol used in the context of IPv4. If the Internet Control Message Protocol( ICMP) is used, a 1 is entered in the data field, for the Internet Group Management Protocol( IGMP) a 4, for the TCP protocol a 6 and for the UDP protocol a 17. This is followed by the header checksum field with 16 bits with which the IPv4 header ischecked for errors, the following source address field and the destination address field each have 32 bits. The IPv4 header is completed by the 24-bit option field and the 8-bit data field for padding.