Кратко

  • Опция Type 68 из RFC 791 позволяла IP-модулям добавлять время и, при выбранном режиме, адрес; четырёхбитный счётчик переполнения учитывал модули, которым не хватило места.
  • Поскольку часы могли быть несинхронизированы, а запись имела предел, опция сохраняла частичные наблюдения обработки, но не давала надёжного измерения задержки от конца до конца.

Временная отметка внутри датаграммы

RFC 791 определил опцию Internet Timestamp типа 68. Отправитель резервировал место в заголовке IP; каждый участвующий IP-модуль мог записать время обработки датаграммы. 32-битное значение обозначало миллисекунды с полуночи UT. Если UT было недоступно или часы не использовали его, старший бит помечал значение как нестандартное.

Флаги задавали содержимое записи. Флаг 0 сохранял только время. Флаг 1 связывал каждое время с адресом. Флаг 3 заранее содержал адреса, и модуль записывал время только при совпадении своего адреса со следующим в списке. Указатель отмечал следующую позицию. Длина опции не могла превышать 40 октетов, поэтому отправитель выбирал, сколько места заголовка отдать журналу.

Это ограничение определяло смысл счётчика переполнения. Его четыре бита считали IP-модули, которые обнаружили заполненную опцию и не смогли добавить время. Если места не было, модуль продолжал пересылку пакета и увеличивал счётчик. Но когда оставшегося места не хватало на полную запись времени или сам счётчик выходил за допустимый диапазон, RFC 791 считала датаграмму ошибочной и допускала отправку ICMP Parameter Problem. Поле не указывало, какой маршрутизатор отсутствовал и почему.

Спецификация также ограничивала перенос записи: опция не копировалась в последующие фрагменты и могла встречаться только один раз. Поэтому нельзя было считать, что каждый фрагмент несёт полный журнал маршрута.

Наблюдения, а не прошедшее время

Последовательность отметок может выглядеть как трасса задержки. Однако RFC 791 не гарантировала синхронизацию или точность часов, участие каждого маршрутизатора или полный список переходов. Каждая запись отражала часы записавшего её IP-модуля. Разность двух значений может смешивать смещение часов и фактическое время передачи. Обоснован более узкий вывод: пакет мог нести ограниченное число наблюдений «адрес—время» и счётчик переполнения.

Последующие требования к хостам подтвердили необязательность функции. RFC 1122 оставила создание и обработку опции Timestamp необязательными. Спецификация задавала формат и поведение, но не доказывала внедрение на хостах или маршрутизаторах.

В 2014 году RFC 7126 описала риски раскрытия часов, картирования топологии и снятия отпечатков устройств. В документе сказано, что широкое отбрасывание пакетов сделало такие методы практически невозможными; RFC рекомендовала маршрутизаторам, шлюзам безопасности и межсетевым экранам отбрасывать пакеты с этой опцией. Это оценка и рекомендация данного RFC, а не современное измерение всех сетей.

Опция показывает пределы наблюдаемости: запись внутри пакета может дать полезные следы, оставаясь неполной, зависимой от часов и ограниченной местом в заголовке. Формат говорит, что мог записать участвующий модуль; отсутствие записи не доказывает, что перехода не было.

Источники