深入了解什么是带宽

  当今社会,科学技术高速发展,新事物层出不穷,而计算机网络成为了这一发展的催化剂。计算机网络已经渗透到了我们生活中的每一个角落,所以,学习计算机网络是必要的,免得让我们在信息的高速路上成为一只跛行的羔羊。

  学习计算机网络,需要先从我们平日生活当中的一些名词入手。那么,什么名词出现的频率最高呢?相信大多数人应该都知道的一个名词——带宽,是我们见到过,听说过频率最高的名词了。所以,这篇文章先来讲讲什么是带宽,它在计算机网络中到底起着什么样的作用。

  说到带宽,这真是一个非常幽默非常滑稽的名词。一般来说,我们经常会看到这样的解释:带宽就是高速公路,带宽越宽,说明这条线路的通行能力越强,速度也会越快。其实,这么理解并不能算错,如果说是非专业人士,这样的解释就已经足够了。但是,这篇文章的目的在于,要更深一步的挖掘带宽的含义,理解带宽到底是一个什么东西。

  首先,必须要清楚的是带宽的单位。带宽的单位是“bit/s”,8bit=1Byte,1024Byte=1KB,1024KB=1MB。所以,我们平时所说的100M带宽,实际上是100Mbit/s,也就是100Mbps。我们所说的网速,一般使用字节,也就是Byte来做单位的,1MB/s=8Mbit/s。那么,换算成我们平时常用的网速,100Mbit/s大概就是12.5MB/s。依次类推,10Mbit/s就是1.25MB/s。所以,经常有人说,电信公司在欺骗用户,100M网速实际只有10M,而10M实际只有1M,实际上是用户不是专业人士,对带宽的换算单位不了解,所以造成了误解。而电信公司当然也懒得解释,带宽的单位又不是自己制定的,为什么要解释?解释了普通人也不一定懂。而且100M,10M这样的数字看上去非常大,也可以诱导客户购买升级宽带,所以久而久之,大多数的用户就形成了一种对带宽速度的错误认识。

  了解了基本的单位,我们再讨论一下带宽中的“带”字。“宽”字很好理解,基本可以认为和我们平时所理解的宽是一样的概念,那么“带”呢?就本人看过的很多博客或者一些参考书,甚至教师,都会将带宽解释为数据的传输速度,虽然在一定意义上说,这样解释很有道理,那就是但从抽象角度来讲,如果我们不关心数据的发送和传播过程,那么这样更容易让人理解,但严格的讲,这是不准确的。为了说明带宽,我们还要顺带提一下数据是如何发送的。

  数据是如何发送的呢?其实就是数据从我们使用的主机进入到计算机外的网线(或通信线路)的这一段过程。首先,计算机的应用程序要把需要发送的数据写入这个进程的内存地址空间里,这么说可能太过于高端,那么说简单点,就是把数据赋值给变量的过程。然后,我们的应用程序通过系统的接口,把数据送入内核缓冲区,这一步大多都有封装良好的接口,我们编程时直接调用即可。接下来,内核通知网卡控制器来取数据,网卡会将要发送的数据送到网卡的缓冲区中。再然后,网卡缓冲区的数据发送到网线,同时也释放刚才那些数据所占用的内存空间。而发送的时候,网卡会使用硬件来将数据转换成电信号,再发送出去。

  数据进入了网线,看上去就和我们平时说的带宽很像了:数据像高速公路上的汽车,公路越宽,车就可以跑得越快,同时通行的车辆也越多。那么到底是不是这样呢?首先,我们要从物理学的角度解答这个问题。不论是电信号还是光信号,进入网线后,都能够快速传播,而这个传播速度只与介质有关。我们平时用的网线是铜线,铜线中电信号传播速度大约为2.3×108m/s。而光纤中,这个速度大约为2.0×108m/s。这个速度比我们平时认为的光速要慢(3.0×108m/s),是因为这个速度是在真空中传播的速度,而我们的网线中,环境无法达到真空中那么理想,加之光纤中光还存在反射,所以影响了传播速度。而我们用的网线,大多是八根铜线制成的,所以,这个公路的宽度,实际上也是给定的。也就是说,我们根本不能改变这条公路的宽度和车辆行驶的速度。

  从上面的结论来看,带宽似乎和高速公路不那么像了,因为带宽并不能影响我们数据传播的速度。那么,带宽究竟是什么呢?显然,带宽是数据发送的速度。我们有时也会听到百兆网卡这种说法,是指网卡的最大发送速度为100Mbps,也就是说,网卡可以在1秒钟之内最多发出100Mb的数据。我们要提升带宽,就要提升这个速度。那么,这个速度和什么有关呢?首先,是将数据转换为二进制信号传送至网线的能力,以及网线另一端对二进制信号的接收能力,同时也包括线路对传输频率的支持程度,这些能力越强,发送数据与接收数据的能力就越强,每秒钟能发出去的数据就越多。另一个影响的方面是数据传播介质的并行程度,也就是同一时间能传输的数据的位数。并行程度越高,同一时间发送的数据量越大。我们可以通过将多条光纤并行组成光缆,或者使用64位操作系统、更换频率更高的处理器等方式来提升我们的总线带宽。

  那么很多同学又会问了,为什么自己感觉光纤比铜线快呢?我们知道,电信号在传播过程中是会有衰减的。而在光纤中,这种衰减比铜线小。铜线大概只能传输100m的距离,就不得不使用中继器来延续信号,这一过程比较复杂,而且转换的时间相对于在铜线中传输的时间来说是不可忽略的经过,多次转换,时间就变得非常大了,也会减慢数据的传输效率。而光纤的损耗非常低,一般可以传输数千米以上,中继器的使用量减少,所以也就更快。这里也需要注意,数据的发送速度和数据的传输速度是不一样的。比如,我们一秒钟发送100MB的数据,那么我们的网线上就会传输100MB的数据,而这100MB数据的速度在铜线上约为2.3×108m/s。

  说到这里,有悟性的同学应该知道带宽是什么了。然而我们的网速,其实不仅仅是由我们的计算机决定,也同时由互联网运营商决定。因为带宽是有限的,那么它必然是一个抢手的资源,而且网络的搭建是有成本的,所以互联网运营商会在他们的路由器上做一些限制,限制数据从你主机流入路由器转发队列的速度,而经过网络协议的调整,我们的网速也就慢了下来。很遗憾,我自己的老师并没有把这些知识说清楚,甚至在作业题中布置一些已经过时的、不使用的协议和概念反复考察,说明了大学本科教育的滞后性。所以,学习除了上课,也需要我们自己查阅资料,多做一些课后的工作。

