Сообщения Timestamp и Timestamp Reply
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originate Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receive Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmit Timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Поля IP
- Address
- Адрес отправителя сообщения timestamp будет адресом получателя в сообщении timestamp reply. Для формирования сообщений timestamp reply поля адресов отправителя и получателя просто меняются местами, значение типа заменяется на 14 и заново вычисляется контрольная сумма.
Поля ICMP
- Type
- 13 — для сообщений timestamp
- 14 — для сообщений timestamp reply
- Code
- 0
- Checksum
- Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
- Идентификатор
- Если code code = 0, идентификатор для обеспечения соответствия меток и откликов может быть нулевым.
- Порядковый номер
- Если code code = 0, порядковый номер для обеспечения соответствия меток и откликов может быть нулевым.
Описание
Принятые данные (временная метка) из сообщения timestamp возвращаются в отклике вместе с дополнительной временной меткой. Метка представляет собой 32-битовое значение числа миллисекунд после полуночи по времени UT. Один из вариантов использования временных меток описан в работе Mills [RFC778].
Поле Originate Timestamp содержит время отправителя на момент отправки дейтаграммы, Receive Timestamp — время получателя в момент приема дейтаграммы, а Transmit Timestamp — время отправителя отклика перед отправкой дейтаграммы.
Если хост не может указать время в миллисекундах после полуночи по UT, он может ввести произвольное значение, установив старший бит временной метки для индикации нестандартного значения.
Значения идентификатора и порядкового номера могут использоваться отправителем сообщений timestamp в целях обеспечения соответствия между запросами и откликами. Например, значение идентификатора может использоваться по аналогии с портами TCP и UDP для обозначения сеансов, а порядковый номер может увеличиваться на единицу в каждом передаваемом запросе timestamp (отвечающая сторона сохраняет порядковые номера в откликах).
Код 0 может приходить от шлюзов и хостов.