none
Vista & 2 сетевых подключения RRS feed

  • Общие обсуждения

  • Имеется ПК с двумя сетевыми картами. Одна "смотрит" в ADSL-модем, другая - в местную сеть. 

    Имеется Vista ultimate x64 и FTP-сервер для пользователей местной сети. В маршрутной таблице - дефолт в сторону ADSL-модема и набор статических маршрутов в сторону шлюза местной сети.

    Время от времени FTP-сессия скачивания (data) "останавливается" на ~30 секунд, а потом снова разгоняется до положенной скорости. Изучение трафика сниффером показало, что это происходит из-за того, что ПК по какой-то причине "пропускает" часть TCP-сегментов, дожидается таймаута не обращая внимания на ответы клиента о подтверждении последнего "непропущенного" сегмента.

    Например, последний корректный сегмент сервера был [x, x+MSS], где MSS - maximum segment size. Клиент присылает ACK на x+MSS. Следующий сегмент, отосланный сервером, не [x+MSS, x+2*MSS], а [y, y+MSS], где y > x+MSS. Клиент присылает ACK на x+MSS, но сервер вместо того чтобы отослать [x+MSS, x+2*MSS] ждёт 30 секунд, а только после этого отсылает то что требуется.

    Никакие махинации с настройками сетевой карты вида segmentation offload и hardware checksum не помогают. В XP x64 такого не наблюдается.

    Далее, мониторинг второго интерфейса (который смотрит в ADSL) показывает, что потерявшиеся пакеты были отосланы через него, видимо в соответствии с дефолтом. В логах информации о падении первого интерфейса нет.

    2 ноября 2007 г. 11:09