The data portion is mandatory in reply packets, if there is a data portion in the request packet. The answering system must send a reply containing exactly the same data portion. The RFC792 does not specify if the data portion in the request packet is mandatory. The Data
in this schema is not marked as (optional)
as in many other RFCs.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+-+-+-
However, sending a ping with zero bytes of data is entirely possible. On Windows try:
ping <destination> -l 0
This proves that the Data-portion in an ICMP-Echo-Request is optional.