如何估计在UDP和TCP(分布式系统)中完成请求的总时间

时间:2018-10-28 17:03:11

标签: networking tcp udp distributed-computing distributed-system

我偶然发现了一个我真的不知道答案的问题。我将在下面发布问题和答案。

请考虑具有以下特征的分布式系统: *每个数据包的延迟(本地或远程,在发送和接收时均发生):5毫秒。 *连接建立时间(仅TCP):5毫秒。 *数据传输速率:10 Mbps。 * MTU:1000个字节。 *服务器请求处理时间:2毫秒

假定网络负载较轻。客户端将200字节的请求消息发送给 服务,该服务产生包含5000个字节的响应。估计到的总时间 在列出的性能假设中,请在以下每种情况下完成请求 下方:

1)使用无连接(数据报)通信(例如U​​DP);

答案:UDP:5 + 2000/10000 + 2 + 5(5 + 10000/10000)= 37.2毫秒

我们没有给出任何公式,因此我很难找到上述计算中的数字实际含义。

  • 2000/10000-我认为10000必须是10Mbps * 1000,我只是不知道2000是什么意思

  • (5 + 10000/10000)-(我知道这必须乘以5,因为MTU是1000字节,但我只是不知道数字的含义)

谢谢,期待您的想法

2 个答案:

答案 0 :(得分:0)

对于2000/10000,我想2000表示请求消息的大小(以位为单位)。从理论上讲,请求消息的大小应为1600位,因为200字节= 200 * 8位。为了简单起见,我猜答案大约为2000。

对于5(5 + 10000/10000),第一个MTU表示最大传输单位,它是网络中可以通信的最大数据包大小。响应消息为5000字节,而MTU为1000字节,因此响应分为5个数据包,每个数据包具有1000个字节。

由于这是无连接通信,因此没有流水线。每次链接中只有一个数据包。因此,对于每个数据包,发送回该数据包的时间为5 + 10000/10000(严格来说,由于MTU为1000 * 8位,因此应该为8000/10000。再次,为了简单起见,我猜它也近似为10000)。因此,要全部发送回5个数据包,总时间为5(5 + 10000/10000)。

答案 1 :(得分:0)

这是我计算UDP和TCP的方式。

 Total transmission time (UDP) = transmission time for request message packet 
                                    + Server request processing time 
                                    + transmission time response message

 Total transmission time (TCP) = connection setup time + 
                                 transmission time for request + 
                                 server request processing time + 
                                 transmission time for response message packet

注意:这可能特定于问题中给定的参数类型。这只是答案的一次迭代。