Good, but how does a ping hold data? AFAIK each ping is a single round trip and not a continuous loop. And where in the packet is the data stored?
In some applications, using an ICMP payload and getting a quote of the IP header + 8-bytes of the original packet back in ICMP error messages is part of the application. For example, traceroute utilises the fact that it gets part of the payload back in a ICMP TTL exceeded message to identify _which_ traceroute request was being responded to.
Imagine mailing somebody a letter with data; once they receive the letter they send it back. The information is stored within the postal system.