Re: Firebird TCP/IP протокол и Don`t fragment флаг
On Feb 25, 12:19 pm, "Oleg Matveyev" wrote: > > , > > : PMTUD Black Hole > >http://technet.microsoft.com/en-us/library/cc958871.aspx >раз уж пятница... >за что я люблю M$, так это за умение из любого бага сделать Проблему, и дать >ей громкое имя :-) Это не MS-specific проблема. Но вообще решилась она именно описанным по этой ссылке костылем - поставить EnablePMTUDiscovery=0 в реестре. Установка TcpRemoteBufferSize в 1448 не помогла - похоже, там еще меньше MTU по дороге где-то. VPN предоставляется провайдером, у провайдера специалистов, заинтересованных в таких тонкостях и способных разобраться, практически нету.
Re: Firebird TCP/IP протокол и Don`t fragment флаг
Нашел еще одно возможное решение, оказывается у проблемы даже название есть: PMTUD Black Hole http://technet.microsoft.com/en-us/library/cc958871.aspx раз уж пятница... за что я люблю M$, так это за умение из любого бага сделать Проблему, и дать ей громкое имя :-)
Re: Firebird TCP/IP протокол и Don`t fragment флаг
On Feb 24, 9:59 pm, "Vlad Khorsun" wrote: Firebird не управляет и не может управлять этими флагами. Да, судя по всему, TCP стек пытается PMTUD использовать. Тогда второй вопрос: чем чревата установка TcpRemoteBufferSize = 1448 в конфиге? Дополнительными roundtrip'ами и снижением производительности сетевого протокола. И с чем связано нижнее ограничение в 1448 на этот параметр? Думаю что-то древне-историческое. Не проверял никогда. Может у какого-либо из ныне мёртвых транспортных протоколов было такое ограничение снизу. Судя по логу, оно в таком случае шлет пакеты уменьшенного размера, которые, скорее всего, пройдут через затык в сети. Но насколько это костыль и чем он чреват? Думаю проверить это можно только экспериментально... -- Хорсун Влад
Re: Firebird TCP/IP протокол и Don`t fragment флаг
On Feb 24, 9:59 pm, "Vlad Khorsun" wrote: >Firebird не управляет и не может управлять этими флагами. Да, судя по всему, TCP стек пытается PMTUD использовать. Тогда второй вопрос: чем чревата установка TcpRemoteBufferSize = 1448 в конфиге? И с чем связано нижнее ограничение в 1448 на этот параметр? Судя по логу, оно в таком случае шлет пакеты уменьшенного размера, которые, скорее всего, пройдут через затык в сети. Но насколько это костыль и чем он чреват?
Re: Firebird TCP/IP протокол и Don`t fragment флаг
On Feb 24, 9:28 pm, Yurij wrote: > Знаю только пару методов, типа поставить на винде MTU поменьше или > завернуть коннект в туннель, использующий для транспорта мелкие пакеты. Нашел еще одно возможное решение, оказывается у проблемы даже название есть: PMTUD Black Hole http://technet.microsoft.com/en-us/library/cc958871.aspx
Re: Firebird TCP/IP протокол и Don`t fragment флаг
"Yurij" ... Наткнулся тут на шизу, что клиентское приложение не может подключится к Firebird через VPN, в котором поломано управление MTU. Т.е. Firebird шлет пакеты максимального размера, в которых, к тому же, установлен флаг Don`t fragment, по дороге они натыкаются на какой-то глючный узел, который вместо того, чтобы ответить ICMP fragmentation needed, молча их дропает. В результате подключение к FB зависает на первом же достаточно длинном пакете. Можно ли узнать, зачем установлен этот флаг, и можно ли как-то обойти эту проблему? Firebird не управляет и не может управлять этими флагами. -- Хорсун Влад
Firebird TCP/IP протокол и Don`t fragment флаг
Наткнулся тут на шизу, что клиентское приложение не может подключится к Firebird через VPN, в котором поломано управление MTU. Т.е. Firebird шлет пакеты максимального размера, в которых, к тому же, установлен флаг Don`t fragment, по дороге они натыкаются на какой-то глючный узел, который вместо того, чтобы ответить ICMP fragmentation needed, молча их дропает. В результате подключение к FB зависает на первом же достаточно длинном пакете. Можно ли узнать, зачем установлен этот флаг, и можно ли как-то обойти эту проблему? Знаю только пару методов, типа поставить на винде MTU поменьше или завернуть коннект в туннель, использующий для транспорта мелкие пакеты.