网络带宽“在口语中用来表示
信道容量,信道容量是
系统能够传输数据位的速度”(wikipedia)
常见的误解是把它当成比特位在线路中跑的速度,以为带宽越大,比特位跑的就越快
实际上,比特位在宽带上跑的速度跟在窄带上跑的速度是一样大的;如果把线路比喻成一车道的公路的话,比特位就是汽车,汽车在宽带这条路上的行驶速率跟汽车在窄带路上的
行驶速率是一样的,但是宽带路上各车之间的车距比较小,单位时间内可以通过的汽车比较多(谢希仁):
更确切一点地说,
宽带并不是高速公路,而是高速公路的入口(郭欣);带宽越高,意味着高速入口的吞吐越快。 带宽其实是
数据块从结点进入到传输媒体的速度 (谢希仁)
而所谓的高速公路的速率,对应的则是比特位单位时间内在介质中传播的距离;一般可视为 2* 10^8米/秒
如果考虑真实的硬件设备,带宽又是怎么一回事呢? 比如说,
百兆网卡,连接到千兆交换机,那整体的传输数率是多少呢? 答案是:取最小的那个值,即100Mb/s
当然,还应该考虑网线的带宽。如果网线带宽只有1M,则整体传输速率就降为1M了 (谈到网线的带宽时,不要去想高速公路的事情,否则会糊涂)。网线的带宽取决于材质(光纤比铜线好),以及一根网线是由多少细线组成的
最后,我们讨论一下,在已知带宽、传输距离的情况下,用户从一个网站下载一个东西到底要多长时间。
解这套题要套这个公式:
总时间 = 数据块从结点进入到传输媒体的时间 + 信号在介质中传播的时间 + 交换结点的处理、排队时间
如果网站服务器的接入带宽是100M, 用户PC的接入带宽是10M, PC和服务器在同一张桌子上(传输距离忽略不计),且PC直连服务器;要下载的文件大小是1G(约1000MB),则
总时间 = 数据块从结点进入到传输媒体的时间 + 信号在介质中传播的时间 + 交换结点的处理、排队时间 = 数据块从结点进入到传输媒体的时间 + 0m/传播速率 + 0 = 数据块从结点进入到传输媒体的时间 = 数据块大小/整体带宽 = 1000MB/min(100M, 10M)b/s = 8000Mb/10Mb/s = 800s
如果网站服务器在上海,直连上海市的中心交换结点,且这个交换结点的带宽为1G;PC在杭州,直连杭州市的交换结点,且这个交换结点的带宽为500M; 上海到杭州的物理距离是100km。那么 (由于交换结点的处理、排队时间很难估计,这里先统统忽略,统一视为0),
总时间 = 从服务器到上海总出口的总时间 + 上海到杭州的传输时间 + 比特位从上海到杭州的旅行时间 + 杭州交换中心到PC的时间 = 8000Mb/min(100Mb/s,1GMb/s) + [8000Mb/min(1GMb/s, 500Mb/s) + 100km/(2*10^8m/s)] + 8000Mb/min(500Mb/s, 10Mb/s) = 80s + [16s + 0.0005s] + 800s\ = 896.005s
注:据高人指点,上面的算法只在一个假设下才有效:“交换结点都是先把数据收齐后再把数据发送出去”;有了这个假设,当传输网络中每多一个结点时,总的时延就会多加一大块。而实际上,交换结点并不会把数据全部收齐才发出去,而是每收到一定大小的数据后就会开始转发,基本上可以理解为边收边发。