我偶然发现了一个我真的不知道答案的问题。我将在下面发布问题和答案。
请考虑具有以下特征的分布式系统: *每个数据包的延迟(本地或远程,在发送和接收时均发生):5毫秒。 *连接建立时间(仅TCP):5毫秒。 *数据传输速率:10 Mbps。 * MTU:1000个字节。 *服务器请求处理时间:2毫秒
假定网络负载较轻。客户端将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字节,但我只是不知道数字的含义)
谢谢,期待您的想法
答案 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
注意:这可能特定于问题中给定的参数类型。这只是答案的一次迭代。