应用层传输时延如何计算?

应用层传输时延如何计算?

我正在尝试在 P2P 覆盖模拟中对延迟进行建模,并且想消除与传输延迟计算有关的一些不确定性,因为我还没有发现任何与我类似的场景。

我只考虑应用层,因此消息不会根据最大数据包大小或 IP 数据报大小进行拆分,也不会假设协议开销。此外,也不会考虑数据包间或消息间的延迟。

假设有这样一种场景:一个服务器为两个客户端提供服务:客户端 1 和 2。

服务器接收速度 =500 Mbps

服务器传输速度 =100 Mbps

客户端 1 接收速度 =50 Mbps

客户端 1 传输速度 =20 Mbps

客户端 2 接收速度 =300 Mbps

客户端 2 传输速度 =200 Mbps

服务器需要向客户端 1 发送 2 条消息,向客户端 2 发送另外 2 条消息。所有消息都已准备好由服务器传输。

要传输给客户端 1 的消息 1 和 2 的大小为20 MB33 MB分别。要传输给客户端 2 的消息 3 和 4 的大小分别为10兆字节15 MB分别。

传输延迟=位数/传输速率

a)如果服务器想同时向客户端 1 发送两个消息,那么位数是否为 20+33 =53 MB传输速率为50 Mbps

b)如果服务器想同时向客户端 2 发送两个消息,那么位数是否为 10+15 =25Mb传输速率为100 Mbps

c)如果服务器要同时向客户端1和客户端2发送消息,总的传输延迟是53/50 + 25/100-50

d) 如果问题与 c) 相同,但此时客户端 2 的下载速度为30 Mbps,总传输延迟将是53/50 + 25/30

对于 c),我写了 100-50,因为服务器使用 50 Mbps 将消息传输到客户端 1,这导致服务器仅有 50 Mbps 的可用传输速度可供客户端 2 使用。

答案1

假设所有三台设备都连接到相同的固定速度介质,该介质超过了任何一台设备的最大 Tx 或 Rx 速率。例如,千兆以太网交换机。

您对 (a) 和 (b) 的计算在我看来是正确的。

不幸的是,你对 (c) 的计算在我看来是错误的。你不应该将这两个项相加,而应该取这两个项中的最大值。如果服务器可以发送 100Mbps,而客户端 1 只能消耗其中的一半,那么服务器将以 50Mbps 的速度向客户端 1 发送数据,同时以(剩余的)50Mbps 的速度向客户端 2 发送数据。由于客户端 2 只接收 25Mbits 的总数据,因此从服务器到客户端 2 的传输将在从服务器到客户端 1 的传输结束之前很久就结束了。因此总延迟只是客户端 1 的 53/50。

您的项目 (d) 包含与 (c) 相同的逻辑错误。同样,对客户端 2 的传输将在对客户端 1 的传输之前完成,因此总延迟只是客户端 1 的 53/50。

相关内容