1

У меня есть пользователи, которые ранее использовали FTP для передачи файлов через пути с высокой задержкой на свой локальный сервер. Они переключились на HTTP для этих передач (не по выбору), и производительность передачи файлов серьезно ухудшилась. Размер окна TCP для серверов пользователей был оптимизирован для FTP и задержки в сети.

В зависимости от реализации HTTP на исходном сервере (т. Е. Веб-службе), возможно ли, что HTTP использует или влияет на небольшой размер окна TCP по умолчанию?

1 ответ1

0

Нет, HTTP и FTP оба передают файлы через чистый TCP. Та же настройка TCP, которая работала для FTP, должна работать и для HTTP.

Вероятно, проблема с производительностью связана с реализацией HTTP-клиента или сервера; они, вероятно, не используют TCP эффективно. Например, в хороших реализациях осторожно использовать скользящие буферы, чтобы всегда поддерживать TCP-канал заполненным. Наивные реализации передают только один буфер за раз TCP и ждут, пока тот будет полностью отправлен, прежде чем передать новый. Это приводит к частичному истощению канала между буферами, что является одним из худших действий, которые можно сделать для каналов с высокой задержкой. Если бы у вас был FTP-клиент или сервер, который допустил ту же ошибку, его производительность была бы такой же плохой, как и у HTTP-клиента или сервера, который допустил эту ошибку.

Обратите внимание, что это только один пример того, как наивная реализация может не использовать TCP эффективно; Я не обязательно говорю, что это то, что происходит в вашем случае, но это определенная возможность.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .