TCP吞吐量

Throughput of TCP

我正在研究TCP和多路径TCP。有几点让我很困惑。我想知道 TCP 是攻击性协议还是非攻击性协议? 如果只有一个 link 并且没有任何其他流量,发送方可以使用 link?如果我有两个 TCP 流,每个 TCP 流可以获得一半的吞吐量?

有一个目标告诉多路径 TCP 没有比 TCP 更具侵略性 在一条路上。基于这个目标,在下图中,多路径 TCP(两个子流一起)最多可以获得 50% 的信道? enter image description here

3G 或 WIFI 的 TCP 吞吐量是否有任何限制?

I was wondering if TCP is an aggressive or non-aggressive protocol?

其实它介于两者之间,比方说正常,在非攻击性方面犯错。 TCP 使用最大化吞吐量和最小化拥塞的算法。它的目标是以网络支持的最高传输速率发送,而不是更高。当检测到拥塞时,它会退出。所以你可以说它是最优的。

因此,它被用作评估其他协议时的参考。通常目标是协议永远不会比 TCP 更具攻击性。

If there is just one link and there is not any other traffic, the (TCP) sender can use all throughput of the link?

是的。

If I have two TCP flows, each TCP flow can get half of the throughput?

是的,大约,并且在更长的时间段内平均。这叫做公平。但前提是它们具有相似的 RTT。如果它们具有不同的 RTT 但共享瓶颈 link,具有较大 RTT 的流通常会实现较低的吞吐量。

There is a goal that tells multipath TCP has not be more aggressive than a TCP over a path. Based on this goal,in the following picture, multipath TCP ( two sub-flows together) can get maximum 50% of channel?

注:图片来自这篇文章:https://www.eecs.berkeley.edu/~sylvia/cs268-2014/papers/mptcp.pdf

是的。如果具有多个子流的 MPTCP 流与 TCP 流共享瓶颈 link,则 MPTCP 流将使用大约 50% 的带宽。

请注意,如果将 MPTCP 替换为多个并行的常规 TCP 流,则情况并非如此。比方说图中的2。在这种情况下,并行传输将获得 66% 的带宽。

Is there any limitation for TCP throuput over 3G or WIFI?

TCP 通常不知道也不需要知道它在哪种网络上运行。它只是使用:

  • 肯定确认作为数据包到达目的地的标志,在这种情况下它应该发送更多
  • 数据包丢失是拥塞的标志,在这种情况下它应该回退
  • RTT 对吞吐量有间接影响,因为肯定确认会因此延迟到达,最终会减慢发送速度。

无线的问题是数据包可能会因为 link 拥塞或无线电干扰而丢失。在前一种情况下,TCP 应该退出,在后一种情况下,它应该立即重新传输。处理这个问题的一个想法是 https://en.wikipedia.org/wiki/WTCP (RFC 3481)。我不知道它在实践中的部署频率,但根据 H. Esaki 和 H. Sunahara 于 2008 年 1 月 1 日出版的 "Broadband Internet Deployment in Japan" 一书(ISBN-13:978-1586038625 ISBN-10:1586038621),网址为日本至少有一家 ISP,NTT DoCoMo 将其部署在其 3G 网络上。