5. Совместимость с предыдущими версиями
Сообщения ICMP можно разделить на несколько категорий:
- сообщения без расширений ICMP;
- сообщения с несовместимыми с данной спецификацией расширениями ICMP;
- сообщения с совместимыми расширениями ICMP.
Все реализации ICMP могут передавать сообщения без расширений. Реализации ICMP до 1999 г. просто не знают о расширениях ICMP.
Некоторые реализации ICMP, выпущенные между 1999 г. и публикацией этого документа могут передавать не соответствующие этой спецификации варианты расширений ICMP. В частности, такие реализации могут добавлять структуру расширения ICMP в конец сообщений Time Exceeded и Destination Unreachable. В таких случаях реализации передают ровно 128 октетов, представляющих исходную дейтаграмму, дополняя ее, при необходимости, нулями. Расчет контрольной суммы такие реализации выполняют в соответствии с приведенным здесь описанием. Однако они не задают атрибут размера для поля «исходной дейтаграммы».
Предполагается, что будущие реализации ICMP будут передавать расширения ICMP, совместимые с данной спецификацией.
Приложения, принимающие сообщения ICMP также можно разделить по категориям:
- классические приложения;
- несовместимые приложения;
- совместимые приложения.
Классические приложения не разбирают определенных здесь расширений. Они не воспринимают также атрибут размера, связанный с полем «исходной дейтаграммы».
Несовместимые реализации разбирают определенные здесь расширения, но только для сообщений Time Expired и Destination Unreachable. Они требуют, чтобы поле «исходной дейтаграммы» имело размер 128 октетов и не понимают атрибута размера, связанного с этим полем. Несовместимые реализации выпускались с 1999 г. до момента публикации этого документа.
Совместимые реализаци полностью соответствуют данной спецификации.
Таблица 1 показывает, как приложения каждой категории будут относится к разборке сообщений ICMP всех категорий.
Нет расширений | Несовместимые расширения | Совместимые расширения | |
Классические приложения | — | Параграф 5.1 | Параграф 5.1 |
Несовместимые приложения | Параграф 5.2 | — | Параграф 5.3 |
Совместимые приложения | Параграф 5.4 | Параграф 5.5 | — |
Прочерк в ячейке таблицы говорит о нормальной ситуации, которая не требует разъяснений. В последующих параграфах предполагается, что сообщения ICMP относятся к типу Time Exceeded.