【网络】为什么单个TCP连接很难占满带宽

首先有一个公式:

链路上数据包的总大小 = 带宽 * 网络延时

比如说带宽为 10Mb/s, 网络延时为 1ms,

那么链路上的数据包的总大小为: 10Mb/s * 1s/1000 = 10Kb     #1ms = 1s/1000

然后这个公式怎么推倒出来的呢, 我的思维方式里是这样的理解。我发现 1 秒钟,我的大脑很难理解它为一段时间,所以我把它拉长为 2 年,数据包我改成送信。

这样来想这个问题,从甲地到乙地,寄一封信的时间为 2 年(网络延时), 甲地每年往乙地最多能寄 100 封信(带宽), 那么从甲地到乙地邮寄的路程上,一共最多有多少封信在寄?

答案是 200 封, 很简单,假设甲地把带宽用满, 第一年寄 100 封,第二年寄 100 封,而这 200 封信都没有能到达乙地。所以链路上一共有 200 封信。

回到主题,为什么单个 TCP 链路很难把带宽用满。 原因很简单,TCP 有滑动窗口的限制。 也就是说链路上最多只有滑动窗口那么多字节的数据。 如果你需要用单个 TCP 连接把带宽占满,你必须把滑动窗口设置成带宽 * 网络延时那么大。

转自:为什么单个TCP连接很难占满带宽 - https://my.oschina.net/costaxu/blog/284260

 一台服务器最大能支持多少条TCP连接? 

详解 | 一台服务器最大能支持多少条TCP连接?_fs_nofile_nr_open https://www.sohu.com/a/612499969_657867 

猜你喜欢

转载自blog.csdn.net/bandaoyu/article/details/129195811