Round Trip Time Http on non persistent,persistent,persistent with pipelining

时间:2016-07-01 17:34:51

标签: http tcp persistent pipelining

网络是我硕士学位的最后一门课程。我确实有一个关于如何使用流水线计算非持久性,持久性和持久性的回合时间的问题。

在花了无数个小时阅读有关问题,从其他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。

对此事的任何帮助都将受到高度赞赏!

1 个答案:

答案 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连接澄清一些事情!