an IP datagram
An IP datagram is one packet as the Internet Protocol defines it: a header (the addressed envelope) followed by a payload (the cargo inside). The header carries everything a router needs to handle the packet without opening the cargo, exactly like a shipping label that lets a sorting centre route a box without unpacking it.
The IPv4 header is normally 20 bytes and includes: a version field (4 for IPv4), a header length, a total length, a time-to-live (TTL) that is decremented at every router so looping packets eventually die, a protocol field that says what is inside (for example 6 for TCP, 17 for UDP, 1 for ICMP) so the destination knows whom to hand the payload to, a header checksum that lets a router catch a corrupted header, and the 32-bit source and destination IP addresses. There are also fields for fragmentation (identification, flags, offset). The payload is whatever the transport layer handed down — usually a TCP segment or a UDP datagram.
Two header fields matter constantly. TTL prevents packets from circling forever when routing tables are temporarily inconsistent: start at, say, 64, subtract one per hop, and discard at zero (this is also exactly what traceroute exploits). The protocol field is the glue that lets one destination host demultiplex an arriving datagram to the right upper-layer handler. IPv6 keeps the same idea but with a leaner, fixed-size header and no per-hop header checksum.
A datagram leaves your laptop with TTL 64, protocol 6 (TCP), source 192.168.1.20, destination 142.250.71.78. After 12 router hops it arrives with TTL 52; the destination reads protocol 6 and hands the payload to TCP.
The header is read by every router; the payload only by the destination.
The header checksum in IPv4 covers only the header, not the payload — protecting the addresses, not your data. IPv6 drops it entirely, trusting the link layer and transport layer to catch corruption.