相信很多同志都非常关注自己家的计算机上网的宽带是多少、关心单位上网的宽带是多少!

  但是很多同志都经常误解网络传输速度,以至于责备网络接入商(电信、网通、铁通等单位)欺骗用户,限制上网的速度!

  本文,就给您详细介绍一下带宽中提到的bps与下载文件所需时间的换算!

  先看下图!

这是我个人上网的宽带,注意拉,速度是“100.0Mbps”;

  到这里,俺想试问一个问题,以这样的速度,假设处于理想状态,那么,我下载100MB的文件,需要多少时间呢?

  如果您回答,需要1秒钟,那么,您就错了,并且是完全错了;

  为什么这样说呢?假设您不懂这些单位的换算,那么,凭您的上网经验,百M宽带下载一百M的文件,有可能一秒钟就能下载下来吗?

  下面,俺将与之相关的知识,作个了断性的说明,希望能消除您心中的疑虑、清除您概念上的误解。

  网络中的传输速度,一般是以bps为单位,诸如:1000M/bps、100M/bps、10M/bps、2M/bps等,就拿100M/bps来说吧!

bpsbit Per Second的缩写,翻译成中文就是比特位每秒,也就是表示一秒钟传输多少位(bit)的意思。根据这一理论,我们不难看出,100M/bps,指的就是每秒钟传输100MB个比特位;即100×1024×1024个bit;

  但是,在计算机的各种存储设备中,应用到的存储单位,一般为TB、GB、TB、MB、KB和B;这里的大写字母B,指的是存储容量单位中最小的单位,即字节,英文是:Byte;

1Byte = 8bit
  1KB = 1024 Byte
  1MB = 1024 KB
  1GB = 1024 MB
  1TB = 1024 GB

  这里提到的Byte,即字节,是以大写字母B来表示,但是经常与bps相混淆。首先,您得区分这两种概念。

  那么,Byte与位(bit),存在什么关系呢?1B=8bit;

  因此,100M/bps=100÷8MB/s=12.5MB/s;即,每秒传输12.5兆字节的数据;

  要下载100MB的文件,通过100M/bps的网速,在理想状态下,应该需要如下的时间:

  100MB÷12.5MB/s=8s,即8秒

  以上是综合性的换算关系,如果是完整的算式,应该是:

  传输速度:100M/bps=100×1024×1024÷8Byte/s=104857600÷8Byte/s=13107200Byte(每秒)

  文件的总大小:100MB=100×1024×1024Byte=104857600Byte

  所以,要下载100MB的文件,应该用文件总大小(总的字节数)除以每秒能传输的字节数,即(100×1024×1024Byte)÷(100×1024×1024÷8Byte/s)=8秒;

知识扩展

  如果您的网络速度是:10M/bps的速度,要下载100MB的文件,需要多少时间呢?

  简易换算,应该是这样:

  10M/bps=10÷8MB/s=1.25MB/s,即每秒能传输1.25兆字节的数据;

  要下载100MB的文件,就应该用文件的总字节数除以每秒传输的字节数,即100MB÷1.25MB/s=80s,即80秒,相当于1分钟零20秒;

  以上的换算,均使用理想状态,即最快的速度;但是在网络的应用过程中,会出现各种网络数据流失的因素,不可能达到理想状态,一般,传输过程中,会有10%的传输消耗

  因此,100Mbps的速度,下载100MB的文件,实际所需要的时间,大概为:(100×1024×1024Byte)÷(100×1024×1024×(100%-10%)÷8Byte/s)≈8.888888…秒≈9秒。

  然而,当我们真正下载文件或传输文件的时候,所需要的时间,除了考虑网络数据流失的客观因素的前提下,还涉及到本地网络的状态、通讯设备及服务器带宽等等一系列的因素,下载文件所需要时间,比之以上的近似理想状态所需要的时间要更多、更多、还要多!