时间: 2024-10-13 23:23:56

深入了解什么是带宽的相关文章

百兆带宽服务器

咨询QQ号:83095433 国内百兆带宽服务器只需1299元/两个月,是的,1299元/两个月. 双志强处理器 8G内存 1000G硬盘,高配置,超高性价比.百兆带宽服务器 如果您还是觉得贵的话,河南网通百兆带宽服务器只要988元/两个月,确实是两个月. 双至强处理器 4G内存 500G硬盘,中高等配置,还是不错的选择哦. 江苏双线599元也是两个月百兆带宽服务器哦. 南电信北网通,总有一款适合您,我们的价格绝无仅有.欢迎您的垂询. 公司庆祝注册成立十周年,我们就这么任性,就怕您不相信.就是租

无线通信网络学习之相干时间与相干带宽(20141212)

在学习LTE关键技术之前,先来了解一下两个概念:相干时间与相干带宽. 相干时间:信道保持恒定的最大时间差范围,发射端的同一信号在相干时间内达到接收端,信号衰弱特性相似,接收端认为是同一信号. 时间分集要求两次发射的时间间隔要大于相干时间,否则信号会经历相同的衰弱,分集抗衰弱的特性就不存在了. 相干带宽:是描述时延扩展的,指在某一特定频率范围内,任意的两个频率分量都具有很强的幅度相关性,即在相干带宽范围内,多径信道具有恒定的增益和线性相位. 通常相干带宽为多径时延的倒数.即如果信道的最大多径时延扩

