Um ping não pode ter 0 bytes no Linux, Windows ou qualquer outra plataforma que afirme ser capaz de enviar pings. No mínimo, o pacote deve conter um cabeçalho IP e um ping não-mal-feito não-enganoso também incluirá um cabeçalho ICMP, que tem 8 bytes de comprimento.
É possível que o windows difira em como eles emitem os bytes recebidos. O Linux informa o tamanho da porção ICMP do pacote (8 bytes para o cabeçalho ICMP mais qualquer dado ICMP presente). O Windows pode, em vez disso, imprimir o número de bytes de dados de carga útil do ICMP, de modo que, embora ele diga "0", esses 8 bytes de cabeçalho do ICMP ainda estarão lá. Para realmente ter 0 bytes ICMP, significa que seu pacote é um cabeçalho IP bruto e não é mais uma solicitação de ping ICMP. O ponto é, mesmo se o windows está dizendo que o pacote de ping tem 0 bytes de comprimento, não é.
O tamanho mínimo de um pedido de eco ICMP ou pacote de resposta de eco é de 28 bytes:
- cabeçalho IP de 20 bytes,
- cabeçalho ICMP de 4 bytes,
- dados do cabeçalho de solicitação / resposta echo de 4 bytes,
- 0 bytes de dados de carga útil do ICMP.
Quando o ping no linux é impresso:
8 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64
Esses 8 bytes são o cabeçalho ICMP de 4 bytes e os dados do cabeçalho de resposta de eco ICMP de 4 bytes e refletem um tamanho de dados de carga útil de ICMP de 0 bytes.