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

How To Estimate the total time to complete the request In UDP and TCP ( Distirbuted Systems)

我偶然发现了一个问题,我真的无法弄清楚答案是如何得出的。我会Post下面的问题和答案。

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

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

1) 使用无连接(数据报)通信(例如,UDP);

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

我们没有得到任何公式,所以我很难找到上面计算中的数字的实际含义。

谢谢,期待您的想法

对于 2000/10000,我猜 2000 是指以位为单位的请求消息大小。理论上,请求消息大小应为 1600 位,因为 200 字节 = 200*8 位。为简单起见,我想答案 近似 1600 为 2000。

对于5(5+10000/10000),首先MTU是Maximum Transmission Unit的简称,是网络中可以传输的最大数据包大小。响应消息是5000字节,而MTU是1000字节,所以响应被分成5个数据包,每个数据包有1000字节。

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

这是我计算 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

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