Почему пакеты ICMP Echo Request и Echo Reply содержат часть данных?

2358
user603337

Пакеты ICMP Echo Request и Echo Reply содержат часть данных. Например, это пакет Echo Request (который был отправлен в Windows с помощью команды ping):

enter image description here

Как видите, в пакете есть часть данных, состоящая из 32 байтов, и эти данные, кажется, ничего не значат (это всего лишь часть алфавита).

Является ли часть данных обязательной или необязательной?

1
Полезные данные могут быть очень полезны, в значительной степени в зависимости от того, для чего вы используете ping. Для базовых проверок работоспособности и задержки, нет, но вы можете принудительно фрагментировать пакеты, увеличив размер пакета по сравнению с MTU, вы получите встроенные (базовые) проверки целостности данных, поскольку полезная нагрузка данных ответа ICMP должна соответствовать полезной нагрузке данных запроса ICMP, и изменив его вместе с другими аргументами ping, вы можете точно настроить нагрузку, которую вы помещаете в сеть, отрегулировав общий рабочий цикл, частоты / длину пакета,% доступной пропускной способности и другие атрибуты, которые могут быть очень полезны при исследовании сетевых проблем. Argonauts 7 лет назад 1

1 ответ на вопрос

1
Jonas Köritz

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.