-s packetsize
Specifies the number of data bytes to be sent. The default is 56, which translates into 64 ICMP data bytes when combined with the 8 bytes of ICMP header data.
Don't you just use the -s option?
So you would need to put in 1048576 - 8 = 1048568, I guess?
ping -s 1024 www.matthewhutton.com
That makes me wonder what I was originally wondering... is a packet of 1024kb even possible to begin with? Or did you want 1024 *bytes*? In which case you would pass 1016 to the ping command.