|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vadim Guchenko 2:5020/400 05 Sep 2004 11:03:08 To : Anton V. Yuzhaninov Subject : Re: Замена PMTUD -------------------------------------------------------------------------------- Hello, Anton! You wrote to Vadim Guchenko on Sat, 4 Sep 2004 20:14:00 +0000 (UTC): VG>> Клиент инициирует TCP-соединение с сервером пакетом SYN, посылая в VG>> нем значение MSS, которое соответствует MTU выходного интерфеса. VG>> Каждый роутер на пути от клиента к серверу проверяет, сможет ли VG>> пакет с указанным MSS пройти через его выходной интерфейс без VG>> фрагментации и если нет, то уменьшает значение MSS в TCP-пакете AVY> Это значительо увеличит ресурсоемкость маршрутизации. В принципе да. Большинство простых железных маршрутизаторов работают на 3-м уровне оси, а для доступа к заголовкам TCP нужен 4-й уровень. AVY> А магистральные маршрутизаторы интернет и сейчас очень хорошо AVY> загружены. К тому же это нужно только там, где на интерфейсах AVY> разные mtu. А это скорее исключение чем правило. И для этого под AVY> фрей есть net/tcpmssd а в IOS ip tcp adjust-mss, правда появился он AVY> только в 12.2(4)T. По-моему, метод не совсем корректный. Ведь трафик от клиента до сервера и обратно может идти разными путями. Hапример, клиент послал пакет с MSS=1460, он прошел через туннель, за которым tcpmssd уменьшил в пакете MSS до 1420, с тем расчетом, что если пакет пойдет назад, то он пойдет по туннелю (как я понял, для tcpmssd нужно указывать входящий интерфейс, а не выходящий). Пакет пришел на сервер. Теперь сервер будет все пакеты клиенту посылать с MSS=1420 (у него MTU=1500). Hо пакеты пойдут не по тому же маршруту, а по другому, где туннелей нет. Т.е. получилось избыточное занижение MSS на 40 байтов. Теперь наоборот, пусть сервер ответил клиенту SYN-пакетом, в котором указал свой MSS=1460. Пакет прошел до клиента минуя туннели, у клиента тоже MTU=1500. Т.е. клиент будет слать все пакеты серверу с MSS=1460. Hо на пути от клиента к серверу пакеты уже пойдут через туннель, т.е. либо они будут фрагментироваться, либо должен сработать PMTUD. Единственное, что приходит в голову, это поднимать tcpmssd на каждом граничном маршрутизаторе и фильтровать весь входящий и исходящий внешний трафик. Причем на tcpmssd для исходящего трафика явно указывать минимальный MTU для входящего маршрута и наоборот. А на своих серверах PMTUD отключить совсем. AVY> Другое дело, думаю было бы полезно релаизовать во FreeBSD такой AVY> механизм для рабты через роутеры ,которые фильтруют icmp: AVY> если нет ACK - снять флаг DF если пришел ACK значит уменьшить MSS и AVY> снова поставить DF. AVY> Этот механизм под названием "PMTU Black Hole Detection Algorithm" AVY> давно реализован в Windows и IMHO иметь такую возможность было бы AVY> полезно. AVY> http://support.microsoft.com/default.aspx?scid=kb;EN-US;136970 AVY> По умолчанию он отключен. А раз он отключен по умолчанию, то и польза от него небольшая. 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/648865a8e1f0.html, оценка из 5, голосов 10
|