0

我需要测量向客户端发送 Web 响应需要多长时间 - 仅从服务器端。我知道有 ajaxian 和客户端方法可以做到这一点,但我仅限于服务器端唯一的方法来测量客户端的时间。

是否可以在服务器发送响应后使用从客户端浏览器发回的 ACK来粗略估计这一点?

如... http://www.usenix.org/event/usenix02/fu/fu_html/node10.html所述。

这个数字可靠吗?

4

1 回答 1

0

每发送两个段,ACK 大约会到达一次(如果一切正常)。他们告诉您客户已接受数据。因此,假设从客户端到服务器的行程时间相同,deltaAckNum/deltaT 应该对平均速度的大小给出合理的估计。显然,这两个 ACK​​ 段跨越的数据包越多越好。

如果您查看 Timestamp 选项,您可以在不同时间点获得 RTT 的估计值 - 当一侧在 TSVal 中发送时间戳时,另一侧在返回数据包的 TSEcr 字段中回显它。虽然不仅仅是从客户端到服务器的延迟,但它有助于获得一种感觉。

虽然,有几个“但是”要提到:

1)除非您因为有人抱怨而专门尝试提高大文件传输的性能,否则很可能瓶颈在堆栈的其他地方。(例如,需要将它们全部下载以始终可见的元素相互依赖等)。对于调试,YSlow会很有用。

2) 有问题的客户端可能位于类似代理的中间盒后面,该中间盒将为他们确认 TCP 级别的数据,但它本身会做一些“聪明”的事情(整形/内容过滤/等)。

于 2009-07-24T08:15:25.230 回答