1

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

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

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

1 ответ1

1

Часть данных является обязательной в ответных пакетах, если в пакете запроса есть часть данных. Автоответчик должен отправить ответ, содержащий точно такую же часть данных. RFC792 не указывает, является ли часть данных в пакете запроса обязательной. Data в этой схеме не помечены как (optional) как во многих других RFC.

 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 ...
 +-+-+-+-+-

Однако отправка ping с нулевыми байтами данных вполне возможна. В Windows попробуйте:

ping <destination> -l 0

Это доказывает, что часть данных в ICMP-эхо-запросе является необязательной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .