Кратко
- RFC 791 запрещает маршрутизатору фрагментировать датаграмму с DF, но разрешает её отбросить.
- RFC 1191 добавляет к отказу полезную информацию через ICMP типа 3, кода 4 и Next-Hop MTU.
- RFC 2923 описывает чёрную дыру PMTUD, когда это сообщение не доходит.
Как отказ стал измерением
В поле Flags протокола IPv4 DF означает Don't Fragment. При нуле фрагментация разрешена, при единице маршрутизатор не может разделить датаграмму. Если следующий канал меньше, датаграмма может быть отброшена. Сам DF не гарантирует доставку и не определяет подходящий MTU.
RFC 1191 превращает отказ в пробу. Отправитель начинает с оценки, устанавливает DF и посылает датаграммы. Если промежуточный маршрутизатор не может переслать такую датаграмму целиком, он отбрасывает её и возвращает ICMP Destination Unreachable, тип 3, код 4: требуется фрагментация, а DF установлен.
Next-Hop MTU делает уведомление числовым. Младшие 16 бит сообщают максимальный IP-пакет, который этот маршрутизатор мог бы переслать без фрагментации. Учитываются IP-заголовок и данные, но не служебные данные нижнего уровня. Источник уменьшает оценку и меняет последующий размер отправки.
Сходимость обеспечивает хост. Он должен уменьшить датаграммы или перестать устанавливать DF, чтобы не вызывать новые ошибки сразу. Проверки на увеличение должны быть редкими: не раньше чем через пять минут после сообщения о слишком большом пакете и через минуту после успешной попытки увеличения; RFC 1191 рекомендует удвоить эти интервалы.
Старый маршрутизатор может вернуть ноль в Next-Hop MTU. Хост обязан обработать этот менее точный вариант, например ограниченным поиском среди известных значений MTU.
Чёрная дыра PMTUD
RFC 2923 описывает случай, когда маршрутизатор не отправляет ICMP или фильтр подавляет сообщение. Источник не узнаёт причину потерь и продолжает отправлять слишком большие датаграммы с DF. Маленькие пакеты, ping, установка TCP-соединения или небольшие записи могут проходить, тогда как большая передача останавливается и завершается тайм-аутом.
Обнаружение чёрной дыры и откат могут уменьшить размер, но добавляют задержку и скрывают неисправность сети. Предпочтительно восстановить путь ICMP. PMTUD — это совместный цикл источника, ограничивающего маршрутизатора, обратного пути и адаптации отправителя, а не свойство одного бита.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
