Кратко

  • RFC 791 предназначила поле Identification для связывания фрагментов одной исходной дейтаграммы.
  • RFC 6864 сняла это значение с атомарных дейтаграмм, но сохранила его там, где нужна сборка фрагментов.

Одинаковый ID не означает одинаковый пакет

При DF=1, MF=0 и нулевом Fragment Offset дейтаграмма является атомарной. Две такие дейтаграммы могут содержать один и тот же Identification. Поскольку последующая фрагментация невозможна, повтор значения не доказывает дублирование, сбой отправителя или исчерпание счётчика.

В RFC 791 это было значение, назначаемое отправителем для помощи при сборке фрагментов. Вместе с адресами источника и назначения и номером протокола оно позволяло различать части разных дейтаграмм в течение периода сборки.

Поле имеет длину 16 бит и даёт лишь 65 536 значений. Требование избегать повторов для каждой дейтаграммы в течение максимального времени жизни становится трудным при высокой скорости передачи, хотя атомарный трафик вообще не создаёт фрагментов, которые нужно различать.

RFC 6864 использует уже существующие поля заголовка. DF=0, MF=1 или ненулевое смещение означает, что фрагментация разрешена либо уже произошла; здесь ID по-прежнему важно для сборки. Для атомарной дейтаграммы источник может выбрать любое значение, а устройства обязаны игнорировать поле. Ноль не является специальным маркером.

Поле не упразднено, и фрагментация IPv4 не объявлена невозможной. Ограничена лишь его претензия на универсальность. ID нельзя считать глобальным номером пакета, доказательством уникальности или стандартным ключом корреляции. Последовательный шаблон может характеризовать реализацию, но не является гарантией протокола.

Источники