|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Guchenko 2:5020/400 04 Sep 2004 22:30:49 To : All Subject : Замена PMTUD -------------------------------------------------------------------------------- Hello, All! Почему бы алгоритм PMTUD не заменить следующим: Клиент инициирует TCP-соединение с сервером пакетом SYN, посылая в нем значение MSS, которое соответствует MTU выходного интерфеса. Каждый роутер на пути от клиента к серверу проверяет, сможет ли пакет с указанным MSS пройти через его выходной интерфейс без фрагментации и если нет, то уменьшает значение MSS в TCP-пакете. Дойдя до сервера, TCP-пакет будет содержать наименьшее значение MSS для всей цепочки роутеров, при использовании которого клиентом отправленные пакеты не будут фрагментироваться вообще. Теперь сервер должен отправить это значение MSS обратно клиенту. При этом он таким же образом выставляет свое значение MSS, соответствующее MTU его выходного интерфейса. И клиент вместе со своим новым значением MSS, которое он должен использовать при формировании пакетов, получает еще и скорректированное значение MSS сервера. В следующем пакете он помимо прочей информации, специфичной для TCP-протокола, отправляет обратно значение MSS сервера. Теперь клиент и сервер могут слать пакеты без флага DF, которые не будут фрагментироваться. Для обработки случаев меняющихся MTU можно периодически повторять процесс согласования MSS клиента и сервера в длинных TCP-сессиях. Hу а если MTU где-то на пути уменьшится раньше, чем будет произведено очередное согласование MSS, то не страшно, если несколько пакетов пройдут фрагментированными. Этот алгоритм не зафильтруешь просто так на файрволе, как это можно сделать с ICMP. И даже если какой-то роутер на пути не будет поддерживать этот алгоритм, т.е. не будет уменьшать MSS, то в принципе трафик все равно будет ходить, просто возможно будет фрагментироваться на том сервере. Hо это лучше, чем если бы он вообще не ходил в случае с PMTUD. Термин MSS в описанном алгоритме имеет смысл не максимального сегмента, которой хост может принять, а максимального сегмента, который хост может передать без фрагменатции. With best regards, Vadim Guchenko. E-mail: s0lver@kraslan.ru -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/64881759fea3.html, оценка из 5, голосов 10
|