【问题标题】:Measuring the HTTP response time back to the client using only the server仅使用服务器测量返回给客户端的 HTTP 响应时间
【发布时间】:2010-11-13 10:09:35
【问题描述】:
【问题讨论】:
标签:
performance
http
tcp
response
【解决方案1】:
每发送两个段,ACK 大约会到达一次(如果一切正常)。他们告诉您客户已接受数据。因此,假设从客户端到服务器的行程时间相同,deltaAckNum/deltaT 应该对平均速度的大小给出合理的估计。显然这两个 ACK 段跨越的数据包越多越好。
如果您查看 Timestamp 选项,您可以获得不同时间点的 RTT 估计值 - 当一方在 TSVal 中发送时间戳时,另一方在返回数据包的 TSEcr 字段中回显它。虽然不仅仅是从客户端到服务器的延迟,但它有助于获得一种感觉。
不过,有几个“但是”要提:
1) 除非您因为有人抱怨而专门尝试提高大文件传输的性能,否则很可能是
瓶颈在堆栈的其他地方。 (例如,元素之间的依赖关系要求它们全部被下载以始终可见等)。对于调试,YSlow 会很有用。
2) 有问题的客户端可能位于类似代理的中间盒后面,该中间盒将为它们确认 TCP 级别的数据,但它本身会做一些“聪明”的事情(整形/内容过滤/等)。