RFC: 1191
Оригинал: Path MTU Discovery
Предыдущие версии: RFC 1063
Категория: Проект стандарта
Дата публикации:
Авторы: ,
Перевод: Игорь Шеваров

2. Краткий обзор протокола

В этом документе мы описываем технику, использующую бит Don't Fragment (DF) в заголовке IP датаграммы для динамического определения PMTU маршрута. Основная идея состоит в том, что хост использует в качестве PMTU значение MTU первого хопа для данного маршрута. Все датаграммы отправляются с установленным флагом DF. Если какая-то датаграмма слишком велика для того, чтобы быть отправленной одним из маршрутизаторов дальше без фрагментации, то данный маршрутизатор отбрасывает эту датаграмму и посылает ICMP сообщение Destination Unreachable с кодом «fragmentation needed and DF set» (RFC 792). Поле того, как хост получил такое сообщение (в дальнейшем называемое «датаграмма слишком большая»), хост уменьшает значение PMTU для этого маршрута.

Процесс определения PMTU заканчивается после того, как хост оценит PMTU достаточно маленьким, для того чтобы отправлять датаграммы без фрагментации.

Хост может закончить процесс определения PMTU, прекратив устанавливать флаг DF в заголовке датаграммы. Это может произойти, например, если хост считает допустимым отправлять фрагментированные датаграммы в данных обстоятельствах. В нормальных условиях хост должен отправлять все датаграммы с установленным флагом DF, так что если маршрут изменится и новый PMTU станет меньше, то это будет обнаружено.

К сожалению, сообщение «датаграмма слишком большая», в том виде, в каком она определена в настоящее время не сообщает MTU для того хопа, перед которым была отброшена датаграмма, являющаяся слишком большой. Таким образом хост отправитель датаграммы точно не может определить, на сколько следует уменьшит значения PMTU. Чтобы исправить это, мы предлагаем использовать неиспользуемое поле в заголовке сообщения «датаграмма слишком большая» для переноса значения MTU для следующего хопа. Это единственное требование к маршрутизаторам в поддержку определения PMTU.

PMTU может изменяться с течением времени, из-за изменений в топологии маршрутизации. Уменьшения PMTU детектируются с помощью сообщения «датаграмма слишком большая», за исключением тех случаев, когда хост прекратил устанавливать бит DF. Чтобы детектировать увеличение PMTU, хост периодически увеличивает значение MTU. В большинстве случаев результатом является отбрасывание датаграммы и отправка сообщения «датаграмма слишком большая», потому что в большинстве случаев значение PMTU не меняется.

Так как этот механизм по существу гарантирует, что хост не будет получать никаких фрагментов датаграмм от хоста осуществляющего определения PMTU, это может помогать во взаимодействии хостов, которые не могут производить сборку фрагментированных датаграмм.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.