The ICMP protocol has a type of messages used to handle problematic situations in a network, like for example destination unreachable, packet's Time To Live exceeded, and others. They all contain the "original datagram" field which represents the leading octets of the datagram to which the ICMP message is a response. The original datagram consists of the IP header + at least 64 bits of the data.