Я пытаюсь улучшить скорость передачи файлов для моего веб-сервера в Рубе, Франция (размещенного OVH) по соединениям с большим расстоянием / задержкой.
Я знаю, что на TCP-соединения влияет более высокая задержка, однако я слышал, что настройка стека TCP и использование лучших протоколов перегрузки может иметь огромное значение. Я' Мы видели официальные документы о том, что TCP BBR проталкивает 10 ГБ / с по соединениям с высокой задержкой.
Я ожидаю, что соединение будет приближено к пределу в 1 Гбит / с, как я могу с соединениями с низкой задержкой (<20 мс RTT).
Тестовый файл: Ubuntu 17.10.1 ISO (1,39 ГБ)
Местоположение:
Нью-Йорк имеет скорость загрузки около 3,2 - 3,4 МБ / с
Сидней имеет скорость загрузки около 900-950 КБ / с
Интересно то, что использование диспетчера загрузки для создания большего количества HTTP / TCP-соединения вызывают увеличение скорости загрузки. Это означает, что ссылка не насыщена. https://medium.com/@frjalex/linux-kernel-high-performance-networking-how-to-2d35f5900974
Эти настройки не оказывают заметного влияния на скорость загрузки.
Как настроить стек TCP / IP Linux так, чтобы одиночные TCP (HTTP) соединения максимально увеличивали доступную пропускную способность для соединений с высокой задержкой?
После запуска теста с wget в Linux я обнаружил, что проблема заключалась в с тестирующими клиентами .. Очевидно Windows (сервер 2016) не увеличивает окно приема TCP в достаточной степени, чтобы максимизировать соединение ..
После запуска теста с wget в Linux я обнаружил, что проблема связана с тестируемыми клиентами. Очевидно Windows (сервер 2016) не увеличивает окно приема TCP в достаточной степени, чтобы максимизировать соединение.