Google представила рекомендации по ускорению работы TCP
Компания Google опубликовала ряд рекомендаций, основанных на исследовательской работе и экспериментах по увеличению отзывчивости и скорости работы протокола TCP.
🕛 29.01.2012, 00:40
Для ускорения работы TCP, в условиях преобладания в сети Web-трафика, предлагаются следующие рекомендации:Увеличение окна перегрузки TCP (congestion window) c 2-4 до 10 сегментов. В настоящее время в начале соединения допускается отправка трёх пакетов, что приводит к трём согласующим пересылкам при доставке 15 Кб данных. Исследование показало, что увеличение размера окна перегрузки до 10 при обработке web-запросов приведёт к ускорению более чем на 10%;
Сокращение начального таймаута (RTT) с 3 до 1 секунды. По мнению Google таймаут в 3 секунды имел смысл несколько десятилетий назад, современные сети требуют существенного уменьшения таймаута;
Использование режима быстрого открытия TCP-соединений (TFO - TCP Fast Open). Для примерно 33% HTTP-запросов браузеру требуется предварительная отправка одного RTT-пакета для установки TCP-соединения с удалённым хостом. Большинство HTTP-ответов укладываются в начальное окно перегрузки величиной 10 пакетов, удваивая время отклика. В режиме TFO накладные расходы сокращаются за счёт включения HTTP-запроса в начальный TCP SYN пакет. В итоге, включение TFO позволяет сократить время загрузки страниц в среднем примерно на 10%, а в некоторых ситуациях до 40%.
Использование пропорционального снижения интенсивности отправки пакетов TCP (PRR - Proportional Rate Reduction) в условиях потери пакетов, что свидетельствует о перегрузке или проблемах в сети. PRR представляет собой новый алгоритм восстановления потерянных пакетов, плавно инициирующий повторную передачу потерянных пакетов в условиях перегрузки. Алгоритм PRR быстрее текущего механизма, основанного на изменении интенсивности отправки пакетов для уменьшения потерь. В настоящее время реализация PRR уже включена в ядро Linux и продвигается для включения в спецификацию TCP. Дополнительно, ведётся разработка алгоритма для восстановления потерь в условиях большой зашумлённости мобильных сетей.