Nginx流量带宽请求状态统计(ngx_req_status)

介绍 ngx_req_status 用来展示 nginx 请求状态信息,类似于 apache 的 status, nginx 自带的模块只能显示连接数等等 信息,我们并不能知道到底有哪些请求.以及各 url 域名所消耗的带宽是多少. ngx_req_status 提供了这些功能 按域名. url. ip 等等统计信息 统计总流量 统计当前带宽\峰值带宽 统计总请求数量 安装   # cd /usr/local/src/ # wget "http://nginx.org/download/ngin

linux下如何使用vnstat查看服务器带宽流量统计

因为很多vps或者服务器都是限流量的,但是又很多服务商并没有提供详细的流量表,比如每天的流量表,所以肯定有人很想知道自己服务器到底跑了多少流量. vnstat就是一个很好用的服务器流量统计命令.我截几个图给大家看下就知道了. 统计天数和统计月份的: 是不是很直观呢.下面我们就来看看这个命令怎么用.estimated是预估使用量的意思.最后一列avg. rate是平均使用带宽.rx是接收流量(inbound),tx是发送流量(outbound) 第一步:安装 centos需要先安装epel源后才能

ROS取数线程分析(4): 不带组装: socket选项SO_SNDBUF,SO_RCVBUF对带宽和CPU的影响(2)

在不带组装,取数线程简化为直接while循环recv,通过setsockopt将SO_SNDBUF, SO_RCVBUF设置为256*1024时,短时间内的测试结果为6.7Gb/s.但是长时间的测试结果却如下图: 上图的横坐标为ROS接收到event的个数,以40000为单位. (x, y)表示 ROS接收到第 x*40000 个 event 时,接收端的带宽为 y Gbits/s. event size 为 2KB. 由上图可以看出,接收端的带宽在保持了一段时间的6Gb/s后,是不断降低的.但

UVA - 140 Bandwidth(带宽)(全排列)

题意:给定图,求是带宽最小的结点排列. 分析:结点数最多为8,全排列即可.顶点范围是A~Z. #pragma comment(linker, "/STACK:102400000, 102400000") #include<cstdio> #include<cstring> #include<cstdlib> #include<cctype> #include<cmath> #include<iostream> #i

nginx流量带宽等请求状态统计( ngx_req_status)

介绍 ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求.以及各url域名所消耗的带宽是多少.ngx_req_status提供了这些功能. 功能特性 按域名.url.ip等等统计信息 统计总流量 统计当前带宽\峰值带宽 统计总请求数量 1. 安装 # cd /usr/local/src/ # wget "http://nginx.org/download/nginx-1.4.2.t

服务器带宽租多少才够用?你会算吗?

在网络多媒体应用中,带宽的要求往往较高.比如视讯啊.远程协助啊这些功能,都需要有足够的带宽.比如你开发一套视频教学系统,或者视频会议系统,服务器带宽要租多少才够用,这是一个很关键的问题.可是,你知道该怎么算吗? 比如在即时通讯系统中,通常都是一对一的通讯,那么当大家互相打视频,开语音,或者远程协助的时候,对服务器的带宽要求有多高呢?比如在线教学系统中,老师要给学生广播麦克风语音.摄像头视频.远程桌面等,这种情况下有需要多少带宽呢?而对于视频会议,每个人都要把自己的语音视频广播给其他的每一个人,这

linux系统带宽监测脚本

服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需安装的带宽查看脚本,可以查询linux服务器当前带宽使用量,有需要的朋友可以试试  快速使用方法  1.下载脚本 ssh登录服务器后输入:  英文版: wget http://jinxiang.oss-cn-hangzhou.aliyuncs.com/vmnetcheck.sh  中文版: gbk版