Настройка приложения TCP Бит Не фрагментировать (DF)

607
some user

Я заметил, что какое-то приложение TCP устанавливает бит DF (не фрагмент). Мои исследования показывают, что TCP хочет избежать фрагментации и вместо этого хочет отрегулировать размер сегмента (MSS).

Тем не менее, я понимаю, что этот механизм требует использования пакета ICMP Too-Big. в настоящее время многие люди используют NAT и FW, и они часто блокируют все нежелательные пакеты ICMP. Как тогда будет работать корректировка MSS в этих очень распространенных средах? Или эти шлюзы достаточно умны, чтобы анализировать их внутри ICMP и сопоставлять с существующим сеансом?

0
Если все ICMP отброшены, то следует ожидать, что функции, опосредованные ICMP, будут потеряны. Это включает в себя обнаружение MTU. Брандмауэры будут проверять недостижимые и сопоставлять существующие правила и разрешения, поэтому, хотя обычно блокируют все ICMP, это не следует считать правильным подходом. Paul 7 лет назад 1
ICMP не использует TCP. DavidPostill 6 лет назад 0
@DavidPostill Никто не говорит, что ICMP использует TCP. OP говорит о том, что некоторые сообщения ICMP содержат копию заголовков пакета, вызвавшего ошибку. Он прав, что брандмауэры NAT и SPI должны анализировать заголовки TCP внутри этих пакетов ICMP. Spiff 6 лет назад 0

1 ответ на вопрос

1
Spiff

Вы описываете алгоритм под названием «Path MTU Discovery», и он работает большую часть времени. Только невежественные системные администраторы и продукты с ошибками блокируют все сообщения ICMP. Даже сайты, которые предпочитают блокировать эхо-запросы ICMP (эхо-запросы), обычно достаточно умны, чтобы пропустить сообщения ICMP Destination Unreachable.

И да, хорошие реализации шлюза NAT и межсетевого экрана SPI смотрят на захваченные заголовки в сообщении ICMP Destination Unreachable, чтобы выяснить, какому потоку он соответствует, и обработать его соответствующим образом.