网络传输速度bps与下载文件所需时间的换算的更多相关文章

  1. 从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造

    在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以 ...

  2. [iOS 多线程 & 网络 - 2.10] - ASI框架下载文件

    A.ASI框架中的下载 1.实现步骤 在实际的开发中如果要使用asi框架来下载服务器上的文件,只需要执行下面简单的几个步骤即可. (1)创建请求对象:(2)设置下载文件保存的路径:(3)发送下载文件的 ...

  3. python网络编程-socket上传下载文件(包括md5验证,大数据发送,粘包处理)

    ftp server 1) 读取文件名 2)检查文件是否存在 3)打开文件 4)检查文件大小 5)发送文件大小给客户端 6)等客户端确认 7)开始边读边(md5计算)发数据 8)给客户端发md5 ft ...

  4. python网络爬虫之使用scrapy下载文件

    前面介绍了ImagesPipeline用于下载图片,Scrapy还提供了FilesPipeline用与文件下载.和之前的ImagesPipeline一样,FilesPipeline使用时只需要通过it ...

  5. JavaFTP文件传输上传和下载文件

    首先在电脑上创建一个ftp服务器,具体步骤自行百度. 接下来开始写有用的java连接TFP站点和传输文件的代码. 1.首先jar用的是apache 的工具包 请自行下载 . 2.俩个文件代码 一个Ft ...

  6. iperf/LANSpeedTest网络传输速度测试工具

    最近公司测试限速,搜集软件发现两款,iperf,LANSpeedTest. iperf,多平台. LANSpeedTest,读写显示,操作简单. 局域网测试传输,优先考虑UDP. iperf Iper ...

  7. 设置php下载文件的超时时间

    使用curl 可以使用curl自己实现一个curl_file_get_contents函数 //CURLOPT_FOLLOWLOCATION TRUE 时将会根据服务器返回 HTTP 头中的 &quo ...

  8. 使用nmon监控得出网络实时速度以及最大、最小、平均网络传送速度

    首先我们得搞清楚几个概念,即什么是网速?什么是带宽? 举两个个例子: 1.家里装网线,宽带提供商说我们的带宽是100兆. 2.用迅雷下载电影,迅雷显示实时的下载速度是每秒3兆,或者说是3MB/s. 这 ...

  9. 加速scp传输速度

    当需要在机器之间传输400GB文件的时候,你就会非常在意传输的速度了.默认情况下(约125MB带宽,网络延迟17ms,Intel E5-2430,本文后续讨论默认是指该环境),scp的速度约为40MB ...

随机推荐

  1. JavaScript 继承方式详解

    js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承)类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念.所以,要想实现继 ...

  2. UVALive 5886 The Grille (模拟)

    The Grille 题目链接: http://acm.hust.edu.cn/vjudge/problem/26634 Description http://7xjob4.com1.z0.glb.c ...

  3. lght oj 1257 - Farthest Nodes in a Tree (II) (树dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1257 跟hdu2196一样,两次dfs //#pragma comment(l ...

  4. My集合框架第五弹 最小堆

    二叉堆(以最小堆为例),其具有结构性质和堆序性质结构性质: 堆是一棵完全的二叉树,一颗高为h的完全二叉树有2^h到2^h-1个节点,高度为log N            而且该结构可以很容易的使用数 ...

  5. 利用HTML5开发Android(4)---HTML5本地存储之Web Storage

    Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Sto ...

  6. Quartz.NET 2.0 学习笔记(1) :Quartz.NET简介

    http://www.cnblogs.com/lzrabbit/archive/2012/04/13/2447609.html

  7. android ExpandAbleListView控件

    ExpandAbleListView控件 1.API对ExpandAbleListView的解释:

  8. win8 企业版 安装 .net2.0 .net 3.5

    Windows 8 默认集成 .Net Framework 4.5,因此运行一些基于3.5或以前版本的程序时会弹出这个提示. 2012-3-2 15:24 上传 下载附件 (23.91 KB)   这 ...

  9. 【转】知道创宇研发技能表v2.1

    转自:http://blog.knownsec.com/Knownsec_RD_Checklist/v2.1.html# 知道创宇研发技能表v2.1 创建时间:2012/12/1 2013/4/26 ...

  10. [转]AsyncDisplayKit 教程:达到 60 FPS 的滚动帧率

    [原文:https://github.com/nixzhu/dev-blog/blob/master/2014-11-22-asyncdisplaykit-tutorial-achieving-60- ...