It is important to understand the information which is presented in an IP Packets as it helps you understand how the integrity of the information you send across a local network or the internet can be compromised.
Mainly IP datagram has two components: the header and the payload. The Header contains addressing and control fields however Payload carries the actual data.
Here for easy understanding I have clarified the IP datagram header field with a brief explanation;
Version: This field is used to identify the IP version of the packet, in my example it is IPv4, it could be IPv4 or IPv6.
Header Length: This field identifies the size of IP header. It specifies the header in multiple of 4 bytes, so if you are getting a value of 5, it means the header is 20 bytes long.
Type of Service: This field helps router understand how they should queue the IP datagram, however ignored by most router. Service level that can be requested include level of priority, short delay, high throughput and reliability.
Total Length: This is the length of entire packet measured in bytes and includes both header and payload.
Identification: Value of this field is set by the sender of the packet and is used for reassembly of IP datagram at the destination.
Flags: Here the Don’t fragment and More fragments indicate whether an IP datagram can be fragmented, and if so, if it is the last fragment.
Fragment offset: It specifies where in the IP datagram this fragment belongs, measured in 8 bytes(64-bit block).
Time to live: It specifies the maximum number of links or hopes a packet can pass through; if number decreases by 0 before reaching the destination then the packet is destroyed.
Protocol: It identifies the Protocol used at the transport layer, it could be TCP or UDP
Header Checksum: This field checks for integrity of the header information but not the data.
Source: The IP address of the Source computer.
Destination: This is the IP address of the destination computer.
IP Options: This field is optional, it can be used to add loose source routing at the end of an IP header.
Also read the RFC791 for better understanding