I am sure that all of you know how an IPv4 header looks like and what is the role of each filed in there but for the sake of conversation I will take the liberty to describe the one field that we are interested in this topic :the TTL field
The Time to Live field indicates the maximum time the datagram is allowed to remain in the internet system. The TTL value is filled by the sender and is decreased at each point that the internet headeris processed to reflect the time spent processing the datagram. Even if no local information is available on the time actually spent, the field must be decremented by 1. Actually,every module that processes the datagram specific, decreases the TTL field by 1 since a datagram nowadays is not processed in a full second.
When the field reaches the value zero the datagram is discarded. The intention is to cause undeliverable datagrams to be droped, and to bound the maximum datagram lifetime.”
So, following the logic described above, if a network device (for example, router) detects that the TTL value of a packet is 0, the device discards the packet and s an ICMPv4 Type 11, Code 0 message to the initial sender resulting in a corresponding impact on the CPU. It was just a matter of time so that a evil mind would think of sending intentionally to a device a large amount of packets with the TTL value less than 1. When receiving these IP packets, the CPUs of the attacked devices become busy processing the packets and sending replies. In this way the CPU usage increases and all the network services are affected.