在花了无数个小时阅读有关问题,从其他unis下载笔记甚至搜索youtube视频后,我无法解决这个问题。
为了理解如何计算RTT,我们只是说客户端要求包含10个图像的HTML页面。 [让我们将传播延迟保持为零。]
请遵循我的逻辑
首先,TCP连接的3路握手计为1 RTT。 TCP连接关闭时也是如此。
1)在非持久性HTTP中,我们必须进行TCP连接,因此到目前为止它是1个RTT。由于我们有10个对象,我们将有2 * 10 = 20个RTT。这导致1RTT +20 RTT = 21 RTT。 [另一种可以计算的方法是说,因为它每次打开新的连接,对于10个对象,它将需要3个RTT,因此它将是30个RTT。]
2)在持久性HTTP中,我们需要一个1RTT用于连接,1个用于每个对象。这导致1RTT + 10RTT = 11 RTT。 [我应该添加一个RTT来关闭连接,从而导致12个RTT?根据我的理解,它会在一段时间后自行消失。]
3)在使用流水线操作的持久性HTTP中,我们需要一个RTT来打开TCP连接,一个RTT用于发送10个对象,一个RTT用于关闭连接。这导致1RTT + 1RTT + 1RTT = 3 RTT。
对此事的任何帮助都将受到高度赞赏!
答案 0 :(得分:6)
我知道这已经很晚了,但我会回答其中的一些问题,以帮助那些可能在某些时候遇到过这个帖子的人。
因此,我们希望从页面中获取10个对象。这是我们的目标。
首先,我们需要做几件事来实现目标。
第1步 我们需要首先找到页面的地址。我们通过访问多个DNS服务器来执行此操作,直到找到所需的地址。这是RTT1 + RTT2 + ... + RTTn。
第2步 现在我们有了页面的地址,我们需要询问它对10个对象的引用。由于这是一个非持久性TCP连接,我们使用RTT来初始化连接,并使用RTT来请求和检索引用。这是2RTT。
第3步 最后,我们可以获得所有10个对象。由于这是非持久连接,每次我们需要一个对象时,我们需要初始化连接,然后请求并检索该对象。我们这样做了10次。 10(2RTT)
将它们加起来!
Total Time = (2RTT) + 10(2RTT) + (RTT1 + RTT2 + ... + RTTn)
= 11(2RTT) + (RTT1 + RTT2 + ... + RTTn)
= 22RTT + (RTT1 + RTT2 + ... + RTTn)
我希望这有助于为非持久性TCP连接澄清一些事情!