Назад | Перейти на главную страницу

Почему в протоколах https и ssh установлен флаг «не фрагментировать»?

Я нашел много информации, указывающей, что это так, однако я действительно ищу причину этого. Зачем это нужно? Это необходимо?

Флаг DF дает указание маршрутизаторам, которые обычно фрагментируют пакет из-за того, что он слишком велик для MTU канала (и потенциально доставляет его не по порядку из-за этой фрагментации), вместо этого отбрасывает пакет и возвращает пакет ICMP Fragmentation Needed, разрешая отправку host для учета более низкого MTU на пути к хосту назначения. Этот процесс называется "Обнаружение MTU пути".

Как правило, лучше оставить PMTUD в покое и позволить ему выполнять свою работу, в отличие от того, чтобы ваш стек TCP имел дело с фрагментами не по порядку. Однако в некоторых случаях (в основном, когда необходимый ICMP заблокирован) PMTUD не работает, и соединение разрывается.

Вот тогда вы захотите, чтобы флаг DF не был установлен - когда PMTUD не может работать должным образом и возникают проблемы с подключением.