Постоянные соединения

Непостоянные соединения обладают рядом недостатков. Прежде всего для каждого запрашиваемого объекта должно устанавливаться новое соединение. При этом необходимо учитывать, что каждое соединение требует от протокола TCP выделения буфера, а также ряда служебных переменных как на стороне клиента, так и на стороне сервера. Учитывая то, что многие web-серверы параллельно обслуживают сотни клиентов, подобная схема серьезно затрудняет процесс взаимодействия между клиентами и сервером. Кроме того, установление соединения для каждого объекта из-за времени оборота приводит к дополнительным временным затратам.

При постоянном соединении сервер не закрывает ТСР-соединение после обслуживания запроса, что позволяет обслужить несколько запросов в одном соединении. Так, если в нашем примере применить механизм постоянных соединений, то вся web-страница, включающая базовый HTML-файл и 10 изображений, будет передана клиенту через одно ТСР-соединение. Передача web-страниц через одно соединение возможна в случаях, если все объекты находятся на одном и том же хосте. Обычно закрытие TCP-соединения происходит в случае, когда оно не используется в течение некоторого установленного времени (интервала ожидания).

Постоянные соединения делятся на два класса: с конвейеризацией и без конвейеризации. В соединениях без конвейеризации клиент посылает серверу новый запрос после того, как завершается прием текущего объекта. Это позволяет сократить время выполнения запроса на величину времени оборота по сравнению с непостоянными соединениями. Тем не менее даже такой заметный прогресс не является пределом; соединения с конвейеризацией имеют еще меньшее время выполнения запроса. Обратите внимание на еще один недостаток соединений без конвейеризации: после окончания передачи ответа сервер простаивает, ожидая нового запроса. Это приводит к неэкономному расходованию серверных ресурсов.
По умолчанию протокол HTTP 1.1 настроен на использование постоянных соединений с конвейеризацией. В этом режиме клиент формирует запрос сразу после обнаружения ссылки на объект. Это позволяет новому запросу направляться к серверу, не дожидаясь окончания обслуживания других запросов. Аналогично, сервер, получая новые запросы, начинает их немедленное обслуживание. Очевидны достоинства конвейерного механизма: временные расходы на установление соединения сводятся к одной задержке на время оборота для всей web-страницы, а время простоя сервера значительно сокращается. Мы количественно сравним модели постоянных и непостоянных соединений в упражнениях к главам 2 и 3. Заинтересованный читатель может также обратиться к литературе.

Данная статья "Постоянные соединения" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Постоянные соединения" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Постоянные соединения", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *