如何估计在 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 - 我认为 10000 必须是 10Mbps * 1000,我只是不知道 2000 是什么意思
(5+10000/10000) -(我知道这必须乘以 5 因为 MTU 是 1000 字节,但我只是不知道这些数字是什么意思)
谢谢,期待您的想法
对于 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
注意:这可能特定于问题中给出的参数类型。这只是答案的一个迭代。
我偶然发现了一个问题,我真的无法弄清楚答案是如何得出的。我会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 - 我认为 10000 必须是 10Mbps * 1000,我只是不知道 2000 是什么意思
(5+10000/10000) -(我知道这必须乘以 5 因为 MTU 是 1000 字节,但我只是不知道这些数字是什么意思)
谢谢,期待您的想法
对于 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
注意:这可能特定于问题中给出的参数类型。这只是答案的一个迭代。