TCP Slow Start постепенно увеличивает окно перегрузки, чтобы не перегрузить сеть. Переиспользование соединений уменьшает затраты на новые TCP/TLS-handshake и повторный разгон передачи.
Что такое TCP Slow Start и почему для межсервисного взаимодействия внутри ЦОД критично держать пул постоянных соединений (Keep-Alive)?
TCP Slow Start постепенно увеличивает окно перегрузки, чтобы не перегрузить сеть. Переиспользование соединений уменьшает затраты на новые TCP/TLS-handshake и повторный разгон передачи.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
TCP Slow Start постепенно увеличивает окно перегрузки, чтобы не перегрузить сеть. Переиспользование соединений уменьшает затраты на новые TCP/TLS-handshake и повторный разгон передачи.
В начале соединения объём неподтверждённых данных ограничен congestion window; при поступлении ACK окно растёт до перехода к другому режиму контроля перегрузки или обнаружения потерь. В ЦОД RTT мал, но при большом числе коротких запросов создание соединений всё равно стоит ресурсов. Keep-alive и connection pool помогают, однако слишком большой пул тоже вреден. Длительно простаивавшее соединение может не сохранять прежнюю скорость разгона. Важность эффекта подтверждают профилем, а не считают любой короткий запрос проблемой Slow Start.
Источник: www.rfc-editor.org.