袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

带宽与并发数

浏览量:155

what:

why:

并发数 = 带宽67.2/数包大小   // 注意公式的带宽单位 Mb (是小写b),发送出的数据大小单位是KB (是大写B)

1 Byte = 8 bit      //大B 与小b 的单位关系

带宽的单位: bps   一般以b/s 表示


how:

1Mb/s = (10241024) / 8 = 131072 Byte/s (字节) =  131072/1024 = 128KB/s

按照上面的公式 :一兆带宽是理论 上是   1Mb/s= 128KB/s   但是这是理论上的速度,

实际要扣除12的信息头标识等各种控制讯号   所以 

 1Mb/s = 112KB/s:

2Mb/s = 225KB/s

8Mb/s = 901KB/s

10Mb/s= 1126KB/s

我们的带宽分为上下行的,一般运营商都是希望客户能多下载数据,所以基本上我们用来下载的下行带宽是足够的,但是我们在测并发的时候往往是向外发送数据,所以我们的上行带宽要保证,下面以上行带宽举例:

上行带宽 

以  50兆的带宽举例    发送每个数据包大小为30KB 进行举例  

首先我们要明白, 50兆的带宽即 50Mbps    带宽使用率并不是 完全占满才效果更好,而是像我们的电脑cpu 如果使用率越高,电脑越来卡,同样带宽也是,带宽占用越多就会越拥挤或者说越堵塞,经验来说,大约70的使用率是稳定的网络

 50Mbps 0.7  = 35Mbps  (70的使用是稳定的网络)  
所以  我们使用35兆的 带宽为稳定且高效的使用率,同时也说明35兆带宽的是我们最大并发的一个最适合的值,


  所以根据上面的公式换算下   35Mbps = 128 35 KB/s   =  4480KB/s    这是之所以没用11235  是因为,那些标识控制讯息,是传输必要的,要不然网络中怎么辨识和接收这些数据呢。

      在这里我的数据传输就是通过 base64编码的,由于base64的传输特性将原数据扩大三分之一  所以现在 30KB 大小的数据变为  40KB数据包(这里base64介绍的很好https://blog.csdn.net/vividboy/article/details/1237740),所以

 并发数为:     4480/40  =  112   即50兆的带宽数 在使用70的资源情况下 ,发送的数据包大小为30KB,且传输的时候使用base64 进行转换后,最大秒并发数为112个   (大家千万理解我说的并发数,是针对我们自己上行带宽向外发送数据包的时候一秒钟我们的带宽,最多能发出多少数据包)


所以推一个小公式:(并不是很严谨,但我觉得这一组数据足够可以推算这个公式,感兴趣的朋友可以多算几组数据用来推算)
 带宽50Mbps 可以认为是 传30KB大小 秒并发为 112个

  并发数  肯定与带宽成正比 ,在带宽一定大小的前提下,  因为我们带宽越大也就说明我们每秒能发送的数据包越多。

并发数  肯定与数据包大小成反比,在带宽一定大小的前提下,因为我们数据包越大,我们能发送出去的数据包个数就越小。

设系数常量为X

并发数 = 系数带宽(Mb)/数包大小(KB)
112 =  50 X / 30
x = 67.2
所以
并发数 = 带宽(Mb)67.2/数包大小(KB) 

大家千万注意我们推的公式单位是什么  带宽单位是Mb  比特为单位,KB 字节为单位。而且我们是在占用带宽70的前提下!
————————————————
版权声明:本文为CSDN博主「茄子_土豆」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_41955327/java/article/details/84350847

打赏