2009-07-23 5 views
0

Мне нужно определить, сколько времени потребуется, чтобы отправить веб-ответ клиенту - только с сервера. Я знаю, что есть аяксианские и клиентские способы сделать это, но я ограничен только серверным способом измерения времени для клиента.Измерение времени ответа HTTP на клиента с использованием только сервера

Возможно ли до примерно приблизиться к этому с помощью ACK, отправленного обратно из браузера клиента после того, как сервер отправит ответ?

Как описано ... http://www.usenix.org/event/usenix02/fu/fu_html/node10.html.

Надежная ли эта цифра?

ответ

0

ACK будут поступать примерно один раз на два сегмента, которые вы отправляете (если все в порядке). Они сообщают вам, что клиент принял данные. Поэтому, полагая, что время поездки от клиента к серверу одинаковое, deltaAckNum/deltaT должно дать разумную оценку того, насколько велика средняя скорость. Очевидно, чем больше пакетов эти два сегмента ACK охватывают, тем лучше.

Вы можете получить оценку RTT в различные моменты времени, если вы посмотрите на параметр Timestamp - когда одна сторона отправляет временную метку в TSVal, другая передает ее в поле TSEcr возвращаемых пакетов. Хотя это не просто отсрочка от клиента к серверу, это помогает получить ощущение.

Хотя, есть несколько «но» говоря:

1), если вы специально не пытаются увеличить производительность передачи огромных файлов, потому что кто-то жаловался, что вполне может быть, что Узким находится в другом месте стека. (например, зависимость элементов друг от друга, которые требуют, чтобы все они были загружены, чтобы быть всегда видимыми и т. д.). Для отладки это будет полезно использовать YSlow.

2) Возможно, клиент находится за прокси-подобным промежуточным полем, который будет ACK для данных на уровне TCP для них, но сам по себе делает некоторые «умные» вещи (форматирование/фильтрация содержимого/etc и т. Д.).

 Смежные вопросы

  • Нет связанных вопросов^_^