← Cloudflare Smart Shield / smart-shield / concepts
Повторное использование соединений
Smart Shield уменьшает количество соединений между Cloudflare и вашим origin-сервером, группируя несколько запросов в общие соединения. Когда запросы от дата-центр верхнего уровня уровень кеша Cloudflare, расположенный ближе всего к вашему источнику. Когда запросам нужно достичь сервера, Smart Shield отправляет их через одно соединение вместо открытия нового соединения для каждого запроса. Это сокращает общее количество соединений с источником в среднем на 30%, что снижает нагрузку на ресурсы источника и уменьшает риск исчерпания соединений при высокой нагрузке.
Дополнительные сведения см. в статья в блоге с анонсом Smart Shield ↗.
О повторном использовании соединений
Каждый HTTP-запрос требует TCP-соединения между клиентом и сервером. Каждое соединение определяется парой сетевых адресов: адресом и портом источника, а также адресом и портом назначения. Открытие нового TCP-соединения создаёт дополнительные издержки: для него требуется handshake между клиентом и сервером, а также согласование TLS, если соединение зашифровано.
Повторное использование соединения (также называемое постоянным соединением или keep-alive) устраняет эти издержки: вместо открытия нового соединения для каждого запроса несколько HTTP-запросов отправляются через одно TCP-соединение. В HTTP/1.1 такое поведение используется по умолчанию.
Например, когда браузер открывает соединение с shop.example.com, страница может обращаться к десяткам дополнительных ресурсов, таких как таблицы стилей, изображения, скрипты и другие файлы. Без повторного использования соединения каждому ресурсу потребовалось бы отдельное TCP-соединение. При повторном использовании соединения все эти запросы проходят через одно и то же соединение.
Объединение соединений (HTTP/2)
В HTTP/2 повторное использование соединений расширяется благодаря объединению соединений. Это позволяет запросам к разным хостам использовать одно и то же соединение при соблюдении двух условий:
- Оба имени хоста разрешаются в один и тот же целевой IP-адрес и порт.
- Сертификат TLS на сервере покрывает оба имени хоста (например, сертификат, в котором указаны оба
shop.example.comиblog.example.comв своих Subject Alternative Names).
Это означает, что соединение, изначально открытое для shop.example.com также может передавать запросы для blog.example.com, что ещё больше сокращает общее количество соединений с вашим источником.
Повторное использование соединения и Dedicated CDN Egress IPs
Повторное использование соединения и объединение соединений также учитываются при распределении вашего Dedicated CDN Egress IPs.