Перейти к содержанию
    

Задержка Ack на TCP

Добрый день.

Мое устройство собрано на основе W5300 (хардварный стек).

Им управляет ПЛИС. На нем создан сервер, протокол TCP.

Прога на компе постоянно опрашивает один из внутренних регистров ПЛИС. Она использует обычный blocking socket.

Было замечено, что если одна и та же прога запущена на компах с WinXP x 32 и Win8 x 64, то на XP опросы происходят почти в 2 раза быстрее. Хотя комп с Win8 гораздо производительнее. В обоих случаях плата была подключена непосредственно к Ethernet порту компа, никаких свитчей и т.п. на пути. Никакими жрущими процессами компы не были загружены.

Стал смотреть с помощью WireSharc. Оказалось, что дело во времени прихода ACK от платы в комп.

На пакет с данными из компа плата отвечает ACK, а потом, если я запросил данные, кидает пакет с данными. По записанным пакетам с помощью WinSharc видно, что сам процесс обмена платы с обоими компами абсолютно одинаковый. Параметр window не падает до малых значений, оставаясь всегда больше 59КВ. Отличия в том, что на XP ACK прилетает через 400-600 мкс, а на Win8 примерно через 1мс.

В сети часто обсуждается проблема, когда комп долго ждет с отправкой ACK, а у меня обратная проблема.

Я взял обычный старый хаб, подключил в него всех троих и еще один комп, чтобы им поглядеть, что происходит на линии. Так вот, как при обмене Win8-плата, так и при обмене XP-плата, девайс выдает АCK через одно и тоже время - примерно 10 мкс.

Т.е. задержка где-то в Win8.

1.Подскажите, пожалуйста, может это регулируется какими-нибудь настройками сокета или параметрами в реестре.

2.Может ли на это влиять то, что материнка с XP имеет 100 MB Ethernet порт, а c Win8 - 1GB? (Порт на девайсе - 100MB).

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перепробовал все, что можно задать с помощью setsockopt, ioctlsocket, WSAIoctl. Сокет и blocking и nonblocking пробовал.

Никакого эффекта.

Причем, иногда ACK все таки прилетает быстро.

В итоге переделал логику общения с девайсом, чтобы частота запрос-ответов не так сказывалась.

Все заработало, а осадок остался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...