为什么单个TCP连接很难占满带宽

为什么单个TCP连接很难占满带宽

首先有一个公式:

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

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

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

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

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

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

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


转载于:https://my.oschina.net/costaxu/blog/284260

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值