网络技术是我硕士学位的最后一门课。我有一个关于如何计算非持久化、持久化和具有管线化的 HTTP 的往返时间(Round Trip Time,RTT)的问题。
在花费了无数个小时阅读相关资料、下载其他大学的笔记甚至搜索 YouTube 视频之后,我仍未能解决这个问题。
为了理解 RTT 如何计算,让我们假设客户端请求包含 10 个图像的 HTML 页面。[ 让传播延迟为零。]
请按照我的逻辑进行操作:
首先,TCP 连接执行的三次握手计为 1 次 RTT。当 TCP 连接关闭时也是如此。
1)在非持久化 HTTP 中,我们必须建立 TCP 连接,从而造成了 1 个 RTT 的开销。由于我们有 10 个对象,因此我们将有 2*10=20 个 RTT 开销。这样就得到了 1 个 RTT + 20 个 RTT = 21 个 RTT。[ 另一种计算方法是说,由于每次都会打开新的连接,对于 10 个对象,需要 3 个 RTT,因此需要 30 个 RTT。]
2)在持久化 HTTP 中,我们需要 1 个 RTT 来建立连接,以及每个对象都需要 1 个 RTT。这就导致了 1 个 RTT + 10 个 RTT = 11 个 RTT。[ 我应该再添加一个关闭连接的 RTT,因此会增加到 12 个 RTT 吗?在我看来,它将在一段时间后自动超时。]
3)在具有管线化的持久化 HTTP 中,我们需要 1 个 RTT 来打开 TCP 连接,1 个 RTT 来发送 10 个对象,以及 1 个 RTT 来关闭连接。这样就得到了 1 个 RTT + 1 个 RTT + 1 个 RTT = 3 个 RTT。
对此事项的任何帮助都将不胜感激!