📌  相关文章
📜  教资会网络 | UGC NET CS 2016 年 8 月 – III |问题 20(1)

📅  最后修改于: 2023-12-03 15:26:04.032000             🧑  作者: Mango

教资会网络 | UGC NET CS 2016 年 8 月 – III |问题 20

介绍

UGC NET CS 2016 年 8 月 – III 的问题 20 是关于计算机网络的。这个问题要求我们衡量一个 TCP 连接的平均吞吐量,并且给出一些假设条件,比如传输过程中的丢包率,窗口大小等。

计算机网络是许多程序员必须掌握的重要知识之一,因为现代程序往往需要使用网络传输数据。了解 TCP 连接和如何衡量吞吐量对程序员来说是非常重要的。

解答

以下是问题的全部内容:

一台主机试图通过 TCP 连接发送一个长度为 128KB 的数据包到另外一台主机。在传输过程中,有 5% 的包被丢弃。该连接运用了一个窗口大小为 16KB。基于上述假设, A. 计算连接的平均吞吐量。 B. 描述可能发生的流量控制情况。

平均吞吐量

TCP 连接的平均吞吐量可以通过以下公式计算:

平均吞吐量 = 传输的数据量 / 传输时间

因为数据包被丢弃了,所以我们需要计算出发送方需要重新发送的数据量。假设发送方使用最大窗口大小进行发送,那么我们需要知道:

  • 每个数据包的大小
  • 窗口中可以发送的数据包数量
  • 每个数据包需要多长时间传输
  • 重发的数据包数量
数据包大小 = 128KB
窗口大小 = 16KB
丢包率 = 5%
每个数据包大小 = 窗口大小 = 16KB
每个数据包需要的时间 = 数据包大小 / 平均带宽
重发的数据包数量 = 丢包率 * 发送的数据包数量

每个数据包需要的时间 = 16KB / 平均带宽
发送的数据包数量 = 数据包大小 / 窗口大小 = 8
重发的数据包数量 = 0.05 * 8 = 0.4,我们可以将它四舍五入为 1

总共发送的数据包数量 = 8 + 1 = 9
总共发送的数据量 = 总共发送的数据包数量 * 数据包大小
重发的数据量 = 1 * 数据包大小
实际传输的数据量 = 总共发送的数据量 - 重发的数据量
传输时间 = 总共发送的数据包数量 * 每个数据包需要的时间 + 重发的数据包数量 * 每个数据包需要的时间

平均吞吐量 = 实际传输的数据量 / 传输时间
流量控制

窗口大小是一个重要的流量控制机制。当发送方发送数据时,窗口大小告诉接收方可以接受多少数据。如果发送方发送了更多的数据,接收方就不能及时处理数据而导致数据包丢失。

在这个问题中,窗口大小为 16KB。因此,发送方在每个窗口的发送过程中最多发送 16KB 的数据。如果接收方暂时不想接受数据,它可以把窗口大小设置为 0,这将阻止发送方继续发送数据。

因此,如果发送方发送了多个窗口的数据而没有接收方发出 ACK,那么发送方的窗口就会增大,在窗口大小达到一定阈值时,发送方的速度就会减慢,这是为了防止网络饱和。如果发送方发送的数据比接收方处理的能力多,就会发生拥塞。因此,流量控制对于维护网络性能是非常重要的。