Я сравниваю следы Wireshark для файла загрузки размером 10 МБ с:
Загрузка по FTP выполняется быстрее, и трассировка показывает, что сервер ведет себя, как ожидалось, отправляя больше данных клиенту с каждым полученным ACK:
Ссылка на полноразмерное изображение
Трассировка HTTP-сервера показывает более резкую картину. Время отправки пакетов иногда не связано с какими-либо ACK, полученными от клиента (обведены красным):
Ссылка на полноразмерное изображение
У кого-нибудь есть предложение относительно того, почему трафик IIS такой?
Обновление: мы попытались изменить Параметры реестра http.sys (установка MaxBytesPerSend на 256 КБ и MaxBufferedSendBytes на 64 КБ, как рекомендуется). Изменение MaxBytesPerSend, похоже, улучшает производительность за счет увеличения объема данных в полете, но мы по-прежнему видим тот же импульсный паттерн.
Я подозреваю, что это может быть связано с внутренним контролем допуска QoS, который происходит в Windows. IIS может соблюдать QoS, FileZilla может напрямую обращаться к сети.
Может быть мешок. Если я правильно понимаю, HTTP выбрасывает дерьмо из FTP с точки зрения скорости передачи.
Клиентские ACK тоже не выглядят хорошо разнесенными. Что за клиент?