下载速率和带宽的换算关系
一只以来有个困惑,如何通过下载速率来判断源站的出口带宽是多少,今天终于搞明白了;
测试之前先搞明白几个单位换算:
1、运营商一般是按bit/s来计算的;
2、1Bytes=8bit
3、1kb=1024Bytes
4、1Mb=1024kb
了解了上面这几个单位换算的概念之后就开始做实验测试;我有一台公网云主机带宽明确知道是1M的;在云主机上开python端口也好还是部署http服务也好,总之需要能从该云主机下载;我采用的是开python端口的方式,这样比较方便;然后在执行python命令的目录下放一个几M的文件,因为我本身就是1M带宽,太大的文件下载太慢;
1、开python端口
python2: python -m SimpleHTTPServer 8083
python3: python3 -m http.server 8083
开放端口自定义,只要不跟现网冲突就成;
2、通过curl命令的speed_download模块测试下载速度
[zhangzhide@zhangzhidedeMacBook-Pro ~ ]$ curl -so /dev/null "http://IP地址:8083/mjpg-streamer.gz" -w "TransCode: %{http_code} Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} speed_download: %{speed_download} B/s \n" TransCode: 200 Connect: 0.009182 TTFB: 0.023201 Total time: 11.281602 speed_download: 136422.000 B/s
通过测试,下载速度是136422Bytes/s;
先换算成bit:136422 X 8 = 1091376
再换算成Mb:1091376/1024/1024=1.04Mbit/s
通过换算得出该云主机的带宽确实是1M的带宽,这个值会上下波动,但是差距不会太大;也证明我这个云主机的提供商没有欺诈顾客,确实提供的是1M的带宽;