Упреждающее установление соединений

Составной частью обработки HTTP-запроса является установление ТСР-соеди- нения с Web-сервером или с промежуточным компонентом, таким как прокси-сер- вер. Открытие TCP-соединения требует грехэтапного обмена между клиентом и сервером, о чем рассказывалось в главе 5 (раздел 5.2). Время задержки на этом этапе зависит от времени прохождения пакетов в обоих направлениях между компьютерами, а также от задержки в очереди на сервере и дополнительной задержки, обусловленной утерей пакетов. Чтобы скрыть эти задержки от пользователя, Web- клиент может заранее установить TCP-соединение с сервером до выдачи пользовательского запроса [CK00J. Затем, когда пользователь щелкает мышью на гиперссылке, клиент может пемедленпо отправить HTTP-запрос через открытое TCP- соединепие. Если пользователь не инициирует запрос, либо клиент, либо сервер со временем закрывает ТСР-соединепие.

Задержка в обработке запроса для статического содержания по основном вызвана временем установления ТСР-соедипения. Для небольших сообщений-ответов дополнительное время прохождения пакетов в прямом и обратном направлении составляет ощутимую долю общей задержки при открытии ТСР-соедииеиия. Однако успех в сокрытии этой задержки от пользователя зависит от двух факторов. Во-первых, чтобы достичь максимального выигрыша в производительности, установление соединения должно закончиться до того, как пользователь щелкпет мышью на гиперссылке; в противном случае клиенту придется ждать, прежде чем отправить HTTP-запрос. Во-вторых, пользовательский запрос должен поступить до того, как клиент или сервер решат закрыть соединение. Web-серверы Обычно устанавливают ограничение на время нахождения ТСР-соединения в бездействующем состоянии. Пользовательский запрос, инициированный после того, как сервер закрыл соединение, либо в то время, когда сервер осуществляет закрытие соединения, не дает выигрыша в производительности. Наличие открытого бездействующего TCP-соединения может вызвать увеличение ожидания в очереди на создание новых соединений. Что еще хуже, увеличение числа открытых соединений может уменьшить значение таймаута для выполняющихся сеапсов.

Открытие ТСР-соединения с сервером спижает время ожидания на стороне пользователя цепой дополнительной нагрузки на сеть, клиента и сервер. Трехэтап- пый обмен предполагает передачу через сеть грех IP-пакетов без учета какой-либо повторной передачи пакетов и дополнительных пакетов, необходимых для закрытия соединения. Даже если клиент закрывает ТСР-соедииеиие, не отправляя TCP-запрос, сервер потребляет ресурсы на открытие и поддержание соединения. Web-cepвep должен сохранять состояние соединения и может назначить процесс для обработки ожидаемого НТТР-запроса (запросов). В действительности Web- сервер обычно сохраняет состояние в течение определенного периода времени после закрытия соединения. Сохранение данного ТСР-соединения может помешать серверу устанавливать TCP-соединения с другими клиентами. Открытие и закрытие ТСР-соедипения без отправки HTTP-запроса может рассматриваться как атака отказа от обслуживания (DoS) на Web-сервер. Следует сопоставлять увеличение нагрузки на сеть и на сервер с потенциальным повышением производительности на стороне пользователя.

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100