Здравствуйте, DOOM, Вы писали:
DOO>Насколько я вижу у тебя несколько первых SYN пакетов тупо теряется (потому и ретрансмит) в какой-то момент приходит ответ и завершается установка TCP соединения. Причин для такого может быть мильон. Если проблема только при установке соединения, а потом потерь и таймаутов нет, то тупит какое-то "интеллектуальное" промежуточное устройство типа МЭ, балансировщика нагрузки, VPN шлюза и т.п.
Спасибо! Натолкнули на мысль, удалось решить проблему.
Итак, все-таки флаги CE оказались важны:
1. Существует
Explicit Congestion Notification
2. Оно поддерживается новейшими версиями Windows и по-умолчанию выключено. Но вот почему-то в моем случае (в Windows 2012) оно оказалось включенным.
3. Оно может не поддерживаться старым оборудованием.
4. В моем случае, похоже, очень старый роутер отбрасывал неугодные ему пакеты от сверхсовременной Windows.
Вопрос решился после указания Windows'у отключить ECN:
netsh interface tcp set global ecncapability=disabled
Пакеты перестали теряться, теперь TCP соединение устаналивается быстро.
В протоколах и сетях не силен. Помогите, пожалуйста, разобраться.
Предыстория.
При обращении любому к сайту firefox ведет себя следующим образом: тормозит около 7-8 секунд (пишет "Соединение с ..."), затем достаточно быстро появляется страница. Если на странице подгружаются элементы с других страниц, то повторяется то же самое.
Windows Server 2012, firefox, запрос к сайту ya.ru:
Firebug говорит, что
7-8 секунд занимает установка TCP соединения (не DNS, не передача данных с сервера). Запустил Network Monitor, вот кусочек того, что получил:
Вопрос
Флаги CE, если я правильно понял:
C — CWR: CWR not significant
E — ECE: ECN-Echo not significant
Кто такие SynReTransmit? Почему, если убрать флаги CE, то все проходит успешно? Почему система не делает так сразу?
Что еще не так при установке TCP соединения?